Hadoop伪分布式运行

Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。本文通过自动化脚本配置Hadoop伪分布式模式。测试环境为VMware中的Centos 6.3, Hadoop 1.2.1.其他版本未测试。

伪分布式配置脚本

包括配置core-site.xml,hdfs-site.xml及mapred-site.xml,配置ssh免密码登陆。[1]

脚本测试结果

通过宿主机上的浏览器访问NameNode和JobTracker的网络接口

namenode

浏览器访问namenode的网络接口

jobtracker

浏览器访问jobtracker网络接口

运行测试程序

将输入文件拷贝到分布式文件系统:

通过网络接口查看hdfs

browserdirectory

通过NameNode网络接口查看hdfs文件系统

运行示例程序

通过JobTracker网络接口查看执行状态

runwordcount

Wordcount执行状态

执行结果

查看结果

也可以将分布式文件系统上的文件拷贝到本地查看

完成全部操作后,停止守护进程:

 

遇到的问题

宿主机不能访问网络接口

因为开启了iptables,所以需要添加相应端口,当然测试环境也可以直接将iptables关闭。

Browse the filesystem跳转地址不对

NameNode网络接口点击Browse the filesystem,跳转到localhost:50075。[2][3]

修改core-site.xml,将hdfs://localhost:9000改成虚拟机ip地址。(上面的脚本已经改写为自动配置为IP)。

根据几次改动的情况,这里也是可以填写域名的,只是要在访问的机器上能解析这个域名。因此公网环境中有DNS服务器的应该是可以设置域名的。

执行reduce的时候卡死

在/etc/hosts中添加主机名对应的ip地址 [4][5]。(已更新Hadoop安装脚本,会自动配置此项)

 

参考文献

[1]. Hadoop官方文档. http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html

[2]. Stackoverflow. http://stackoverflow.com/questions/15254492/wrong-redirect-from-hadoop-hdfs-namenode-to-localhost50075

[3]. Iteye. http://yymmiinngg.iteye.com/blog/706909

[4].Stackoverflow. http://stackoverflow.com/questions/10165549/hadoop-wordcount-example-stuck-at-map-100-reduce-0

[5]. 李俊的博客. http://www.colorlight.cn/archives/32

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注