安装好配置好虚拟机后将IP地址进行截图,并在secureCRT中输入相应IP地址进行连接(此处CRT我用的是绿色免安装版本所以可以直接连接)
以下是虚拟机IP以及主机名截图(bigdata1后改成了bigdata129)
1.关闭防火墙(虚拟机直接禁用,不然格式化以后运行不成功)
systemctl disable firewalld 禁止防火墙
2.SecureCRT 【File(文件)】→【Connect SFTP Session(连接SFTP会话)】并将jdk以及hadoop安装包传送从主机到当前路径(虚拟机Linux系统)
put jdk-8u121-linux-x64.tar.gz
put hadoop-2.7.3.tar.gz
显示100%后可以用ls命令查看文件是否存在
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module 解压安装
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module 解压安装
3.配置hadoop并使用source /etc/profile配置生效
vi /etc/profile文件添加:
export HADOOP_HOME=/root/hadoop-2.7.3(/root是你自己的文件目录,我的是root)
export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH
Esc :wq!保存并退出
运行命令hadoop,检验是否成功
vi /root/hadoop-2.7.3/etc/hadoop/hadoop-env.sh文件修改
显示行号 Esc :set number 取消行号Esc :set nonumber
修改第25行export JAVA_HOME=/root/jdk1.8.0_121
Esc :wq!保存并退出
开始实行伪分布式配置
((bigdata129是虚拟机设置的主机名))
在与之间添加如下property:(打开文件先找到修改位置并按一下i键再输入,不然容易出错)
①core-site.xml
(此处我并未修改主机名,还是128,之前用IP用128在伪分布式可以成功,但完全分布式报错,找了一整天才找到问题,一定要注意!!!)
web控制台访问:http://192.168.78.129:50070 、http://192.168.78.129:8088
页面正常显示,伪分布成功
wordcount
cd /root/hadoop-2.7.3/share/hadoop/mapreduce 转入wordcount所在路径。
运行touch in.txt,创建In.txt文件,作为输入文件。(文件内容自己输入)
(如果in.txt是空文件,运行vi in.txt,输入内容作为被统计词频的输入文件)
输出目录/output必须不存在,程序运行后自动创建。
运行wordcount:
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/
运行成功之后,进入/output目录,打开文件part-r-00000查看计数结果
总结:伪分布式配置不是很困难,只要IP地址链接得上,没有问题,文件配置不出错就能出来,但是伪分布式出来不代表完全分布式也能出来,还是要注意IP问题
SSH免密码登陆(解决每次启动hadoop输入用户密码问题)
生成公、私密钥对:ssh-keygen -t rsa 按3次回车键
查看:cd ~/.ssh路径下面的rd_rsa和rd_rsa.pub
复制:ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata129
查看生成authorized_keys
开始完全分布式配置
完全分布式容易出错,尤其是IP地址出问题连接不上都不报错但就是出不来,所以一定要注意
1.克隆虚拟机,加上主机一共三台
前述伪分布式的虚拟机(bigdata128)作为master主节点,克隆另外两个虚拟机(bigdata129、bigdata131)作为slaves子节点
修改以下配置文件
①slaves配置文件
三台虚拟机分别都运行命令 vi /root/hadoop-2.7.3/etc/hadoop slaves
修改slaves为:
bigdata130
bigdata131
②修改\etc\hosts配置文件
三台虚拟机分别都运行命令 vi \etc hosts(etc找不到可以cd后cd …再ls就可以看到了)
注释已有内容,添加集群三台虚拟机的ip及对应主机名:
192.168.163.129 bigdata129
192.168.163.130 bigdata130
192.168.163.131 bigdata131
③修改\etc\hostname配置文件
三台虚拟机分别都运行命令 vi \etc hostname
添加各自的主机名bigdata129或者bigdata130或者bigdata131。
重启全部虚拟机,主机名生效
在主节点bigdata129上面输入格式化命令(hdfs namenode -format),格式化集群。
注:如果不是第一次格式化,三台虚拟机都删除\root\hadoop-2.7.3\下面的tmp、logs目录:rm –rf \root\hadoop-2.7.3\tmp rm –rf \root\hadoop-2.7.3\logs
注:如果格式化之前启动过集群,先在主节点bigdata129上面停止集群(stop-all.sh),再格式化
在主节点bigdata129上面输入启动命令(start-all.sh),启动集群。
注:如果启动之前启动过集群,先在主节点bigdata129上面停止集群(stop-all.sh),再启动
输入jps如下显示成功
web控制台访问:http://192.168.78.129:50070 、http://192.168.78.129:8088
页面正常显示,则成功
Wordcount
hdfs dfs -put in.txt /adir 上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。
运行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/。
在http://192.168.78.129:50070 查看/user/root/output/part-r-00000文件里的词频统计结果(此处没截图)
总结:在做伪分布式的时候因为没有先按i键输入所以后来出错,重新做了一遍才出来。完全分布式耗了我一整天,因为连接不上没有报错,找了很久才发现是IP地址的问题,好在最后圆满解决