系统:ubantu64位
hadoop: 2.5.1
hadoop从大概2.5版本后,为了迎合如今64位系统,官网
下载的都是64位的。在/hadoop-2.5.1/lib/native/中libhadoop.so.1.0.0文件可以分辨的32位还是64位。方法:File libhadoop.so.1.0.0
如果你用的是hadoop2.4及以下,而你的linux系统是64位的,那我建议你从网上下载别人编译好的64位版本。
简单的配置参考这篇文章:http://blog.csdn.net/idber/article/details/40378231
注意的是:在配置jdk环境时,在hadoop-env.sh中有处不要写JAVA_HOME,而要写具体路径,否则可能出现启动hadoop时提示“JAVA_HOME is not set and could not be found”错误。
当然,他也有明显的错误,下面会提到,这里附上我的配置内容(我事先改了主机名为:mylinux)
/---------------core-site.xml---------------/
<property>
<name>fs.defaultFS</name>
<value>hdfs://mylinux:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/cc/software/hadoop-2.5.1/tmp</value>
</property>
/----------------hdfs.site.xml---------------/
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/cc/software/hadoop-2.5.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/cc/software/hadoop-2.5.1/tmp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
/-----------------mapred-site.xml---------------/
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>mylinux:10020</value>
</property>
/------------------yarn-site.xml---------------/
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mylinux</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>Yarn.resourcemanager.address</name>
<value>localhost:18040</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>Yarn.resourcemanager.scheduler.address</name>
<value>localhost:18030</value>
</property>
<property>
<description>The address of the RM web application.</description>
<name>Yarn.resourcemanager.webapp.address</name>
<value>localhost:18088</value>
</property>
<property>
<description>The address of the resource tracker interface.</description>
<name>Yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8025</value>
</property>
/-----------------------slaves---------------/
mylinux
1) mapred-site.xml本是不存在的,先把mapred-site.template.xml改名为它。
2) 很多文章写mapreduce.shuffle,这是不对是,我看到过log里出错,应该写为mapreduce_shuffle。
3)配置中出现的tmp及其子目录不用创建,当format时会自动生成,注意的是,每次format前最好删除tmp目录,否则接下来启动会出错,暂时没找到解决方法。
4) mapreduce.jobhistory.address要配置,如果不配,在进行例程运算时会默认使用 0.0.0.0:10020 ,会显示拒绝连接错误。
接下来格式化hdfs,hadoop-2.5.1/sbin/hadoop namenode -format
接下来启动:
start-dfs.sh
start-yarn.sh
注意:官方不建议使用start-all.sh
这里还要启动历史服务器,这是在很多文章都没有提到的,而将导致在测试例程时提示无法连接错误。
sbin/mr-jobhistory-daemon.sh start historyserver
接下来测试是否成功:
1)使用命令jps ,应该出现:
ResourceManager
JobHistoryServer
DataNode
NameNode
Jps
NodeManager
SecondaryNameNode
注意:一个都不能少,如果全有,也不能说明搭建环境成功。
另外,JobTracker这些早已被淘汰。
2)打开网址:htp://mylinux:50070
http://mylinux:8088
注意:打开8088这个不要用localhost而要用自己配置的主机名。
另外,很多文章中出现的网址,如50030,50060早已被淘汰了,当然打不开。
3)打开了网址还不能算搭建成功,下面测试个例程。
打开hadoop-2.5.1/share/hadoop/mapreduces文件夹下运行命令:
hadoop jar hadoop-mapreduce-example-2.5.1.jar pi 5 5
如果能出现job运行耗时以及计算出的pi的值,那么hadoop环境搭建算成功了。