首页 > 代码库 > Hadoop集群搭建

Hadoop集群搭建

关于SSH配置
在配置SSH的时候,要明白ssh_config主要负责ssh的客户端,sshd_config主要是负责服务器端配置;但是两者配置文件内容是一样的,处理方式是对于没有用的参数注释掉;其中有一项是PermitRootLogin,其实这一项是服务器端需要进行配置的,但我在ssh_config中打开了,导致了异常:Bad configuration option: PermitRootLogin;注释掉之后,问题解决。
另外,可以通过“man 5 sshd_config”来查看详细配置内容
在通过ssh-copy-id进行复制公钥的时候,一定要注意是在hadoop用户场景下来操作的;如果是root则无法成功免密处理
 
JAVA_HOME配置
在/etc/hadoop/hadoop-env.sh中要显式填写JAVA_HOME,默认是${JAVA_HOME},需要将其修改为全路径,否则别的dataNode在链接到此台机器的时候将会报错:JAVA_HOME is not set and could not be found
 
异常处理
Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
需要在core-site.xml中配置fs.defaultFS;之前在DataNode的core-site.xml中的fs.defaultFS节点配置的信息是localhost:9000,但是其实应该配置NameNode的节点信息;于是将节点信息替换为nameNode的IP,但是有报错:
Incompatible clusterIDs in /opt/workspace/hadoop/data: namenode clusterID = CID-076fbffa-0e9d-42a3-ad9b-39d93487ce11; datanode clusterID = CID-812c3ffa-bf6b-4bf5-9b9c-4947308ada78
这说明是集群信息不对,说明改正之后的集群信息和已经记录在案的集群信息不匹配导致了异常;后来怀疑集群信息应该是以文件形式存放在 /opt/workspace/hadoop/data路径下,所以直接把data下面的current文件夹(只有这一个文件)删掉;重启启动NameNode,DataNode成功被启动;而且在http://maser.hadoop:50070也可以看到DataNode信息了(之前无法发现DataNode)
 
常见端口
NameNode网站端口是50070;DataNode端口是50075
YARN的默认程序端口:8033
ResourceManager的Web监听端口:8088
NodeManager的Web监听端口:8042
NodeManager的RPC端口:8040
 
配置
其中start-dfs.sh以及start-yarn.sh都是只在master的机器执行即可,只要各个节点的配置OK,就可以通过Master来控制下属的节点启动。
调整Hadoop的日志级别:export HADOOP_ROOT_LOGGER=INFO,console
在做MapReduce的时候,output文件夹是要让Hadoop去创建,不要手工创建;
在Hadoop官网的例子中
 
Hadoop的配置文件需要注意,我在调试YARN的程序的时候,就发现加载的都是Default的配置,这是因为new Configuration()都是加载默认的配置文件(在yarn包,common包下面都有自己的default.xml),如果想要加载定制的配置文件,如果是在Eclipse中使用:
conf.addResource("yarn-site.xml");
即可,addResource函数中将会从CLASS_PATH路径下读取该文件,取出其中的key-value做“覆盖”操作;
 
如果是想要使用系统中已有的文件:
Path p = new Path("opt/workspace/hadoop/hadoop2.8.0/etc/hadoop/yarn-site.xml");
conf.addResource(p);

 

 

Hadoop集群搭建