Hadoop集群的搭建教程
1. 因为之前的是master,修改主机名
修改主机名是自己需要的名字。
查看主机名发现还是had1,怎么办?
需要reboot重启一下啊!!!
重启完毕再看!!!
2. 克隆主机
注意,必须是完整克隆,否则就是假克隆。
查看网址,发现有问题哦:
因为原来老的网卡的是eth0,则默认新的是eth1,所以,需要删除旧的网卡,即删除eth0
vi /etc/udev/rules.d/70-persistent-net.rules
在新克隆的虚拟机里面删除
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除里面的UUID和HWADDR,不删除的话,则两个虚拟机无法启动联网。(如果你感觉删除了,很难受!!!就改成和之前的不一样的两个。)
关闭防火墙:
service iptables stop
设置防火墙开机不启动
chkconfig iptables off
内外网不同或者虚拟机之间不同的原因:
1. 防火墙没有关闭(windows防火墙、linux虚拟机防火墙)
2. 编辑--》虚拟网络编辑器里面的NAT设置,看看你的网关是什么?老师这里的是192.168.80.2,要保持你的网关和系统的一致。就像代理服务器一样。保证各个虚拟机之间的连通。
SSH免密登录
设置master节点和两个slave节点之间的双向ssh免密通信,下面以master节点ssh免密登陆slave节点设置为例,进行ssh设置介绍(以下操作均在master机器上操作):
首先生成master的rsa密钥:$ssh-keygen -t rsa
设置ssh免密码登录是为了操作方便
生成秘钥文件
在每台机器上都执行一遍
首先输入:
有的会有问题,在下一步有问题,需要配置hosts文件
vi /etc/hosts
先在master机器上试验
ll ~/.ssh/
再次使用ssh访问就不再需要密码了!
看看slave02
从master处登录slave1
拷贝slave1
可以直接登录啦,可以试下ssh slave1
同理,拷贝到slave2,再次实习
升级配置master的几个文件
修改当前hadoop2-8-2下的core-site.xml
<!--NameNode命名空间的配置--> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <!--配置hdfs的缓存大小--> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!--配置临时存储目录,你自己建立的目录--> <property> <name>hadoop.tmp.dir</name> <value>/home/bigdata/tmp</value> </property> |
修改hdfs-site.xml
<!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!--存放位置--> <property> <name>dfs.namenode.dir</name> <value>/home/hadoopdata/dfs/name</value> </property> <!--hadoop的存放位置--> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoopdata/dfs/data</value> </property> <!--检测点目录--> <property> <name>fs.checkpoint.dir</name> <value>/home/hadoopdata/checkpoint/dfs/cname</value> </property> <!--可以在web网站看到,hadoop01就是你的namenode节点名,hadoop01变化--> <property> <name>dfs.http.address</name> <value>hadoop01:50070</value> </property> <!--secondary namenode配置--> <property> <name>dfs.secondary.http.address</name> <value>hadoop01:50090</value> </property> |
mapred-site.xml是改名过来的.
修改mapred-site.xml
<!--运行在yarn上,一句即可--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--历史通信的地址--> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop01:10020</value> </property> <!--历史通信的web通信端口--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop01:19888</value> </property> |
修改yarn-site.xml
<!-- reducer 获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- YARN 的老大 ResourceManager 的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <!--指定rm的内部通信地址--> <property> <name>yarn.resourcemanager.address</name> <value>hadoop01:8032</value> </property> <!--指定rm的scheduler的内部通信地址--> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoop01:8030</value> </property> <!--指定resource-tracker通信地址--> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hadoop01:8031</value> </property> <!--指定rm的admin的管理通信地址--> <property> <name>yarn.resourcemanager.admin.address</name> <value>hadoop01:8033</value> </property> <!--指定rm的web地址--> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hadoop01:8088</value> </property> |
在slave1和slave上删除原来从hadoop的路径信息,不要在hadoop01上机器上删除,否则就什么东东都没有了,切记,切记!
rm -rf /usr/local/hadoop-2.8.2/
拷贝hadoop信息
格式化:
namespaceID=2114046441
clusterID=CID-b47b7f19-a765-4b3d-8b74-65d47ad0bc49
最终效果
测试、Web访问
(1)浏览器打开http:// 主机IP :8088 / hadoop的管理
(2)浏览器打开http:// 主机IP :50070/ hdfs文件系统管理
四、测试程序
1. hdfs dfs -mkdir /test; hdfs dfs -ls / 在分布式文件系统中创建目录test
2.touch words 在本地创建文件,vim words编辑保存随便输入一些单词,以空格分开。
3. hdfs dfs -put words /test 把words文件上传到分布式文件系统中
4./home/hadoop/hadoop-2.9.2/bin/hadoop jar /home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /test/words /test/output
或我的位置或任意你的hadoop位置
/usr/local/hadoop-2.8.2/bin/hadoop jar /usr/local/hadoop-2.8.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar wordcount /test/words /test/output
再次执行的时候,output需要改名,也就是说不用自己创建output
5.查看结果:
bin/hdfs dfs -cat /test/output/part-r-00000
Grep案例
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar grep /test/words /test/output3 'zh[a-z.]+' |
使用正则表达式查找文件中符合条件的字符串
后记,错误小贴士:
笔者在第四部的时候出现如下错误:
经过不懈努力,发现原来是hadoop的etc下的mapred-site.xml里面的配置了问题
现在将hadoop01.10020,改成hadoop01:10020就可以了。
再次启动就可以了:
和自己输入的words内容进行对比:
我进到浏览器进行查看就可以了
这个不就是我们看到的名字吗?
- 点赞
- 收藏
- 关注作者
评论(0)