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 暫時沒裝.
相關文章
相關標籤/搜索