Hadoop0.20.1分布式文件系统配置
的搭建Hadoop 的下载地址:
http://www.apache.org/dyn/closer.cgi/hadoop/core/
版本:hadoop0.20.1
JDK 的安装:
要求必须安装 jdk1.5.07 以上的版本。
分步式环境的搭建:
<a name="_Toc276222401">、 硬件环境
我们采用了 3 台机器来构建,都安装的是 ubuntu10系统,并且都有一个名为 “sam“的帐号,如下
主机名称:hdfs1 ip:192.168.2.227
主机名称:hdfs2 ip:192.168.1.247
主机名称:hdfs3 ip:192.168.1.249
功能:NameNode,JobTracker
功能:DataNode,TaskTracker
功能:DataNode,TaskTracker
重点:修改 3 台机器的/etc/hosts,让彼此的主机名称和 ip 都能顺利解析,且机器名不一样。
127.0.0.1 localhost
127.0.1.1 sam-desktop
192.168.2.227 hdfs1
192.168.1.247 hdfs3
192.168.1.249 hdfs2
<a name="_Toc276222402">2、 每台机器都要安装 java 环境,
我们的路径统一为 “ /usr/java/jdk1.6.0_21“, 并添加到系统环境变量 sudo gedit /etc/profile
JAVA_HOME=/usr/java/jdk1.6.0_21
export JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib.dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
、启动 Hadoop
到此大致上就完成了 hadoop 环境布署
启动 hadoop:<HADOOP_HOME>/bin/start-all.sh
停止 hadoop:<HADOOP_HOME>/bin/stop-all.sh
说明:
<a name="_Toc276220052">
<a name="_Toc276222412">修改 Linux</strong>主机名
第一步:
免輸入密碼
<a name="_Toc276220056">
<a name="_Toc276222414">基于Eclipse</strong>的Hadoop应用开发环境的配置
配置完成以后,显示如图1左边的树形结构一样,这很像在Eclipse配置了,Tomcat的Server项目一样
<a name="_Toc276222416">你点击view中的小象图标,很可能会报一个错误:
Cannot connect to the Map/Reduce location: sam@sam-desktop
java.io.IOException: Unknown protocol to name node: org.apache.hadoop.mapred.JobSubmissionProtocol
at org.apache.hadoop.dfs.NameNode.getProtocolVersion(NameNode.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:452)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
我也遇到这个问题,很让我郁闷,我愿想是不是我的服务器哪里出了问题?后来才知道,是我的端口配置错误了,我在hdfs-site.xml中不是配置了:
<property>
<name>fs.default.name</name>
<value>hdfs://hdfs1:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://hdfs1:9001</value>
</property>
这两个端口很重要,9000是namenode的监听端口,而9001是jobtracker的监听端口,在图3的界面上新建DFS location时候,可以看到Map/Reduce Master,当时我还没弄明白,这是什么意思,现在才知道,这是jobtracker所在机器及监听端口,于是我设置成:host=sam-desktop,port=9001,而DFS Master中勾选Use M/R Master Host(意思是:是否使用与JobTracker相同的主机?)我的当然是勾上。端口当然也就是9000了,即host= sam-desktop,port=9000。
于是,连接the Map/Reduce location就不会再出现错误了。下面的用户是sam,因为我的所有的ubuntu都是sam的用户的。
看这个两个端口是否工作正常
我们可以用Web的方式来查看这个两个端口是否工作正常,namenode的Web访问端口是50070,由于我的namenode是建立在hdfs1上的,因此,我要用Web方式访问namenode,那么在浏览器中敲入地址:<a href="http://ubuntu1:50070/">http://hdfs1:50070,你就会看到一个页面,如下图4:
而9001是也是可以用Web方式来访问的,我的namenode和jobtracker是在一台机器上的,网址是http://hdfs1:50030,如果你配置成功,可以打开如下图5的页面:
tasktracker可以Web方式访问,由于我的tasktracker是建立在hdfs2上的,因此网址是:http://hdfs2:50060,如果你配置成功,可以打开如下图6的页面:
<p
页:
[1]