Hadoop2.7完全分布式安装

实验工具:

        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,如下图所示:

 第9条和第10 条中任何一个进程没有,都是出现错误,就得改吧。

我出现的问题是:Datanode一直启动不起来,改了两天,才发现是关于namesnode数据格式的问题,而我的又不一样,我的是Datanode中没有关于namenodeID,然后通过(转自:http://www.lishiyu.cn/post/61.html),通过它的方法,将master主机中的hadoop根目录下 /tmp临时文件删除,还有hadoop根目录下的/hdfs/data和/hdfs/name目录下文件都删除,然后成功。


致此,hadoop环境搭建完成,其中,我还是有许多搞不懂的地方。慢慢来吧,脚踏实地,代码的提升就是靠改错提升的。期间痛苦,过后就兴奋的像孔乙己了。

希望每个coding的程序猿们,大家都写写博客,虽不能完整描述,但可以把自己问题说出来,然后说出解决办法。好的风气起来,对你,对大家,都是很节省时间的。其中我很想说为什么这么做,但是,我真的能力有限。下面是我参考的博文,希望对大家有用:

我用的最多的是这个地址:这个

还有这两个:实验楼(给它做广告它会不会很开心呢)和 这个

在此,谢谢博友们的分享。

你可能感兴趣的:(Hadoop2.7完全分布式安装)