Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程

来源:互联网 发布:产品群发软件 编辑:IT博客网 时间:2019/10/18 01:45

历时一周多,终于搭建好最新版本Hadoop2.2集群,期间遇到各种问题,作为菜鸟真心被各种折磨,不过当wordcount给出结果的那一刻,兴奋的不得了~~(文当中若有错误之处或疑问欢迎指正,互相学习)

另外:欢迎配置过程中遇到问题的朋友留言,相互讨论,并且能够把解决方法共享给大家。下面评论中有几个朋友遇到的问题和解决方法,欢迎参考!

 

第一部分 Hadoop 2.2 下载

Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src 源码自行编译(10楼评论中提供了一个解决方法链接)。

下载地址:http://apache.claz.org/hadoop/common/hadoop-2.2.0/

如下图所示,下载红色标记部分即可。如果要自行编译则下载src.tar.gz.

 

 Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程

 

第二部分 集群环境搭建

1、这里我们搭建一个由三台机器组成的集群:

192.168.0.1 hduser/passwd cloud001 nn/snn/rm CentOS6 64bit

192.168.0.2 hduser/passwd cloud002 dn/nm Ubuntu13.04 32bit

192.168.0.3 hduser/passwd cloud003 dn/nm Ubuntu13.0432bit

1.1 上面各列分别为IP、user/passwd、hostname、在cluster中充当的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)

1.2 Hostname可以在/etc/hostname中修改(ubuntu是在这个路径下,RedHat稍有不同)

1.3 这里我们为每台机器新建了一个账户hduser.这里需要给每个账户分配sudo的权限。(切换到root账户,修改/etc/sudoers文件,增加:hduser ALL=(ALL) ALL )

2、修改/etc/hosts 文件,增加三台机器的ip和hostname的映射关系

192.168.0.1 cloud001

192.168.0.2 cloud002

192.168.0.3 cloud003

3、打通cloud001到cloud002、cloud003的SSH无密码登陆

3.1 安装ssh

一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以重新安装:

sodu apt-get install ssh

3.2设置local无密码登陆

安装完成后会在~目录(当前用户主目录,即这里的/home/hduser)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh)。

具体步骤如下:

1、 进入.ssh文件夹

2、 ssh-keygen -t rsa 之后一路回 车(产生秘钥)

3、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)

4、 重启 SSH 服 务命令使其生效 :service sshd restart(这里RedHat下为sshdUbuntu下为ssh)

此时已经可以进行ssh localhost的无密码登陆

【注意】:以上操作在每台机器上面都要进行。

3.3设置远程无密码登陆

这里只有cloud001是master,如果有多个namenode,或者rm的话则需要打通所有master都其他剩余节点的免密码登陆。(将001的authorized_keys追加到002和003的authorized_keys)

进入001的.ssh目录

scp authorized_keys hduser@cloud002:~/.ssh/ authorized_keys_from_cloud001

进入002的.ssh目录

cat authorized_keys_from_cloud001>> authorized_keys

至此,可以在001上面sshhduser@cloud002进行无密码登陆了。003的操作相同。

 

4、安装jdk(建议每台机器的JAVA_HOME路径信息相同)

 

注意:这里选择下载jdk并自行安装,而不是通过源直接安装(apt-get install)

 

4.1、下载jkd( http://www.Oracle.com/technetwork/java/javase/downloads/index.html)

 

4.1.1 对于32位的系统可以下载以下两个Linux x86版本(uname -a 查看系统版本)

 

4.1.2 64位系统下载Linux x64版本(即x64.rpm和x64.tar.gz)

 

 

Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程 

 

 

4.2、安装jdk(这里以.tar.gz版本,32位系统为例)

 

安装方法参考http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

 

4.2.1 选择要安装java的位置,如/usr/目录下,新建文件夹java(mkdirjava)

 

4.2.2 将文件jdk-7u40-linux-i586.tar.gz移动到/usr/java

 

4.2.3 解压:tar -zxvf jdk-7u40-linux-i586.tar.gz

 

4.2.4 删除jdk-7u40-linux-i586.tar.gz(为了节省空间)

 

至此,jkd安装完毕,下面配置环境变量

 

4.3、打开/etc/profile(vim /etc/profile)

 

在最后面添加如下内容:

 

JAVA_HOME=/usr/java/jdk1.7.0_40(这里的版本号1.7.40要根据具体下载情况修改)

 

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

 

PATH=$JAVA_HOME/bin:$PATH

 

export JAVA_HOMECLASSPATH PATH

 

4.4、source /etc/profile

 

4.5、验证是否安装成功:java–version

 

【注意】每台机器执行相同操作,最后将java安装在相同路径下(不是必须的,但这样会使后面的配置方便很多)

 

5、关闭每台机器的防火墙

 

RedHat:

 

/etc/init.d/iptables stop 关闭防火墙。

 

chkconfig iptables off 关闭开机启动。

 

Ubuntu:

 

ufw disable (重启生效)

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/93077p2.htm

相关阅读

Ubuntu 13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建) http://www.linuxidc.com/Linux/2011-12/48894.htm


第三部分 Hadoop 2.2安装过程

由于hadoop集群中每个机器上面的配置基本相同,所以我们先在namenode上面进行配置部署,然后再复制到其他节点。所以这里的安装过程相当于在每台机器上面都要执行。但需要注意的是集群中64位系统和32位系统的问题。

1、 解压文件

将第一部分中下载的hadoop-2.2.tar.gz解压到/home/hduser路径下(或者将在64位机器上编译的结果存放在此路径下)。然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。

注意:每台机器的安装路径要相同!!

2、 hadoop配置过程

配置之前,需要在cloud001本地文件系统创建以下文件夹:

~/dfs/name

~/dfs/data

~/temp

这里要涉及到的配置文件有7个:

~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh

~/hadoop-2.2.0/etc/hadoop/yarn-env.sh

~/hadoop-2.2.0/etc/hadoop/slaves

~/hadoop-2.2.0/etc/hadoop/core-site.xml

~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

以上个别文件默认不存在的,可以复制相应的template文件获得。

配置文件1:hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)

配置文件2:yarn-env.sh

修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)

配置文件3:slaves (这个文件里面保存所有slave节点)

写入以下内容:

cloud002

cloud003

配置文件4:core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://cloud001:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hduser/tmp</value>

<description>Abase for other temporary directories.</description>

</property>

<property>

<name>hadoop.proxyuser.hduser.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hduser.groups</name>

<value>*</value>

</property>

</configuration>

配置文件5:hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>cloud001:9001</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hduser/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/hduser/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

配置文件6:mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>cloud001:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>cloud001:19888</value>

</property>

</configuration>

配置文件7:yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>cloud001:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value> cloud001:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value> cloud001:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value> cloud001:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value> cloud001:8088</value>

</property>

</configuration>

3、复制到其他节点

这里可以写一个shell脚本进行操作(有大量节点时比较方便)

cp2slave.sh

#!/bin/bash

scp–r /home/hduser/hadoop-2.2.0 hduser@cloud002:~/

scp–r /home/hduser/hadoop-2.2.0 hduser@cloud003:~/

注意:由于我们集群里面001是64bit 而002和003是32bit的,所以不能直接复制,而采用单独安装hadoop,复制替换相关配置文件:

Cp2slave2.sh

#!/bin/bash

scp /home/hduser/hadoop-2.2.0/etc/hadoop/slaveshduser@cloud002:~/hadoop-2.2.0/etc/hadoop/slaves

scp /home/hduser/hadoop-2.2.0/etc/hadoop/slaveshduser@cloud003:~/hadoop-2.2.0/etc/hadoop/slaves

scp /home/hduser/hadoop-2.2.0/etc/hadoop/core-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/core-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/core-site.xml hduser@cloud003:~/hadoop-2.2.0/etc/hadoop/core-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/hdfs-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/hdfs-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/mapred-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/mapred-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/yarn-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/yarn-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

4、启动验证

4.1 启动hadoop

进入安装目录: cd ~/hadoop-2.2.0/

格式化namenode:./bin/hdfs namenode –format

启动hdfs: ./sbin/start-dfs.sh

此时在001上面运行的进程有:namenode secondarynamenode

002和003上面运行的进程有:datanode

启动yarn: ./sbin/start-yarn.sh

此时在001上面运行的进程有:namenode secondarynamenoderesourcemanager

002和003上面运行的进程有:datanode nodemanaget

查看集群状态:./bin/hdfs dfsadmin –report

 

查看文件块组成: ./bin/hdfsfsck / -files -blocks

查看HDFS: http://16.187.94.161:50070

查看RM: http:// 16.187.94.161:8088

4.2 运行示例程序:

先在hdfs上创建一个文件夹

./bin/hdfs dfs –mkdir /input

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

 

PS:dataNode 无法启动是配置过程中最常见的问题,主要原因是多次format namenode 造成namenode 和datanode的clusterID不一致。建议查看datanode上面的log信息。解决办法:修改每一个datanode上面的CID(位于dfs/data/current/VERSION文件夹中)使两者一致。还有一种解决方法见下面6楼评论! http://www.linuxidc.com/Linux/2013-11/93077p3.htm

22楼 Rooter 5小时前发表 [回复]
博主想问下,为什么http://localhost50070/dfshealth.jsp页面上的Browse the filesystem 不能打开呢?我用单节点和完全分布式的部署都不能打开
21楼 zxu618 4天前 09:41发表 [回复]
楼主也是64位,你当时如何重新编译的?
Re: 我是菜鸟要早起 3天前 18:13发表 [回复]
回复zxu618:编译方法:http://www.linuxidc.com/Linux/2013-11/93080.htm
20楼 zxu618 2013-11-15 16:40发表 [回复]
楼主威武,最近导师让搭个Hadoop,正愁没有教程呢
19楼 a632154894 2013-11-15 13:40发表 [回复]
楼主你好,我在启动hdfs: ./sbin/start-dfs.sh的时候出错了。
我把我的配置给你看看
18楼 a632154894 2013-11-15 13:34发表 [回复]
楼主,你好,我不清楚你那些指令,哪些是在root用户下执行的,哪些是在hduser下执行的!
Re: 我是菜鸟要早起 3天前 18:12发表 [回复]
回复a632154894:可以所有都在hduser 用户下,前提是该用户已经加入到sudoers 文件
17楼 淵鴻 2013-11-08 17:44发表 [回复]
楼主,为什么我的resourcemanager开起来之后,自动就关了呢,8088端口没有在监听
Re: 我是菜鸟要早起 2013-11-10 19:04发表 [回复]
回复Gameword1:一般这种问题都是集群中结点直接通讯问题导致的。建议你查看namenode上面关于resource manager的log。看看具体错误在哪里
16楼 neihaoma 2013-11-08 17:22发表 [回复]
楼主啊,,搭建成功了,页面也出来了,但是使用过程中还有好多问题,,求解
15楼 neihaoma 2013-11-06 11:57发表 [回复]
编译安装顺利完成,十分感谢楼主分享,赞一个
Re: neihaoma 2013-11-08 15:54发表 [回复]
回复u012732153:楼主,有个问题要请教一下,加我
Re: neihaoma 2013-11-08 15:11发表 [回复]
回复u012732153:其他slave节点datanode无法启动,还有一个原因是hosts文件写错了,估计大家不会犯那种错误,反正我是这个原因
14楼 snrjmhn 2013-11-06 10:34发表 [回复]
请问楼主有没有cygwin上安装hadoop-2.2.0的经验?
我是一新手,在cygwin上安装hadoop-2.2.0后,
用bin/hdfs namenode -format命令时总是提示下边的问题:
▒▒▒▒: ▒Ҳ▒▒▒▒▒▒޷▒▒▒▒▒▒▒▒▒ org.apache.hadoop.hdfs.server.namenode.NameNode

请指教
Re: 我是菜鸟要早起 2013-11-10 19:07发表 [回复]
引用“snrjmhn”的评论:请问楼主有没有cygwin上安装hadoop-2.2.0的经验?
我是一新手,在cygwin上安装h...

抱歉我在cygwin下面没有安装过,不过应该这linux下面没有区别的吧。你的错误信息显示不完全,没看到具体原因
13楼 zpc_silenthill 2013-11-05 11:47发表 [回复]
新手一枚,按照博主的步骤安装成功了,非常感谢分享。
博主core-site.xml有个笔误<name>fs.defaultFS</name>,估计是<name>fs.default.name</name>。
另外,发现如果<name>fs.default.name</name>的值使用的是机器名的话。在namenode的/etc/hosts中,如果127.0.0.1要放在本机的IP后,否则执行:./bin/hdfs dfsadmin –report,不能看的配置的2个datanode,只能看到本机的。原因不清楚。
Re: 我是菜鸟要早起 2013-11-05 13:03发表 [回复]
回复zpc_silenthill:你遇到的问题2,你试注释到127.0.0.1那一行。
只用IP hostname
Re: 我是菜鸟要早起 2013-11-05 12:59发表 [回复]
回复zpc_silenthill:首先恭喜你成功部署!
name>fs.defaultFS</name>是可以的,我开始部署的时候也注意到这个问题了。老版本的hadoop 上面,参数都是:<name>fs.default.name</name>。应该是2.0以后改成FS这种的(http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml)。如果你部署成功的话,说明参数名是向前兼容的。
Re: zpc_silenthill 2013-11-05 13:50发表 [回复]
回复licongcong_0224:感谢博主细致的回复 赞一个
12楼 蜗蜗牛快跑 2013-11-05 11:20发表 [回复]
博主有装hbase么?我在装hbase时遇到版本冲突了,求指导呀!
Re: 我是菜鸟要早起 2013-11-05 12:48发表 [回复]
回复superbinbin1:实在抱歉了,最近因为没有用到hbase,直接在hive上面搞一些简单的事情。不过后面是打算把hadoop相关的东西都尝试一下。你可以先琢磨一下,个人觉得hdfs和yarn相关都部署好了,其他的就比较容易了。你提到的版本兼容问题,我猜是因为你的hbase比较老吧。因为hive和hadoop 之间就有个版本的对应问题。要新对新,老对老!
11楼 蜗蜗牛快跑 2013-11-05 11:19发表 [回复]
引用“jackhes02”的评论:回复licongcong_0224:问题已解决,报错如下:
2013-11...


后面查了下,发现我也是这个问题!坑爹的,都是复制张贴惹的祸呀!非常感激博主的无私帮助,hadoop成功部署了,哈哈
Re: 我是菜鸟要早起 2013-11-05 12:45发表 [回复]
回复superbinbin1:恭喜恭喜!!网页复制经常出现各种问题。群众的力量是伟大的,哈哈。。欢迎大家共享各种问题!
10楼 jackhes02 2013-11-04 10:13发表 [回复]
运行任何一条命令都有这条报错信息,请问,怎么处理,谢谢。
[zzhadoop@vm2 hadoop-2.2.0]$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter input
13/11/04 10:12:28 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

[zzhadoop@vm2 hadoop]$ hdfs dfsadmin -report
13/11/04 10:04:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Re: jackhes02 2013-11-04 13:36发表 [回复]
回复jackhes02:网上查了一下资料,说是32位hadoop部署在了64为linux上。
hadoop2.2.0遇到64位操作系统平台报错,重新编译hadoop :http://www.linuxidc.com/Linux/2013-11/93080.htm
Re: 我是菜鸟要早起 2013-11-04 13:47发表 [回复]
回复jackhes02:是的,谢谢提供链接
Re: 我是菜鸟要早起 2013-11-04 12:43发表 [回复]
回复jackhes02:你是在64位系统上跑的吧?
处理办法就是下载src在64位机器上面编译一下。因为直接下载的是适用于32机器的。blog上面有讲到的
9楼 外星茹敬雨拦不住 2013-11-03 21:10发表 [回复]
您好,我是hadoop的新手。
我想问一下,既然hadoop2.2 已经发布,还有没有必要先学习下hadoop1.2.他们两者之间差距大吗?
网上关于2.2的资料很少,大部分都是1.2的。
希望您能给个建议,谢谢啦~
Re: 我是菜鸟要早起 2013-11-03 21:47发表 [回复]
引用“rjy1989”的评论:您好,我是hadoop的新手。
我想问一下,既然hadoop2.2 已经发布,还有没有必要先学习下h...

您好,由于2.2是10月份刚刚发布的,所以网上相关资料都非常少,甚至2.0版本以后都很难找到比较详细的中午资料,所以最权威的还是查看Apache的英文资料,我配置过程中也主要参考的那些。至于您提到的是否需要学习一下以往版本进行对比,这个取决您学习的目的,如果只是简单的想部署集群,并且跑一些程序,或者仅仅使用hdfs进行存储,那么我觉得就不是很有必要了。如果您要学习mapreduce编程,或者想研究2.0以后hadoop的各种改进,那么有必要了解一下以往版本。
Re: 外星茹敬雨拦不住 2013-11-04 09:51发表 [回复]
回复licongcong_0224:非常感谢您的回复,我决定还是先学习下hadoop1.2,作为新手,直接看英文有些困难。以后还望多多赐教,再次感谢~
Re: 我是菜鸟要早起 2013-11-04 12:41发表 [回复]
回复rjy1989:赐教不敢当,欢迎互相学习交流
8楼 jackhes02 2013-11-03 17:50发表 [回复]
--启动yarn始终无法启动,请帮忙看看。我QQ:17032053;希望能向你请教,谢谢。
[zzhadoop@vm2 hadoop]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/zzhadoop/hadoop-2.2.0/logs/yarn-zzhadoop-resourcemanager-vm2.out
sst-db: starting nodemanager, logging to /home/zzhadoop/hadoop-2.2.0/logs/yarn-zzhadoop-nodemanager-sst-db.out
vm1: starting nodemanager, logging to /home/zzhadoop/hadoop-2.2.0/logs/yarn-zzhadoop-nodemanager-vm1.out
[zzhadoop@vm2 hadoop]$ 
[zzhadoop@vm2 hadoop]$ jps
2352 NameNode
2699 SecondaryNameNode
3111 Jps
[zzhadoop@vm2 hadoop]$ cat /home/zzhadoop/hadoop-2.2.0/logs/yarn-zzhadoop-resourcemanager-vm2.out
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1031728
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
Re: 我是菜鸟要早起 2013-11-03 21:07发表 [回复]
回复jackhes02:你查看一下yarn-zzhadoop-resourcemanager-vm2.log这个里面的信息吧,看看RM没有启动的原因在哪里?
Re: jackhes02 2013-11-04 09:57发表 [回复]
回复licongcong_0224:问题已解决,报错如下:
2013-11-04 09:42:43,405 INFO org.apache.hadoop.service.AbstractService: Service org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService failed in state INITED; cause: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: vm2:8031 (configuration property 'yarn.resourcemanager.resource-tracker.address')
java.lang.IllegalArgumentException: Does not contain a valid host:port authority: vm2:8031 (configuration property 'yarn.resourcemanager.resource-tracker.address')
---原因是在填写配置文件yarn-site.xml 时主机名前多了一个空格。
Re: 我是菜鸟要早起 2013-11-04 12:41发表 [回复]
回复jackhes02:哈哈,,有有时候手误还真的会带来一些很纠结的问题。恭喜!!谢谢问题反馈!
7楼 蜗蜗牛快跑 2013-11-03 11:33发表 [回复]
您好,今天照您的教程做了一遍,我用的两台Ubuntu。001按照配置启动hdfs后,有这几个进程:
10029 DataNode
10491 Jps
9696 NameNode
10361 SecondaryNameNode
但是002的datanode没启动。。。那边完全没反应,您看问题可能出在哪?
hadoop是如何让002的datanode启动的?这个原理我就没想明白。难道是通过slaves文件里面的配置么?
Re: 我是菜鸟要早起 2013-11-03 14:45发表 [回复]
引用“superbinbin1”的评论:您好,今天照您的教程做了一遍,我用的两台ubuntu。001按照配置启动hdfs后,有这几个进程:
...

1)001上面有datanode进程?你是不是把001也写进到slaves中了
2)002中的datanode进程是通过slaves中的配置检查到,从而启动的。
3)你检查一下你的/etc/hosts中配置是否正确
Re: 蜗蜗牛快跑 2013-11-03 19:31发表 [回复]
回复licongcong_0224:您好,我是slaves添加了namenode的主机名才导致错误的。后面改了下,start-dfs.sh可以成功运行,但是start-yarn.sh 命令却无法启动相关进程,log报错: Error starting ResourceManager
java.lang.IllegalArgumentException: Does not contain a valid host:port authority: 。。。。。。
网上查倒是有相关先例,有说主机名不能包含大写字母(我的有包含)或者下划线,也有说配置文件路径不对。您有空帮我分析分析,感激不尽
Re: 我是菜鸟要早起 2013-11-03 21:01发表 [回复]
回复superbinbin1:你查一下位于namenode这台机器上面的log,关于RM无法启动的原因是什么?既然namenode进程都启动了,个人觉得应该不是hostname命名方式的问题了吧?
6楼 buptwuguohua 2013-11-01 16:44发表 [回复]
你好,我按照你的配置,最后发现datanode无法启动,找了很久没找到原因,我的qq是331836971,希望能帮忙解决一下。
Re: 我是菜鸟要早起 2013-11-01 20:05发表 [回复]
回复buptwuguohua:你可以查看一下datanode上面的log信息,datanode无法启动的原因八成是你多次format namenode造成的。log中有详细原因,解放方法也很简单
Re: buptwuguohua 2013-11-01 23:42发表 [回复]
回复licongcong_0224:问题已经解决,主要是两个问题:
1. clusterID不一致,namenode的cid和datanode的cid不一致,导致的原因是对namenode进行format的之后,datanode不会进行format,所以datanode里面的cid还是和format之前namenode的cid一样,解决办法是删除datanode里面的dfs.datanode.data.dir目录和tmp目录,然后再启动start-dfs.sh
2.即使删除iptables之后,仍然报Datanode denied communication with namenode: DatanodeRegistration错误,参考文章http://stackoverflow.com/questions/17082789/cdh4-3exception-from-the-logs-after-start-dfs-sh-datanode-and-namenode-star,可以知道需要把集群里面每个houst对应的ip写入/etc/hosts文件就能解决问题。
Re: 我是菜鸟要早起 2013-11-02 14:15发表 [回复]
回复buptwuguohua:昨晚在问题二上面纠结了那么久,呵呵~~另外,提醒大家,关闭所有机器上面的防火墙!!
5楼 dallar 2013-11-01 16:00发表 [回复]
您好,我也是hadoop新手,测试过程中发现问题,希望能交流一下。QQ:332890886
Re: 我是菜鸟要早起 2013-11-01 20:06发表 [回复]
回复dallar:请问是什么问题呢?
4楼 唉唉唉 2013-10-31 11:32发表 [回复]
master和所有的slaves的hadoop安装路径要一致,而且所有的配置文件<name>和<value>节点处不要有空格,否则会报错!
Re: 我是菜鸟要早起 2013-10-31 12:35发表 [回复]
回复yangzhp1_1:谢谢反馈!
3楼 水往低处流 2013-10-30 14:46发表 [回复]
我的qq:605425512,方便加一下吗?有点问题请教一下
Re: 我是菜鸟要早起 2013-10-30 15:50发表 [回复]
回复worklxh:已加
2楼 唉唉唉 2013-10-30 14:34发表 [回复]
你好,我有些问题想请教你!
Re: 我是菜鸟要早起 2013-10-30 15:50发表 [回复]
回复yangzhp1_1:已加
1楼 唉唉唉 2013-10-30 11:16发表 [回复]
问一下后续问题 你是怎么在eclipse中开发的??
Re: 我是菜鸟要早起 2013-10-30 14:14发表 [回复]
回复yangzhp1_1:目前我个人还没有涉及到并行程序的具体开发工作,只是在hive下通过编写脚本对hdfs上面的数据进行简单处理。

0 0