第一步:配置Hadoop环境变量
首先需要配置一下Hadoop的环境变量
输入命令:vim /etc/profile,如下图所示,添加的内容是下面红色圈住的内容。(类似于JDK环境变量的配置)
vim /etc/profile
然后输入命令source /etc/profile来使配置起作用。
第二步:初始化
接下来开始初始化HDFS(格式化文件系统)。
输入命令hdfs namenode -format 来格式化。(配置了上面的全局环境变量,就可以任意目录执行该命令)
hdfs namenode -format
此时上一步配置的文件目录(tmp、hdfs/data、hdfs/name)就自动生成了:
[root@localhost hadoop]# pwd
/usr/local/src/hadoop
[root@localhost hadoop]# ll
total 352888
drwxr-xr-x. 11 root root 207 Oct 24 17:39 hadoop-2.9.1
-rw-r--r--. 1 root root 361355307 Sep 7 10:51 hadoop-2.9.1.tar.gz
drwxr-xr-x. 4 root root 30 Oct 24 17:51 hdfs
drwxr-xr-x. 4 root root 37 Oct 24 17:51 tmp
[root@localhost hadoop]# cd hdfs
[root@localhost hdfs]# ll
total 0
drwx------. 3 root root 40 Oct 24 18:03 data
drwxr-xr-x. 3 root root 40 Oct 24 18:00 name
[root@localhost hdfs]#
第三步:启动Hadoop
在hadoop安装目录的sbin目录下执行格式化命令!
cd /usr/local/src/hadoop/hadoop-2.9.1/sbin
start-dfs.sh
start-yarn.sh
或者使用 ./start-all.sh 命令就不用一个个启动了
启动hadoop
第四步:查看进程
启动完两个脚本之后,来看一下java process snapshot(jps),发现有6个进程,其中NameNode是HDFS的老大,DataNode是HDFS的小弟,ResourceManager是YARN的老大,NodeManager是YARN的小弟,另外SecondaryNameNode是HDFS的NameNode的助理帮助NameNode完成一些数据的同步,主要用来合并fsimage和edits文件等。这说明前一节配置的完全正确,一次性启动成功!
第五步:浏览器验证
浏览器访问:
192.168.93.128:50070
192.168.93.128:8088
若浏览器成功访问需要关闭Linux的防火墙
#查看防火墙状态
[root@localhost sbin]# firewall-cmd --state
running #表示防火墙开启状态
#关闭防火墙
[root@localhost sbin]# systemctl stop firewalld.service
此时,页面就可以正常访问了:
现在就表示Hadoop的伪分布式就搭建好了!
在windows系统中绑定Linux主机名和之后
修改C:\Windows\System32\drivers\etc下的host文件
访问形式:
mrzhang:50070
mrzhang:8088端口
第六步:测试HDFS
1.上传文件到HDFS (put)
hadoop fs -put /root/jdk-7u60-linux-x64.tar hdfs://mrzhang:9090/jdk
2.从HDFS下载文件到根目录home下的jdk1.7(get)
hadoop fs -get hdfs://mrzhang:9090/jdk /home/jdk1.7
3.查看上传到hdfs的文件,最后的/不能省了 (ls)
hadoop fs -ls hdfs://mrzhang:9090/
第七步:测试MR和YARN
1.首先linux本身提供一个命令wc,用来统计出现的单词,举例如下
vi words.txt文件内容如下:
hello tom
hello jerry
hello kitty
hello world
hello tom
命令行输入wc words.txt出现如下结果
5 10 57 words.txt
意思分别是5行,10个单词,57个字母
2.下面是利用hadoop的MR自带的wordcount计算
在/hadoop/hadoop-2.9.1/share/hadoop/mapreduce这个目录下输入命令
hadoop jar hadoop-mapreduce-examples-2.9.1.jar wordcount hdfs://mrzhang:9090/words.txt hdfs://mrzhang:9090/wcout
hadoop jar hadoop-mapreduce-examples-2.9.1.jar wordcount -->这个是调用hadoop下的jar包命令
然后要跟一个输入in和一个输出out
输入in放的就是要计算的那个文件
输出out到wcout文件,然后运行即可