六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1066|回复: 0

十分钟搭建自己的hadoop2/CDH4集群

[复制链接]
 楼主| 发表于 2015-4-27 17:24:54 | 显示全部楼层 |阅读模式
十分钟搭建自己的hadoop2/CDH4集群
版本及准备
我部署的是hadoop-2.0.0-cdh4.2.0.tar.gz,下载地址为http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.2.0.tar.gz。在http://archive.cloudera.com/cdh4/cdh/4/下还可以下载到CDH hadoop生态圈内相关的包。再准备一个jdk1.6+的java环境,设置好JAVA_HOME。
需要注意的是,window下直接点击链接下载到的包可能无法解压成功,原因是包是放在linux ftp上的,直接下载会有问题。建议在linux机器上用wget命令下载就可以了,如果你的机器不能联网的话,也可以联系我把包发给你。
基础配置
给集群配好 SSH;在hosts里可以准备好自己机器的名字。比如我的机器1作为namenode(namenode01),机器2作为secondary namenode(snamenode01),IT论坛机器作为datanode。以下配置文件里就用该名称代替。
配置文件
tar包的部署方式只要具备CDH4的包就可以了,其余步骤不需联网,只要配置好几个配置文件即可。我提供一份自己的配置,可以完全拷贝下来使用。进入到目录hadoop-2.0.0-cdh4.2.0/etc/hadoop下面,修改这几个文件:
core-site.xml
  1. 版本及准备

  2. 我部署的是hadoop-2.0.0-cdh4.2.0.tar.gz,下载地址为http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.2.0.tar.gz。在http://archive.cloudera.com/cdh4/cdh/4/下还可以下载到CDH hadoop生态圈内相关的包。再准备一个jdk1.6+的java环境,设置好JAVA_HOME。

  3. 需要注意的是,window下直接点击链接下载到的包可能无法解压成功,原因是包是放在linux ftp上的,直接下载会有问题。建议在linux机器上用wget命令下载就可以了,如果你的机器不能联网的话,也可以联系我把包发给你。

  4. 基础配置

  5. 给集群配好 SSH;在hosts里可以准备好自己机器的名字。比如我的机器1作为namenode(namenode01),机器2作为secondary namenode(snamenode01),IT论坛机器作为datanode。以下配置文件里就用该名称代替。

  6. 配置文件

  7. tar包的部署方式只要具备CDH4的包就可以了,其余步骤不需联网,只要配置好几个配置文件即可。我提供一份自己的配置,可以完全拷贝下来使用。进入到目录hadoop-2.0.0-cdh4.2.0/etc/hadoop下面,修改这几个文件:

  8. core-site.xml
复制代码
hdfs-site.xml
  1.     <configuration>  
  2.       <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>3</value>  
  5.       </property>  
  6.       <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/home/mywork/work/data/hadoop-${user.name}</value>  
  9.       </property>  
  10.       <property>  
  11.         <name>dfs.namenode.http-address</name>  
  12.         <value>namenode01:50070</value>  
  13.       </property>  
  14.       <property>  
  15.         <name>dfs.namenode.secondary.http-address</name>  
  16.         <value>ssnamenode01:50090</value>  
  17.       </property>  
  18.       <property>  
  19.         <name>dfs.webhdfs.enabled</name>  
  20.         <value>true</value>  
  21.       </property>  
  22.     </configuration>  
复制代码
yarn-site.xml
  1. <configuration>

  2. <!-- Site specific YARN configuration properties -->
  3.   <property>
  4.     <name>yarn.resourcemanager.resource-tracker.address</name>
  5.     <value>namenode01:8031</value>
  6.   </property>
  7.   <property>
  8.     <name>yarn.resourcemanager.address</name>
  9.     <value>namenode01:8032</value>
  10.   </property>
  11.   <property>
  12.     <name>yarn.resourcemanager.scheduler.address</name>
  13.     <value>namenode01:8030</value>
  14.   </property>
  15.   <property>
  16.     <name>yarn.resourcemanager.admin.address</name>
  17.     <value>namenode01:8033</value>
  18.   </property>
  19.   <property>
  20.     <name>yarn.resourcemanager.webapp.address</name>
  21.     <value>namenode01:8088</value>
  22.   </property>
  23.   <property>
  24.     <description>Classpath for typical applications.</description>
  25.     <name>yarn.application.classpath</name>
  26.     <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,
  27.     $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
  28.     $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
  29.     $YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*,
  30.     $YARN_HOME/share/hadoop/mapreduce/*,$YARN_HOME/share/hadoop/mapreduce/lib/*</value>
  31.   </property>
  32.   <property>
  33.     <name>yarn.nodemanager.aux-services</name>
  34.     <value>mapreduce.shuffle</value>
  35.   </property>
  36.   <property>
  37.     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  38.     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  39.   </property>
  40.   <property>
  41.     <name>yarn.nodemanager.local-dirs</name>
  42.     <value>/home/mywork/work/data/yarn/local</value>
  43.   </property>
  44.   <property>
  45.     <name>yarn.nodemanager.log-dirs</name>
  46.     <value>/home/mywork/work/data/yarn/logs</value>
  47.   </property>
  48.   <property>
  49.     <description>Where to aggregate logs</description>
  50.     <name>yarn.nodemanager.remote-app-log-dir</name>
  51.     <value>/home/mywork/work/data/yarn/logs</value>
  52.   </property>
  53.   <property>
  54.     <name>yarn.app.mapreduce.am.staging-dir</name>
  55.     <value>/home/mywork/work</value>
  56. </property>


  57. </configuration>
复制代码
mapred-site.xml
  1. <configuration>
  2.   <property>
  3.    <name>mapreduce.framework.name</name>
  4.    <value>yarn</value>
  5.   </property>
  6.   <property>
  7.     <name>mapreduce.jobhistory.address</name>
  8.     <value>namenode01:10020</value>
  9.   </property>
  10.   <property>
  11.     <name>mapreduce.jobhistory.webapp.address</name>
  12.     <value>namenode01:19888</value>
  13.   </property>
  14. </configuration>
复制代码
masters
  1. namenode01
  2. ssnamenode01
复制代码
slaves
  1. datanode01
  2. datanode02
  3. datanode03
  4. datanode04
复制代码
最后修改.bashrc里的一些环境,添加如下配置
  1. export JRE_HOME=$JAVA_HOME/jre
  2. export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jar
  3. export HADOOP_HOME=/home/mywork/work/hadoop-2.0.0-cdh4.2.0
  4. export HADOOP_MAPRED_HOME=${HADOOP_HOME}
  5. export HADOOP_COMMON_HOME=${HADOOP_HOME}
  6. export HADOOP_HDFS_HOME=${HADOOP_HOME}
  7. export YARN_HOME=${HADOOP_HOME}
  8. export HADOOP_YARN_HOME=${HADOOP_HOME}
  9. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  10. export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  11. export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  12. export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin
复制代码
source之使之生效。然后把这台机器上的hadoop scp到IT论坛各台机器上

启动集群
HADOOP_HOME/bin下,第一次格式化namenode
  1. hadoop namenode -format
复制代码
然后在namenode机器上逐个启动
  1. start-dfs.sh
  2. start-yarn.sh
复制代码
可以使用jps命令在各台机器上查看已经起来的进程和端口,在 namenode01:8088/cluster 可以看集群情况。 datanode01:8042/node 可以看到节点情况。


问题排查
如果某几个节点没有起来,很可能是因为端口占用的问题,比如yarn启动的时候会使用8080端口,如果被占用,该datanode就起不了了,可以使用
  1. netstat -anp | grep 8080  
复制代码
找到id,然后kill -9 xxx 掉。
一般可以在指定的HADOOP_HOME/logs下查看各个机器的日志情况,找到问题原因。

(全文完)



十分钟搭建自己的hadoop2/CDH4集群
http://blog.csdn.net/pelick/article/details/12065147
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表