hadoop 2.7.0 伪分布式部署

  1. 下载
    http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.0/hadoop-2.7.0.tar.gz
  2. 解压,配置
    vi etc/hadoop/hadoop-env.xml

    修改 JAVA_HOME
  3. vi etc/hadoop/core-site.xml
     
    <configuration>
            <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/home/ha2/hadoop-2.7.0/tmp</value>
                 <description>Abase for other temporary directories.</description>
            </property>
            <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://localhost:9000</value>
            </property>
    </configuration>
     
    vi etc/hadoop/hdfs-site.xml
    <configuration>
            <property>
                 <name>dfs.replication</name>
                 <value>1</value>
            </property>
            <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/home/ha2/hadoop-2.7.0/tmp/dfs/name</value>
            </property>
            <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/home/ha2/hadoop-2.7.0/tmp/dfs/data</value>
            </property>
    </configuration>

     
  4. 配置ssh
    $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
      $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      $ chmod 0600 ~/.ssh/authorized_keys
     
  5. 执行命令测试
    bin/hdfs namenode -format
    sbin/start-dfs.sh
    访问测试: NameNode - http://localhost:50070/
    $ bin/hdfs dfs -mkdir /user
    $ bin/hdfs dfs -mkdir /user/<username>
    $ bin/hdfs dfs -put etc/hadoop input
    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
    ​$ bin/hdfs dfs -get output output
    $ cat output/*
  6. 配置yarn
    vi etc/hadoop/mapred-site.xml
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>

    vi etc/hadoop/yarn-site.xml
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>
    执行命令
    $ sbin/start-yarn.sh
    访问测试
    ResourceManager - http://localhost:8088/
  7. 出现的解决办法Unable to load native-hadoop library 
    修改hadoop-env.xml
    添加
    export  HADOOP_HOME=/home/ha2/hadoop-2.7.0
    export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    仍是会出现警告.
    添加一个环境变量
    HADOOP_ROOT_LOGGER=DEBUG,console
    从新启动测试,查看问题.显示,glibc的版本必须到2.14才行.
  8. 升级glibc
    1. 查看系统glibc库版本可以使用以下命令:java

      strings /lib64/libc.so.6 |grep GLIBC_

      centos6.8 最高支持glibc的2.12版本:node

    2. 下载glibcapache

      http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gzcentos

    3. 源码安装glibc,须要gcc.
      yum -y install gccbash

    4. 源码安装glibc
      mkdir build
      cd build
      ../configure --prefix=/opt/glibc-2.14
      make && make installapp

    5. 修改glibc软链
      安装完成后, 创建软链指向glibc-2.14, 执行以下命令:ssh

      $ rm -rf /lib64/libc.so.6             // 先删除先前的libc.so.6软链
      $ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6oop

      删除libc.so.6以后可能致使系统命令不可用的状况, 可以使用以下方法解决:
      $ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so  ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

      若是上述更新失败可以使用以下命令还原:测试

      $ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6    // libc-2.12.so 此项是系统升级前的版本
  9. 上述源码安装会影响系统的locale,具体解决方案也没找到.改用其余方式安装glibc
    下载地址
    http://ftp.redsleeve.org/pub/steam/glibc-devel-2.15-60.el6.x86_64.rpm
    http://ftp.redsleeve.org/pub/steam/glibc-common-2.15-60.el6.x86_64.rpm
    http://ftp.redsleeve.org/pub/steam/glibc-headers-2.15-60.el6.x86_64.rpm
    http://ftp.redsleeve.org/pub/steam/glibc-2.15-60.el6.x86_64.rpm
    安装命令:
    rpm -Uvh glibc-2.15-60.el6.x86_64.rpm   glibc-common-2.15-60.el6.x86_64.rpm   glibc-devel-2.15-60.el6.x86_64.rpm   glibc-headers-2.15-60.el6.x86_64.rpm   
  10. 安装snappy 暂时没装.