1、上传cenos-6.5-hadoop-2.6.4.tar.gz 到node1的/home/software下
2、在node1创建/home/apps用于安装软件
3、进入/home/apps/hadoop-2.6.4/etc/hadoop配置
1)配置hadoop-env.sh
2)配置core-site.xml
3)配置hdfs-site.xml
默认是3
dfs.replication
2
4)配置mapred-site.xml.template
mapreduce.framework.name
yarn
5)配置yarn-site.xml
yarn.resourcemanager.hostname
node1
yarn.nodemanager.aux-services
mapreduce_shuffle
6)至此 hadoop配置好了,分发到 node2 、node3和node4
4、在node1上配置hadoop的环境变量
/home/apps/hadoop-2.6.4
然后激活
5、分发 /etc/profile到node2、node3、node4
然后激活
source /etc/profile
6、在node1上格式化
node1是老大
要输入Y ,否则启动后无法访问50070
7、在node1上启动namenode
查看:
8、访问
在笔记本C:\Windows\System32\drivers\etc中配置hosts
http://node1:50070
访问不了,查看50070端口是监听状态。
如果访问不了,全部关闭防火墙,重启,并且重启笔记本。
往下拉,看看容量会0
9、在node2、node3、node4任意一台上启动datanode
在node3上启动.
因为hadoop中,我们设置了namenode,启动datanode时会自动和namenode握手,启动datanode就相当于动态增加了
刷新,查看那大小:
应该有大小了。
我这里还是0,应该是哪里出问题了。这是是启动它自己的。 刚才启动node3和node2都无效
node3和node2里都有 hadoop,里面都配置了node1,node3和node2都不知道node1是什么,因此配置 node2的hosts实验一下:
然后启动:
猜想是失败。
明天试下在node1中设置node2的ip,在node1中设置node2然后测试,成功了。
启动较慢,要稍微等一下,启动完立马刷新,可能看不到效果。
因此,在4台机器上的/etc/hots都设置4个:
否则 每台机器上都得设置node1,另外node1上得设置4个,为了简单,每台机器都设置4个。
11)在node1上设置4个映射
2)分发到node2 node3 和 node4
3)启动过两台
4)结果
10、如果有100台机器我们启动太慢了,hadoop自带启动脚本
自动化弃掉脚本,需要知道启动哪些,查看
/home/apps/hadoop-2.6.4/etc/hadoop下的slaves
意思是在本地启动或关闭namenode,这显然不对,改为如下:
然后设置免密登录
1)设置免密登录
先关闭 2台datanode和namenode
然后设置免密登录:
要在namenode节点设置,也就是在node1上设置。
2)输入ssh-keygen
然后输入四个回车。会生成私钥和公钥
如果希望公钥和私钥在home下,先进入home,在输入ssh-keygen
3)将公钥拷贝到要免密登陆的目标机器上
首先到自己:
然后到node2:
到node3:
到node4:
4)检查免密登录是否生效
然后用exit退出。
5)自动化脚本停止 hdfs
在没启动的情况下,直接停止
不建议用stop-all。
在node1上操作:
进入/home/apps/hadoop-2.6.4/sbin/
然后执行stop-dfs.sh
如果没有编辑
可能会出错,不会启动或关闭node2、node3、node4
start-all.sh 是启动两个,包括start-dfs.sh和start-yarn.sh.
如果希望少启动或多启动datanode,可以编辑salves。
vi /home/apps/hadoop-2.6.4/etc/hadoop/slaves
这里编辑:salves,打算启动两台
然后在node1上执行,start-dfs.sh
然后访问
http://node1:50070:
至此,搭建完全成功。