实验工具:
Ubuntu16.041台主机(master:我的名字叫zhangjunj)+2台虚拟机(slaves:slaveone 和 twoslave)
hadoop:hadoop-2.7.3
jdk:jdk1.8.0.121
安装VisualBox(virtualbox-5.1_5.1.14)
安装过程请自行百度,google
这里我说一下自己碰到的问题:
因为需要主机和虚拟机相互文件传输文件,所以需要共享设置,设置的方法我已在下面给出链接。其中博主说通过在/etc/fstab中加入 :
gongxiang /mnt/shared vboxsf rw,gid=username,uid=username,auto 0 0
可以实现自动挂载。但是我实验的时候,每次加入这段话,就进入Linux紧急模式,然后通过root权限删除这句话,OK.所以大家懂的,如果需要创建文件,每次开机都得手动挂载。其中设置共享文件夹在这里。
网络配置
1. 3个IP必须在同一网段上,然后在VirsualBox中 设置-->网络设置成 -->桥接模式,如下图所示:
2. 对相应的slaves配置IP:
3.因为桥接模式,我是通过ccproxy代理上网的,将代理放在我另一台电脑的windows上,至于如何代理,自行Google,百度,然后说一下我遇到的问题:代理的时候,别忘了关闭windows下的防火墙。
4. 在主机和2个slave上的 /etc/hosts 中配置ip 每个节点对应的映射:
5. 配置好之后相互ping一下,然后确认是否成功:
SSH无密码登录各节点:
这个操作就是让master(zhangjunj)登录到各个slave上
1. 先在终端进行 sudo apt-get install openssh-server (先在本机上免密码):
第二步: ssh localhost
第三步: ssh-keygen -t rsa
第四步: cat ./id_rsa.pub >> ./authorized_keys
四步完成之后验证一下,进行 ssh localhost,就可以免密码登录了
2. 然后在主机master(我的叫zhangjunj)终端上进行:
scp ~/.ssh/id_rsa.pub slaveone@slaveone:/home/remoteFile
结果:
接着在slaveone上:
mkdir ~/.ssh # 如果不存在请先创建,已存在请忽略
cat ~/remoteFile/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub #用完可以删掉
(以上 网络配置和 无密码登录 大多出自于: http://www.powerxing.com/install-hadoop-cluster/)
然后: ssh slaveone@slaveone
然后我从中在过程中遇到的问题遗忘了,解决的方法是 :我把一个master(zhangjunj)和两个slave都相互配了一遍。
配置PATH变量
在 /etc/profile 中 除了 SCALA_HOME 和 相对应的PATH外,其他的都应该存在:
然后:source /etc/profile
配置集群
在主机(master,我的叫zhangjunj)上这个需要修改 ..../.../hadoop/etc/hadoop中的5个配置文件:slaves、core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml.
1.在文件slaves中:
2. 文件core-site.xml改为下面配置:
3. 文件hdfs-site.xml,其中我的dfs.replication设置,因为我有2个slave,所以为2.
4. 文件mapred-site.xml:
5. 文件yarn-site.xml:
6. 在传输之前,如果之前跑过伪分布,建议先删除之前的临时文件,在hadoop根目录下执行:
sudo rm -rf tmp
sudo rm -rf logs/*
7. 配置好之后,将配好的hadoop文件可以复制到2个slave上。然后将配好的hadoop分配到2个slave中. 我是通过共享文件夹传输的,因为scp传输总是拒绝,不知道什么原因,也没有解决,如果哪个大神知道,敬请赐教。(但共享文件夹传输会有访问权限的问题,需要修改hadoop根目录下./hdfs/data的文件权限,我是通过 chmod 777 修改权限了)
8. 首先启动需要现在Master(Zhangjunj)执行NameNode格式化,通过根目录下进入bin目录下:
./hdfs namenode -format
9. 然后退出到根目录,进入 sbin目录下,进行:
./start-dfs.shfenxiang
./start-yarn.sh
结果如图:
10. 在 slave机子上 在进行 jps,如下图所示: