经过两个晚上的努力,完成了一个三台机器的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行的一下的内容
JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
为
JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
参见http://www.blogjava.net/snoics/archive/2011/03/10/333408.html
其它一些注意事项:
在0.21版本中,${HADOOP_HOME}/conf/下的配置文件中,不再有hadoop-site.xml,由core-site.xml,hdfs-site.xml,mapred-site.xml取而代之,
- 在core-site中,配置fs.default.name属性,即NameNode的URI,值为 hdfs://主机名:商品/
- 在hdfs-site.xml中,
-
- 配置dfs.data.dir,即DataNode存放块数据的本地文件系统路径,值可以是以逗号分割的路径列表
- 配置dfs.name.dir,即NameNode持久存储名字空间及事务日志的本地文件系统路径。
例如
<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]
分享到:
相关推荐
Hadoop-0.21.0分布式集群配置.doc
2. **配置Hadoop连接**:在Eclipse中设置Hadoop集群的相关信息,如HDFS地址和MapReduce JobTracker地址。 3. **创建项目**:创建新的Hadoop MapReduce项目,选择适当的模板。 4. **编写代码**:使用Eclipse的代码...
Hadoop 0.21.0 API CHM 文件是一份非常实用的参考资料,它将Hadoop 0.21.0版本的API以CHM(Windows帮助文档)格式呈现,便于开发者快速查找和理解相关接口及功能。CHM格式的优势在于提供了一种离线浏览、搜索和全文...
### Hadoop 2.6 集群配置详解 #### 一、环境配置 ##### 1.1 服务器环境 1. **IP地址配置**:根据实际情况为每台服务器分配唯一的IP地址,例如: - hadoop140 的 IP 地址为 192.168.50.140 - hadoop141 的 IP ...
hadoop 0.21.0 linux下的安装包
资源名称:CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南内容简介: CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南主要讲述的是CentOS 6.5 x64下安装19实体节点Hadoop 2.2.0集群配置指南;...
Hadoop HA 集群配置 本章节将详细介绍 Hadoop HA 集群配置的实验步骤,包括高可用 ZooKeeper 集群的部署、配置和启动。整个实验过程共分为三个部分:实验一:高可用 ZooKeeper 集群部署、实验二:Hadoop HA 集群...
Hadoop分布式集群配置指南 Hadoop分布式集群配置是大数据处理的关键步骤之一,本指南将指导读者成功配置一个由5台计算机构成的Hadoop集群,并成功运行wordcount处理大型数据(大于50G)。 一、Hadoop集群架构简介 ...
- 输入集群的名称,如“Hadoop 0.21.0 Cluster”,接着配置Hadoop的相关路径。这包括Hadoop的安装目录、`hdfs`的URL以及`mapred`的jobTracker地址。 3. **创建Hadoop项目**: - 使用Eclipse的`File` -> `New` -> ...
本文将深入探讨Hadoop HA(高可用性)集群的配置文件,包括`core-site.xml`、`hdfs-site.xml`、`mapred-site.xml`、`yarn-site.xml`以及`slaves`文件,这些都是确保Hadoop集群稳定运行的基础。 1. `core-site.xml`:...
本文将详细解析提供的几个关键配置文件,这些配置文件对于理解和优化Hadoop大数据集群的性能至关重要。 首先,`profile`文件通常包含了用户的环境变量设置,这对于Hadoop的安装和运行是必要的。用户可能会在这里...
Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程 按照文档中的操作步骤,一步步操作就可以完全实现hadoop2.2.0版本的完全分布式集群搭建过程
Hadoop 集群配置详解 Hadoop_Hadoop集群(第1期)_CentOS安装配置 Hadoop_Hadoop集群(第2期)_机器信息分布表 Hadoop_Hadoop集群(第4期)_SecureCRT使用 Hadoop_Hadoop集群(第5期)_Hadoop安装配置 Hadoop_Hadoop...
在Eclipse中,开发者可以直接运行MapReduce任务,插件会将代码编译成JAR包,并提交到Hadoop集群上执行。同时,运行日志会在Eclipse的控制台视图中显示,便于问题定位。 6. **教程资源** 配合提供的"教程说明见这里...
hadoop-0.21.0-raid.jar
hadoop集群配置文档
在Hadoop集群中,配置文件扮演着至关重要的角色,它们定义了集群的行为、性能优化参数以及故障转移策略等。本文将深入探讨“Hadoop集群配置文件备份”的重要性、步骤和最佳实践。 **1. Hadoop配置文件概述** Hadoop...