俺是按照下面这篇文章进行搭建的:

http://cio.51cto.com/art/201705/539356.htm


说实话,上面这篇文章很好。几乎不用改。一步一步按照搭建,没有问题。


俺遇到的坑是:

  1. master连接不上slave.这可咋办。配置文件都没问题啊。

    解决方法: namenode经过多次格式化,产生了多个clusterID导致。(往后不敢随便格式化玩了)

    只要确保master的clusterID和slaveID一致,就能连上了。

    俺的路径是:master: hadoop273/hdfs/name/current/VERSION

          slave : hadoop273/hdfs/data/data/VERSION

    就是把VERSION里面的clusterID一样。其他都不用改。(layoutVersion也不用改。

    这篇文章末尾也有用:http://blog.csdn.net/zzu09huixu/article/details/24725769

    还有这篇:http://blog.csdn.net/longzilong216/article/details/20648387

  2. ===============================

    主机名的问题:/etc/hosts  和  /etc/sysconfig/network  里面,主机名要一致。

    俺这2个文件都改了,还是不认主机名。ping主机名都ping不通。俺不敢重启。于是

    hostname “主机名”,用一个命令临时生效。就通了。

  3. ==================================

    java,俺是自己安装的。从网上找的文章:

    http://www.cnblogs.com/shihaiming/p/5809553.html


   安装完之后,就OK了。

    切记,java版本,和装hadoop那篇文章中的版本,要相应的对起来。我的意思是,名字要改,   比如我装的是jdk1.8.0_131.hadoop那篇文章装的是jdk1.8.0_101. 改一下文件夹名字,就行了。

4.===========================

文中的配置,别随便乱改。

hadoop 刚开始,我用root安装的。后来,为了让hadoop这个用户用。我就改了属组和属主。并hadoop273(文件夹)和java(文件夹)权限,全都777.

    chown -R hadoop:hadoop  hadoop273

    chmod -R 777 hadoop273

这下,hadoop可以用了。


后来,为了其他用户的权限分配问题。我又改了文件夹权限(改之前,先备份):

chmod -R 755 hadoop273

chmod -R 755 java


5.测试命令:

俺用的是(从别人那里抄来的):

运行示例程序:

先在hdfs上创建一个文件夹

./bin/hdfs dfs –mkdir /input

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter input

就是上面这2条命令,就ok拉。randomwriter 这是个文件呢还是文件夹,我也不知道。我的系统上反正没有,但是敲这2条命令,就能测试出来,是真的。


6.ssh免密登录:

在启动的时候:

sbin/start-dfs.sh

sbin/start-yarn.sh

或者:sbin/start-all.sh

就这几条命令,每次都得输入密码。还输入4次。可烦人了。就算复制粘贴也还是烦人。

用下面这个连接,解决了我的问题:

http://blog.csdn.net/firehadoop/article/details/68953541

把master的公钥拷贝到slave即可。master到slave上面,不用输密码。

反过来。slave到master上面,还得输入密码。

刚开始,我还以为,master上启动一遍集群,slave上面还得启动一遍。原来,只要在master上面启动了,slave上就自动启动了呀。哎哎,才明白。