hadoop単機のインストール、白い手の最も詳しい教程-ali 0 th

14469 ワード

Author : Ali0th
Date : 2019-4-6
前言
最近ビッグデータを手に入れて、hadoopに入って、単機の配置は数日、やっと配置して、多くの穴に出会った.この文章は私のプロセス全体をコードして、各ステップとエラー処理を含む.
環境
CentOS release 6.4
openjdk version "1.8.0_201"

システムサービス
iptablesを閉じる
#      :
service iptables stop
#             
chkconfig iptables off

selinuxサービスを閉じる(再起動が有効)
vim /etc/selinux/config
SELINUX=disabled

hostname構成
vim /etc/sysconfig/network

ここでデフォルトはlocalhostです.localdomain
ssh非密ログイン
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

成功したかどうかをテストし、次のコマンドを実行します.パスワードを入力しないと成功します.
ssh localhost

JAvaインストール
yumでのインストール
#   yum   jdk  
yum search java
#   jdk
yum install java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment

環境変数の表示
export
vi /etc/profile

jvmディレクトリの表示
ll /usr/lib/jvm/

出力は、java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64JAVA_HOMEディレクトリである.
[root@localhost java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64]# ll /usr/lib/jvm/
total 4
lrwxrwxrwx. 1 root root   26 Apr  3 15:47 java -> /etc/alternatives/java_sdk
lrwxrwxrwx. 1 root root   32 Apr  3 15:47 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
drwxr-xr-x. 7 root root 4096 Apr  3 15:47 java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root   48 Apr  3 15:47 java-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root   34 Apr  3 15:47 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root   21 Apr  3 15:47 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root   27 Apr  3 15:47 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root   52 Apr  3 15:47 jre-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root   52 Apr  3 15:47 jre-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root   29 Apr  3 15:47 jre-openjdk -> /etc/alternatives/jre_openjdk

グローバル変数の設定:
vim /etc/profile

環境設定を追加するには、次のようにします.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

グローバル変数がすぐに有効になります
source /etc/profile

hadoopダウンロードと関連環境構成
アカウントの作成
groupadd hadoop
useradd hadoop -g hadoop 
ll -d /home/hadoop
grep hadoop /etc/passwd /etc/shadow /etc/group
passwd hadoop # hadoop123

rootでvisudoを実行し、hadoopをsudoersに加入し、root ALL=(ALL) ALLで加入する.
hadoop  ALL=(ALL)       ALL
hadoopをダウンロードして解凍します.
wget http://apache.claz.org/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
tar -xzf hadoop-3.1.2.tar.gz
sudo mv hadoop-3.1.2 /usr/local/hadoop

開始アイテムを追加します.
vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

データストアディレクトリを作成するには、次の手順に従います.
  • NameNodeデータ格納ディレクトリ:/usr/local/data/hadoop/name
  • SecondaryNameNodeデータ格納ディレクトリ:/usr/local/data/hadoop/secondary
  • DataNodeデータ格納ディレクトリ:/usr/local/data/hadoop/data
  • 一時データ格納ディレクトリ:/usr/local/data/hadoop/tmp
  • mkdir -p /usr/local/data/hadoop/name
    mkdir -p /usr/local/data/hadoop/secondary
    mkdir -p /usr/local/data/hadoop/data
    mkdir -p /usr/local/data/hadoop/tmp
    

    hadoop構成と起動
    hadoop-envを設定します.sh、hdfs-site.xml、core-site.xml、mappred-site.xml、yarn-site.xml
    構成ディレクトリへ:
    cd /usr/local/hadoop/etc/hadoop/
    

    hadoop-env.sh
    追加JAVA_HOME
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
    

    core-site.xml
    <configuration>
        <property>
            <name>fs.defaultFSname>
            <value>hdfs://localhost.localdomain:9000value>
            <description>hdfs        description>
        property>
        <property>
            <name>hadoop.tmp.dirname>
            <value>/usr/local/hadoop/data/value>
            <description>hadoop    description>
        property>
    configuration>
    

    hdfs-site.xml
    
    
    <configuration>
    
    <property>
        <name>dfs.replicationname>
        <value>1value>
    property>
    
    configuration>
    

    mapred-site.xml
    # yran   
    mv mapred-site.xml.template mapred-site.xml
    
    <configuration>
    
    <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
    property>
    
    configuration>
    

    yarn-site.xml
    arn.resourcemanager.hostname yarnクラスタのボス
    <configuration>
    
    <property>
    
        <name>yarn.resourcemanager.hostnamename>
        <value>localhost.localdomainvalue>
    property>
    
    <property> 
        <name>yarn.nodemanager.aux-servicesname> 
        <value>mapreduce_shufflevalue> 
    property> 
    
    configuration>
    

    dfs起動
    hadoopファイルシステムのフォーマット
    cd /usr/local/hadoop
    ./bin/hdfs namenode -format
    

    dfsの起動
    ./sbin/start-dfs.sh
    

    jpsを使用して、サービスが開始されたかどうかを確認します.
    [hadoop@localhost hadoop]$ jps
    6466 NameNode
    6932 Jps
    6790 SecondaryNameNode
    6584 DataNode
    

    すべて開始
    ./sbin/start-all.sh
    

    結果のスクリーンショットは次のとおりです.
    誤報
    質問:
    localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
    解決:
    sshパスワードなしで他のノードのホストに接続できない場合、hadoopを起動すると他のホストのパスワードが入力され、正しく入力しても認証できません
    質問:
    localhost: ERROR: Unable to write in/usr/local/hadoop/logs. Aborting.
    解決:
    sudo chmod 777 -R /usr/local/hadoop/
    

    質問:
    localhost:/usr/local/hadoop/bin/../libexec/hadoop-functions.sh: line 1842:/tmp/hadoop-hadoop-namenode.pid: Permission denied localhost: ERROR: Cannot write namenode pid/tmp/hadoop-hadoop-namenode.pid.
    解決:
    修正hadoop-env.sh
    export HADOOP_PID_DIR=/usr/local/hadoop/tmp/pid 
    

    質問:
    [hadoop@localhost hadoop]$ ./sbin/start-dfs.sh Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [localhost] 2019-04-06 07:26:22,110 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    解決:
    stackoverflow.com/questions/1…
    cd /usr/local/hadoop/lib
    ldd libhadoop.so.1.0.0
    
    ./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
    	linux-vdso.so.1 =>  (0x00007fff901ff000)
    	libdl.so.2 => /lib64/libdl.so.2 (0x00007f8ceda5d000)
    	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8ced83f000)
    	libc.so.6 => /lib64/libc.so.6 (0x00007f8ced4ac000)
    	/lib64/ld-linux-x86-64.so.2 (0x00000031c1e00000)
    
    # download
    wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2
    wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2
    
    #   
    tar -xjvf glibc-2.14.tar.bz2
    cd glibc-2.14
    tar -xjvf ../glibc-linuxthreads-2.5.tar.bz2
    #       ,       '#error "glibc cannot be compiled without optimization"'
    cd ../
    export CFLAGS="-g -O2"
    
    glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks
    
    make
    sudo make install
    

    質問:
    2019-04-06 13:08:58,376 INFO util.ExitUtil: Exiting with status 1: java.io.IOException: Cannot remove current directory:/usr/local/data/hadoop/tmp/dfs/name/current
    解決:
    権限の問題
    sudo chown -R hadoop:hadoop /usr/local/data/hadoop/tmp
    sudo chmod -R a+w /usr/local/data/hadoop/tmp
    

    資料
    juejin.im/entry/5a0a8…
    blog.51cto.com/xpleaf/2082…
    Ubuntuの下でhadoopを構築するとPermission denied(publickey,password)の問題が発生する