zoukankan      html  css  js  c++  java
  • cdh4

    libhadoop.so其实是后面安装impala时要用到

    此处配置环境变啦时注意 下

    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$HADOOP_LIB/native/libhadoop.so

    版本及准备

    我部署的是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/下还可以下载到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.defaultFS</name>
        <value>hdfs://namenode01</value>
      </property>
      <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
      </property>
      <property>
        <name>fs.trash.checkpoint.interval</name>
        <value>10080</value>
      </property>
    </configuration>

    hdfs-site.xml

    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/mywork/work/data/hadoop-${user.name}</value>
      </property>
      <property>
        <name>dfs.namenode.http-address</name>
        <value>namenode01:50070</value>
      </property>
      <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>ssnamenode01:50090</value>
      </property>
      <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
      </property>
    </configuration>

    yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>namenode01:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>namenode01:8032</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>namenode01:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>namenode01:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>namenode01:8088</value>
      </property>
      <property>
        <description>Classpath for typical applications.</description>
        <name>yarn.application.classpath</name>
        <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-services</name>
        <value>mapreduce.shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/home/mywork/work/data/yarn/local</value>
      </property>
      <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/home/mywork/work/data/yarn/logs</value>
      </property>
      <property>
        <description>Where to aggregate logs</description>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/home/mywork/work/data/yarn/logs</value>
      </property>
      <property>
        <name>yarn.app.mapreduce.am.staging-dir</name>
        <value>/home/mywork/work</value>
    </property>
    
    
    </configuration>

    mapred-site.xml

    <configuration>
      <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>namenode01:10020</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>namenode01:19888</value>
      </property>
    </configuration>

    masters

    namenode01
    ssnamenode01

    slaves

    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/sbin

    source之使之生效。然后把这台机器上的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下查看各个机器的日志情况,找到问题原因。

  • 相关阅读:
    第三次随笔作业
    第二次随笔作业
    第一次随笔
    第四次随笔作业
    第三次随笔作业
    第二次随笔作业
    第一次博客
    第四次作业
    第三次作业(2)
    第二次随笔(修改版3)
  • 原文地址:https://www.cnblogs.com/ruiy/p/cd.html
Copyright © 2011-2022 走看看