首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Hadoop 0.21.0 集群配备小记

2012-12-20 
Hadoop 0.21.0 集群配置小记经过两个晚上的努力,完成了一个三台机器的hadoop集群的配置,两台linux+一台win

Hadoop 0.21.0 集群配置小记

经过两个晚上的努力,完成了一个三台机器的hadoop集群的配置,两台linux+一台windows7的组合,比较怪异,但毕竟是出于学习的目的,所以就尝试了不同的平台。何况hadoop本身就具有跨平台的特性。下面介绍一下整个配置的过程一些关键的地方和一些问题的解决:

使用版本:0.21.0


主要参考资料

[1]http://hadoop.apache.org/common/docs/r0.21.0/cn/cluster_setup.html这部分中文的内容有点旧,没有针对0.20+版本进行更新
[2]http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html
[3]http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop2/index.html
[4]http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/index.html

集群组成:

HDFS是Hadoop应用用到的一个最主要的分布式存储系统。一个HDFS集群主要由一个NameNode和很多个Datanode组成:Namenode管理文件系统的元数据,而Datanode存储了实际的数据。从任务角度,集群又由jobTracker和taskTracker组成,其中jobTracker负责调度,而taskTracker负责具体的任务的处理;jobTracker和namenode可以分别配置于不同的机器上,也可以位中同一台机器,而taskTracker和datanode最好在同一台机器上。在我这里,由于环境的限制,jobTracker和namenode一同配置在作为master的192.168.1.67上,而另外两台,66和55分为作为slave,配置datanode+tasknode。其中66为ubuntu10.10 server,而55为win7 旗舰版。

关于配置方面

先说明下关于windows下使用hadoop的配置,因为其相对比较特殊

    需要安装cygwin,具体安装方法请参考资料[2],在安装cygwin时,注意要添加openssh组件,为了方便起见,最好安装一些文本编辑器,如vim,或者nano。在安装完成cygwin之后,要配置好ssh server,参见http://www.360doc.com/content/11/0319/14/3804236_102576048.shtml.注意 ,如果是win7,那么由于权限问题,需要我们建立一个用户来运行sshd服务,在cygwin中的命令行里都会有相应提示,大家注意看,按着做就成。 在建立该用户的时候,要注意的是,用户名和密码要和另外两台服务器的用户名密码相同,这样才方便集群管理。如果启动hadoop出现java.lang.NoClassDefFoundError:org/apache/hadoop/util/PlatformName错误,则要修改${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容<configuration><property><name>dfs.data.dir</name><value>/data/hadoop-jobs/data</value></property><property><name>dfs.name.dir</name><value>/data/hadoop-jobs/name</value></property><property> <name>dfs.replication</name> <value>1</value> <!-- set to 1 to reduce warnings when running on a single node --> </property></configuration>


    在mapred-site.xml中,配置mapred.job.tracker即JobTracker的主机(或者IP)和端口。

    ?


    以上提到的JobTracker,NameNode的端口可以自行设定。


    另外在${HADOOP_HOME}/conf/slaves中,输入作为datanode的机器的IP及端口,一行一个;在同一文件夹下的masters中,输入namenode的ip及端口;

    完成这些配置以后,需要在每一台机器的hosts文件中,添加每台机器的主机名称和IP,保证相互之间可以成功访问。


    最后


    在分配的NameNode上,运行下面的命令启动HDFS:
    $ bin/start-dfs.sh

    bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。

    在分配的JobTracker上,运行下面的命令启动Map/Reduce:
    $ bin/start-mapred.sh

    bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。

    根据控制台的输出,可以判断系统启动是否成功。启动完成之后,访问http://{namenode-IP}:50070,可以进入集群的web控制台,查看系统情况。

    具体的任务运行,请参看参考资料[4]

    ?

热点排行