hadoop伪分布式安装(:linux基本命令、hadoop常用shell命令)
大数据简介
1什么是大数据?
1.1大数据的的特点 :5V
Volume(大量)
Variety(多样)
Veloctiy(高速)
Value(价值密度低)
Veracity(真实性)
1.2数据存储的单位
bit,Byte,KB,MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB
1.3 大数据的应用
疫情防控
核酸检测
健康吗
行程码
2.hadoop
2.1 hadoop是什么
hadoop是一个由apache基金会 开发的分布式系统基础架构
主要目的 : 解决海量数据的存储 ,海量数据的计算 。
2.2 hadoop的优势
高可靠性
高扩展性
高效性
高容错性
低成本(开源的 )
2.3 核心架构
Hadoop HDFS 是一个高可靠,高吞吐量 的分布式文件系统
Hadoop MapReduce 一个分布式离线计算框架
Hadoop YARN 作业调度和集群资源管理的框架
Hadoop Common 支持其他模块的工具模块 (Configuration ,序列化机制,日志操作)
Hadoop Ozone Hadoop 对象存储系统
2.3.1 HDFS
HDFS 是一个分布式文件系统 ,采用的是主从架构 , 一个HDFS由一个NameNode和多个DataNode组成 ,其中NameNode为主服务器 ,管理文件系统的命名空间 和客户端对象的访问操作,DataNode管理存储的数据。
NameNode;
在hadoop1中 ,只能有一个NameNode 。 在hadoop2中 ,可以配置多个NameNode,解决NameNode单点故障问题,。
DataNode:
主要负责客户读写请求 ,在本地文件系统存储文件块数据,以及块数据的校验.
来存储真正的数据
2.3.2 Yarn
yarn是一个资源调度的平台 ,负责为运算程序提供服务器运算资源 , 著亚欧一个 ResourceManager 和若干个NodeManager构成 ,在执行任务的时候还有一个 applicationMaster存在。
ResourceManager :
用来处理客户端的任务请求 ,监控NodeManager ,做资源的调度与分配
NodeManager:
单个节点的资源管理器
2.3.3MapReduce
MapReduce 是一个分布式计算系统 ,将一个计算过程分为两个阶段 ,Map阶段和Reduce阶段 ,
Map阶段分而治之地处理输入的数据 ,Reduce阶段用来合并map 阶段的计算 。
2.4 Hadoop的应用场景
大数据的转换
银行信用卡欺诈性检测
社交媒体市场分析
零售行业购物模式分析
3.Hadoop 的安装
3.1使用ssh
#在当前主机上ssh登录当前主机 不需要密码
ssh localhost
#进入到当前的ssh目录
cd ~/.ssh
# 一直回车即可
ssh-keygen -t rsa
+---[RSA 2048]----+
| ..*O@|
| . + .oX=|
| . o +.B =|
| . +E+.++|
| S .+.+o+|
| .++. |
| ..+ o |
| .o+.+ |
| *Oo. |
+----[SHA256]-----+
# 加入授权
cat ./id_rsa.pub >> ./authorized_keys
3.2 hadoop安装
分为3中模式
1:单机模式:只在一台计算机上运行,采用本地文件系统,何有采用分布式的文件HDFS
2:伪分布模式:存储采用分布式文件系统HDFS,但是HDFS名称节点和数据节点都在同一台计算机上
3:分布式模式:存储是采用分布式文件系统HDFS,而且HDFS的名称节点和数据节点位于不同的计算机上
3.2.1下载上传安装文件
下载上传安装文件
rz
解压软件
#解压文件到指定的目录
tar -zxf hadoop-2.10.0.tar.gz -C /usr/local/
#进入到指定目录
cd /usr/local/
#将文件夹的名字修改为hadoop
mv hadoop-2.10.0/ hadoop
查看一下版本号
#进入到hadoop目录下
[root@localhost hadoop]# ./bin/hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.10.0.jar
3.2.2 修改配置文件
需要修改一些配置文件 ,让hadoop在伪分布模式下顺利运行 ,配置文件都在 hadoop/etc/hadopp/
伪分布模式需要修改两个配置文件 ,即core-site.xml和hdfs-site.xml
使用vim编辑器打开core-site.xml进行配置
#进入到配置文件目录下
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
初始化内容为
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
</configuration>
配置后的内容为
<configuration>
<!-- hadoop的运行时候的临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!-- 定义hadoop HDFS中的 NameNode的URI和端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置 hdfs-site.xml文件
初始化内容
修改后的内容
<configuration>
<!--指定DataNode存储Block的副本数量,不大于DataNode的数量就可以-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--元数据的储存目录 nameNode的节点-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<!--dataNode 真正的数据存储的目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
如果遇到了这样的问题
localhost: Error: JAVA_HOME is not set and could not be found.
配置 hadop-env.sh
在第一行添加javaHome的引用
# JAVA_HOME 的路径为 你系统安装的java所在的路径
export JAVA_HOME=/usr/local/jdk1.8
3.2.3执行名称节点格式化
修改配置文件以后,要执行名称节点的格式化
cd /usr/local/hadoop
#格式化的命令
./bin/hdfs namenode -format
3.2.4 启动hadoop
./sbin/start-dfs.sh
输入jps查看进程
jps
13739 NameNode
14044 SecondaryNameNode
14205 Jps
13871 DataNode
hadoop启动成功后 ,则会列出一下的进程
NameNode DataNode SecondaryNameNode
3.3常用命令
3.3.1hadoop 常见的命令
在hdfs上创建一个目录
#在hdfs上创建一个目录
./bin/hdfs dfs -mkdir /user
#查看 目录的命令
./bin/hdfs dfs -ls /
#将系统中的文件复制到 hadoopHDFS文件系统中
./bin/hdfs dfs -put /home/fujun/下载/aaa/b.tt /user
3.3.2linux常用命令
linux常用命令
1. 命令基本格式
1.1 解析命令提示符
[root@localhost ~]#
解析:
root:当前登录用户
localhost:主机名
~:当前所在目录(家目录)
#:超级用户的提示符
$:普通用户的提示符
1.2 解析命令格式
注意:
1. 个别命令的使用不遵循此格式
2. 当有多个选项时,可以写在一起
3. 简化选项-a等于完整选择-all
2. 目录处理命令
2.1 linux常见目录作用
命令 [选项] [参数]
目录名称 作用
/ 根目录
/bin 命令保存目录
/sbin 命令保存目录(只有root能用)
/boot 启动目录,系统启动的相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/root 超级用户的家目录
/usr 系统软件资源目录
/usr/bin 保存命令的目录
/usr/sbin 保存命令的目录(只有root能用)
/temp 临时目录
/lib 系统库保存目录
/mnt 系统挂载目录,用于挂在外接存储设备
/media 挂载目录,用于挂在外接存储设备(在原来的linux系统中没有)
/misc 挂载目录,用于挂在外接存储设备(在原来的linux系统中没有)
/proc 内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
/sys 内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
/var 系统相关文档内容
2.2 查询目录中的内容
选项:
-a:显示所有文件,包括隐藏文件
-l:显示详细信息
-d:查看目录属性
-h:人性化显示文件大小
-i:显示inode
2.2 建立目录
ls [选项] [文件或目录]
选项:
-p:递归创建
2.3 切换所在目录
2.4 显示当前所在目录
2.5 删除空目录
3. 文件处理命令
3.1 创建空文件
3.2 删除文件或目录
选项:
mkdir -p [目录名]
cd [目录]
# 进入家目录
cd ~
# 进入家目录
cd
# 返回上次的目录
cd -
# 进入上一级目录
cd ..
# 进入当前目录
cd .
# 显示当前所在目录
pwd
# 删除空白目录,若包含文件则不能删除
rmdir [目录]
touch [文件名]
rm [文件或目录]
-r:删除目录
-f:强制
注意:rm -rf / 强制删除根目录下的所有(相当于自杀,绝对不可以使用)
3.3 复制文件或目录
选项:
-r:复制目录
-p:连带文件属性复制
-d:若原文件是链接文件,则复制链接属性
-a:相当于都复制 同-pdr
3.4 剪切或改名
用于改名或剪切
3.5 搜索文件
选项:
-name:文件名称
-iname:不区分大小写
可以使用通配符:
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
3.6 文件链接
文件链接分两种,一种被称为硬连接,另一种被称为软连接(符号连接)
硬连接
简单来说就是两个文件名指向同一个文件,删除其中任何一个都不会影响另外一个的访问,文件真正删除的条件是
与之相关的所有硬连接文件均被删除。
软连接
cp [选项] [原文件或目录] [目标目录]
mv [原文件或目录] [目标目录]
find [搜索范围] [搜索条件]
ln 被连接文件 连接文件
软连接文件有类似于Windows的快捷方式。连接文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
如果被连接文件被删除了,连接文件仍然存在,但指向的是一个无效的连接。
4. 文件查看和编辑
4.1 查看
4.2 编辑
vi/vim 共分为三种模式,分别是命令模式,输入模式和底线命令模式。
命令模式
启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。
常用命令:
ln -s 被连接文件 连接文件
# 从第一个字节开始正向查看
cat 文件名
# 从最后一行开始反向查看
tac 文件名
# 查看一个文件的前n行,n为指定行数
head -n 文件名
# 查看一个文件的后n行,n为指定行数
tail -n 文件名
# 查看一个长文件
more 文件名
# 与more类似,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
# b 向后翻一页 d 向后翻半页 u 向前滚动半页 y 向前滚动一行 q 退出less命令
# 空格键 滚动一页 回车键 滚动一行 pagedown 向下翻动一页 pageup 向上翻动一页
less 文件名
vi 文件名
vim 文件名
命令 说明
Ctrl + f 屏幕向下移动一页,相当于Page Down键
Ctrl + b 屏幕向上移动一页,相当于Page Up键
0或Home键 移动到这一行的最前面字符处
$或End键 移动到这一行的最后面字符处
gg 移动到这个档案的第一行
G 移动到这个档案的最后一行
数字 + Enter键 向下移动指定行数
x(小写) 向后删除一个字符,相当于del键
X(大写) 向前删除一个字符,相当于backspace键
dd 删除光标所在的那一行
yy 复制光标所在的那一行
p(小写) 将已复制的数据,粘贴在光标下一行
P(大写) 将已复制的数据,粘贴在光标上一行
u 复原前一个动作,撤销
. 重复前一个动作
命令 说明
i 在目前光标所在处输入
I 在光标所在行的第一个非空格符处开始输入
a 在目前光标所在的下一个字符处开始输入
A 在光标所在行的最后一个字符处开始输入
o 在光标所在的下一行输入新的一行
O 在光标所在的上一行输入新的一行
Esc 退出输入模式,回到命令模式
输入模式
进入输入模式的命令:
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
命令 说明
:w 将编辑的数据写入硬盘档案中
:wq 存档并离开
ZZ 存档并离开
:q! 不存档并离开
:set number 显示行号
5. 压缩命令
5.1 常用的压缩格式
.zip,.gz,.bz2
.tar.gz,.tar.bz2 实际情况下更加常用
5.2 .zip格式
压缩
解压
5.3 .gz格式
压缩
解压
# 将源文件压缩为.zip格式的压缩文件
zip 压缩文件名 源文件
# 将源目录压缩为.zip格式的压缩文件
zip -r 压缩文件名 源目录
# 解压缩
unzip 压缩文件名
# 解压缩到指定的目标目录
unzip 压缩文件名 -d 目标目录
# 压缩为.gz格式的压缩文件,源文件会消失
gzip 源文件
# 压缩为.gz格式,源文件保留
gzip -c 源文件 > 压缩文件
# 压缩目录中所有的子文件,但是不能压缩目录
gzip -r 目录
5.4 .bz2格式
压缩
注意:bzip2命令不能压缩目录
解压
5.5 .tar打包
打包
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
查看内容
-t 列出包中内容
解打包
gzip -d 压缩文件
gunzip 压缩文件
# 压缩为.bz2格式,不保留源文件
bzip2 源文件
# 压缩之后保留源文件
bzip2 -k 源文件
bzip2 -d 压缩文件
bunzip2 压缩文件
# 压缩之后保留源文件
bzip2 -d 压缩文件 -k
# 压缩之后保留源文件
bunzip2 压缩文件 -k
# 单文件/目录打包
tar -cvf 打包文件名 源文件/目录
# 多文件/目录打包
tar -cvf 打包文件名 源文件/目录1 源文件/目录2 ...
tar -tf 打包文件名
选项:
-x 解打包
-C 改变至目录
5.6 .tar.gz压缩格式
.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
压缩:
解压:
5.7 .tar.bz2压缩格式
压缩:
解压:
6. 文件上传与下载
在linux里可使用lrzsz 程序代替ftp上传和下载。
6.1 上传
6.2 下载
7. 安装管理工具
在Linux上软件包的安装和写在是通过安装管理工具来实现的。
tar -xvf 打包文件名
# 解打包到指定目录
tar -xvf 打包文件名 -C 目标目录
tar -zcvf 压缩包名 源文件
tar -zxvf 压缩包名
tar -jcvf 压缩包名 源文件
tar -jxvf 压缩包名
rz
sz 文件所在目录/文件名
7.1 rpm命令
rpm命令是RPM软件包的管理工具,rpm(redhat package manager)是Red Hat Linux发行版专门用来管理
Linux各项套件的程序。
RPM包安装
选项:
-i:安装
-v:显示详细信息
-h:显示进度
--nodeps:不检测依赖性
RPM包升级
选项:
-U:升级
RPM包的卸载
选项:
-e:卸载
RPM包的查询
rpm -ivh 安装包全名
rpm -Uvh 安装包全名
rpm -evh 安装包全名
#查询是否安装:
rpm -q 包名
#查询所有已经安装的RPM包
rpm -qa
#查询软件包的详细信息:
rpm -qi 包名
#查询包中文件安装位置
rpm -ql 包名
#查询系统文件属于哪个RPM包
rpm -qf 系统文件名
#查询软件包的依赖性
rpm -qR 包名
选项:
-q:查询
-a:所有
-i:查询软件信息
-l:列表
-f:查询系统文件属于哪个RPM包
-R:查询软件包的依赖性
7.2 yum命令
yum(Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于
RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的
软体包,无须繁琐地一次次下载、安装。
查询所有包
搜索包
安装包
卸载包
更新包
重新安装包
显示包的信息
# 在远程服务器上查询所有可用的软件包列表
yum list
# 搜索远程服务器上所有和关键字相关的包
yum search 关键字
yum install 包名
# 安装过程中自动回答yes
yum -y install 包名
yum remove 包名
# 更新所有已安装的包
yum update
# 更新指定的包
yum update 包名
yum reinstall 包名
命令 说明
su 用户名 切换用户
clear 清屏
date 显示日期时间
cal 显示日历
hostname 显示主机名
ping 测试网络
ifconfig 显示网络信息
df -h 显示磁盘的使用情况
top 显示系统进程动态信息,类似于Windows的任务管理器
ps -aux 显示系统进程瞬间的状态,并不动态连续
kill -9 PID 根据进程PID终止进程
shutdown -r now 立刻重启
shutdown -r 10 10分钟后重启
shutdown -h now 立刻关机
shutdown -h 10 10分钟后关机
shutdown -c 取消
man 命令名称 命令解析
显示yum历史
显示已启用的yum存储库的列表
清除缓存
8. 系统命令
yum info 包名
yum history
yum repolist
yum clean all
3.4 关闭Hadoop的命令
#进入到hadoop的目录下
cd /usr/local/hadoop
#执行关闭的命令
./sbin/stop-dfs.sh