首页 > 大数据 > Hadoop > 搭建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),其他机器作为datanode。以下配置文件里就用该名称代替。
配置文件
tar包的部署方式只要具备CDH4的包就可以了,其余步骤不需联网,只要配置好几个配置文件即可。我提供一份自己的配置,可以完全拷贝下来使用。进入到目录hadoop-2.0.0-cdh4.2.0/etc/hadoop下面,修改这几个文件:
core-site.xml
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://namenode01value> property> <property> <name>fs.trash.intervalname> <value>10080value> property> <property> <name>fs.trash.checkpoint.intervalname> <value>10080value> property> configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>hadoop.tmp.dirname> <value>/home/mywork/work/data/hadoop-${user.name}value> property> <property> <name>dfs.namenode.http-addressname> <value>namenode01:50070value> property> <property> <name>dfs.namenode.secondary.http-addressname> <value>ssnamenode01:50090value> property> <property> <name>dfs.webhdfs.enabledname> <value>truevalue> property> configuration>yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.resource-tracker.addressname> <value>namenode01:8031value> property> <property> <name>yarn.resourcemanager.addressname> <value>namenode01:8032value> property> <property> <name>yarn.resourcemanager.scheduler.addressname> <value>namenode01:8030value> property> <property> <name>yarn.resourcemanager.admin.addressname> <value>namenode01:8033value> property> <property> <name>yarn.resourcemanager.webapp.addressname> <value>namenode01:8088value> property> <property> <description>Classpath for typical applications.description> <name>yarn.application.classpathname> <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*, $HADOOP_COMMON_HOME/share/hadoop/common/lib/*, $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*, $YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*, $YARN_HOME/share/hadoop/mapreduce/*,$YARN_HOME/share/hadoop/mapreduce/lib/*value> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce.shufflevalue> property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname> <value>org.apache.hadoop.mapred.ShuffleHandlervalue> property> <property> <name>yarn.nodemanager.local-dirsname> <value>/home/mywork/work/data/yarn/localvalue> property> <property> <name>yarn.nodemanager.log-dirsname> <value>/home/mywork/work/data/yarn/logsvalue> property> <property> <description>Where to aggregate logsdescription> <name>yarn.nodemanager.remote-app-log-dirname> <value>/home/mywork/work/data/yarn/logsvalue> property> <property> <name>yarn.app.mapreduce.am.staging-dirname> <value>/home/mywork/workvalue> property> configuration>mapred-site.xml
<configuration> <property> <name>mapreduce.framework.namename> <value>yarnvalue> property> <property> <name>mapreduce.jobhistory.addressname> <value>namenode01:10020value> property> <property> <name>mapreduce.jobhistory.webapp.addressname> <value>namenode01:19888value> property> configuration>masters
namenode01 ssnamenode01slaves
datanode01 datanode02 datanode03 datanode04最后修改.bashrc里的一些环境,添加如下配置
export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jar export HADOOP_HOME=/home/mywork/work/hadoop-2.0.0-cdh4.2.0 export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export YARN_HOME=${HADOOP_HOME} export HADOOP_YARN_HOME=${HADOOP_HOME} export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbinsource之使之生效。然后把这台机器上的hadoop scp到其他各台机器上
启动集群
HADOOP_HOME/bin下,第一次格式化namenode
hadoop namenode -format
然后在namenode机器上逐个启动
start-dfs.sh start-yarn.sh
可以使用jps命令在各台机器上查看已经起来的进程和端口,在 namenode01:8088/cluster 可以看集群情况。 datanode01:8042/node 可以看到节点情况。 问题排查
如果某几个节点没有起来,很可能是因为端口占用的问题,比如yarn启动的时候会使用8080端口,如果被占用,该datanode就起不了了,可以使用
netstat -anp | grep 8080找到id,然后kill -9 xxx 掉。
一般可以在指定的HADOOP_HOME/logs下查看各个机器的日志情况,找到问题原因。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28929558/viewspace-1352487/ ,如需转载,请注明出处,否则将追究法律责任。