Hadoopクラスタ構成


自分でHadoopクラスタを作って、Hadoopの学習、理解に非常に役立ちます。Hadoopのよく使うポート、プロファイル、配置情報などの内容を学ぶことができます。
準備工作
  • 台のマシン:マスター、slaave 1、slaave 2、slaave 3
  • masterで外部ネットワークアクセス権限を開通しました。slaave 1\slaave 2\slaave 3は外部ネットワークアクセス権限を必要としません。
  • ダウンロードJDK 1.8.0_111;
  • masterにvim\wget\telnetなどのコンポーネントをインストールします。
  • MASTERとSLAVEの間のチャネル(Key/複製Keyを生成する)を打開する:ssh-keygen-t rsa;
  • は、マスターとSlaveのIPアドレスを/etc/hostsに追加します。
    172.198.0.12 MASTER
    172.198.0.13 SLAVE1
    172.198.0.14 SLAVE2
    172.198.0.15 SLAVE3 
    JDKの取り付け
  • 版主がダウンロードしたのはtarファイルですので、解凍だけでいいです。
  • 配置/etc/profileファイル:export JAVA_HOME=/home/aputser/jdk 1.8.0_111/export PATH=$PATH:$JAVA_HOME/bin;
  • ユーザーを配置します。profile:export JAVA_HOME=/home/aputser/jdk 1.8.0_111;
  • すぐに配置が有効になりたいなら、source/etc/profileコマンドを使用してもいいです。
    Hadoopの設定
    インストールのアイデア:まずMASTERノードで構成が完了し、その後SLAVEノードにコピーします。
    設定情報
    設定ファイル
    core-site.xml:
    <property>
            <name>hadoop.tmp.dirname>
            <value>/home/appuser/hadoop/tmpvalue>
    property>
    <property>
            <name>fs.default.namename>
            <value>hdfs://master:9000value>
    property>
    configuration>
    hdfs-site.xml:
    <configuration>
    <property>
            <name>dfs.name.dirname>
            <value>/home/appuser/hadoop/tmp/namedirvalue>
    property>
    <property>
            <name>dfs.data.dirname>
            <value>/home/appuser/hadoop/tmp/datadirvalue>
    property>
    <property>
            <name>dfs.replicationname>
            <value>2value>
    property>
    <property>
            <name>dfs.http.addressname>
            <value>master:50070value>
    property>
    <property>
            <name>dfs.namenode.seconday.http-addressname>
            <value>slave1:50070value>
    property>
    <property>
            <name>dfs.webhdfs.enabledname>
            <value>truevalue>
    property>
    configuration>
    mapred-site.xml:
    <configuration>
    <property>
            <name>mapred.job.trackername>
            <value>master:9001value>
    property>
    <property>
            <name>mapreduce.jobhistory.addressname>
            <value>master:10020value>
    property>
    <property>
            <name>mapreduce.framework.namename>
            <value>yarnvalue>
    property>
    <property>
            <name>mapreduce.map.tasksname>
            <value>20value>
    property>
    <property>
            <name>mapreduce.reduce.tasksname>
            <value>20value>
    property>
    <property>
            <name>mapreduce.jobhistory.webapp.addressname>
            <value>master:19888value>
    property>
    configuration>
    hadoop-env.sh:
    export JAVA_HOME=/home/appuser/jdk1.8.0_111
    SLAVEノードに配信
    # Copy Hadoop File
    scp -r ~/hadoop-2.6.0/ slave1:~/
    scp -r ~/hadoop-2.6.0/ slave2:~/
    scp -r ~/hadoop-2.6.0/ slave3:~/
    # Copy Jdk File
    scp -r ~/jdk1.8.0_111/ slave1:~/
    scp -r ~/jdk1.8.0_111/ slave2:~/
    scp -r ~/jdk1.8.0_111/ slave3:~/
    フォーマットNamdeNode
    bin/hadoop namenode -format
    Logに現れたら:success fully…、フォーマット成功を説明します。
    Hadoopクラスタを起動
    ~/hadoop-2.6.0/sbin/start-all.sh
  • 時にはDataNodeの起動が成功しない場合もありますが、対応するマシンのlogsを確認する必要があります。ほとんどの原因はマスターとSlaveの通信に問題があります。特にClonの仮想マシンです。
  • NameNodeは一般的に起動に成功します。もし起動できないなら、対応するlogsを確認したり、設定に問題があるかどうかを確認したりします。