hadoopクラスタ構成レコード

10259 ワード

Hadoopクラスタインストールノート

  • Hadoopクラスタインストールノート
  • ハードウェア構成
  • ソフトウェア構成
  • 環境変数
  • を設定する.
  • 配置Hadoop
  • クラスタ運転
  • Hadoop
  • を起動
  • で発生した問題の概要
  • ssh接続の問題
  • hostname設定
  • Hadoop-eclipseプラグイン設定
  • 参考資料

  • 先月書いた記録は、今日思い出してブログに長い間いたずらをしていたので、クラスタを構築したということです.ここで小さな総括をして、結局多くの回り道をして、後で教訓を吸収することを望んでいます.

    ハードウェア構成


    3台のホストを使用し、以下のように構成されています.
    hostname
    OS
    IP
    node7
    Ubuntu16.04
    192.168.1.101
    node8
    Ubuntu16.04
    192.168.1.102
    node11
    Ubuntu16.04
    192.168.1.103
    ノード機能の構成:
    Namenode
    Datanode
    node8
    node7,node11

    ソフトウェア構成


    インストールするソフトウェアはjdk、hadoop、sshを含んで私の組み合わせは:jdk 1.8.0_121 + hadoop2.6.5+ssh
    権限の問題を回避するために、以下のすべての操作はrootユーザーで操作されます.
    インストールjdkはjdk-8u121-linux-64.tar.gzをダウンロードして、/usr/javaの下で最終的に/usr/java/jdk1.8.0_121に解凍します
    インストールhadoopはhadoop-2.6.5.tar.gzをダウンロードして、/usr/hadoopの下で最終的に/usr/hadoop/hadoop2.6.5に解凍します
    ssh-serverをインストールして次のコマンドを実行します.
    apt-get install openssh-server

    ssh-serverをインストールしたら、SSHのパスワードなしログインを設定する必要があります.【問題要約を参照】

    環境変数の設定


    jdkとHadoopを解凍した後、JAVA_HOMEHADOOP_HOMEの環境変数を設定します.ネット上ではUbuntu 16.04では、環境変数は~/.profileに置くべきであるが、テストは無効であり、最後の解決策は~/.bashrcに直接追加することである.この例では、具体的には、~/.bashrcに次の2行が追加されている.
    export JAVA_HOME=/usr/java/jdk1.8.0_121
    PATH=$PATH:$JAVA_HOME/bin
    
    HADOOP_HOME=/usr/hadoop/hadoop2.6.5
    PATH=$PATH:$HADOOP_HOME/bin

    保存し、source ~/.bashrcコマンドを実行して変更を有効にします.端末にjava -versionコマンドを入力し、Javaのバージョンが正しく表示されている場合はjava構成が成功したことを示します./usr/hadoop/でhdfs、tmpの2つのディレクトリを確立し、/usr/hadoop/hdfsでdata、nameの2つのディレクトリを新規作成します.

    Hadoopの設定


    現在、性能、負荷の均衡にはあまり要求されていないため、考慮すべきプロファイルは比較的少なく、主に以下のファイルに関連する以下のファイルパスはいずれもHADOOP_HOME/etc/hadoop/である.
  • hadoop-env.sh
  • mapred-env.sh
  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • slaves

  • 次に、いくつかの主要なプロファイルについて説明します.
    hadoop-env.sh mapred-env.shはhadoop-env.shとmapred-env.shでは環境変数が有効にならないなどの問題を回避するために,export JAVA_HOME=${JAVA_HOME}JAVA_HOMEパスの設定を手動で指定する文を注記する.追加export JAVA_HOME=/usr/java/jdk1.8.0_121core-site.xmlの主な構成は以下の通りです.
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://node8:9000value>
        <description> namenode description>
    property>
    
    <property>
        <name>hadoop.tmp.dirname>
        <value> file:/usr/hadoop/tmpvalue>
        <description> namenode ~description>
    property>
    

    hdfs-site.xml
    <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>node8:9001value>
    property>
    
    <property>
        <name>dfs.namenode.name.dirname>
        <value>file:/usr/hadoop/hdfs/namevalue>
        <description> description>
    property>
    
    <property>
        <name>dfs.datanode.data.dirname>
        <value>file:/usr/hadoop/hdfs/datavalue>
        <description> description>
    property>
    
    <property>
        <name>dfs.replicationname>
        <value>2value>
    property>
    

    mapred-site.xml
    <property>
        <name>mapreduce.framowork.namename>
        <value>yarnvalue>
        <description> description>
    property>
    

    slaves
    node7
    node11

    1つのノードを構成した後、これらのプロファイルをクラスタ内の他のノードに配布し、クラスタ内のすべてのマシンの構成情報が一致していることを確認します.hadoopクラスタ内のノード通信にはsshが必要です.ここではssh面パスワードログインを構成する必要があります.つまり、ノード間でsshサービスによってリモートログインでき、インタラクティブにパスワードを入力する必要はありません.【問題要約を参照】

    クラスタ運転


    Hadoopの起動


    まずnamenodeをフォーマットし、hadoop namenode -formatコマンドを実行します.namenodeのフォーマットに成功したら、/usr/hadoop/hadopp2.6.5/sbinに切り替えて./start-all.shコマンドを実行してnamenode、datanodeなどを起動します.

    問題の概要


    ssh接続の問題


    ssh-severをインストールするには、まず、相互に接続する必要がある2台のホスト間にsshがインストールされていることを確認し、ssh-serverサービスのインストール方法がオンになっていることを確認します.apt-get install openssh-serverを実行して、ssh-serverがps -aux |grepを起動しているかどうかを確認します.
    パスワードなしでsshにログインし、公開鍵鍵ペアを介して認証と暗号化を完了する方法.命令sshdを実行し、一路車に戻る.デフォルトでは、ssh-keygen~/.ssh/id_rsa.pubの2つのファイルが生成されます.
    AがパスワードなしでBにログインする場合、Aの公開鍵をBの~/.ssh/id_rsaファイルに追加します.同様に、BはパスワードなしでAにログインするには、Bの公開鍵をAの~/.ssh/authorized_keysファイルに追加する必要がある.構成が完了したら、~/.ssh/authorized_keysを実行してリモートホストにログインします.
    ホスト間のファイルコピーはscpコマンドで完了できます.コマンドフォーマットは次のとおりです.ssh remotehost
    rootユーザーsshログインのデフォルトを設定する方法では、rootがsshでログインすることを禁止します.この例では、オンにする必要があります.編集scp userA@hostA:fileA userB@hostB:fileBコメント/etc/ssh/sshd_config行を削除し、PermitRootLoginを追加

    hostname設定


    便宜上、ホストのデフォルトのhostnameを変更し、各ノードのhostsファイルを構成し、ノード名とIPのマッピングを完了します.hostname編集PermitRootLogin yesを修正し、hostnameを追加するこの例では、3つのホストのhostnameはそれぞれ/etc/hostnamenode7node8node11に構成されている
    ホストとIPのマッピングが完了した3つのホストの/etc/hostsには、次の構成が追加されます.
    node7 192.168.1.101
    node8 192.168.1.102
    node11 192.168.1.103
    

    ホストを再起動して変更を有効にします.

    Hadoop-eclipseプラグインの設定


    eclipseを使用してmapredを開発し、関連するHadoopプラグインを使用することができます.
    プラグインのインストール:ダウンロードしたhadoop-eclipse-plugin-2.6.5.jarをeclipseインストールディレクトリのpluginsディレクトリの下にコピーし(ここでは/usr/eclipse/plugins)、eclipseを再起動します.[new]-[other]では、プラグインの追加に成功したことを示す[Maps/Reduce]プロジェクトウィザードが表示されます.
    新しく追加されたプラグインが見つからない場合は、/usr/eclipse/configuration/org.eclipse.updateディレクトリを削除してからeclipseを再起動してみてください.一般的に再起動すると、新しく追加されたプラグインが検出されます.

    参考資料


    Hadoopの新しいMapReduceフレームワークYarnはhadoop 2を詳しく理解する.6完全分布式環境構築-風痕影黙-ブログ園はHadoopクラスタの原理と実現方式董志峰Do新浪ブログLinuxのインストール構成hadoopクラスタ-会心一撃-ブログ園Hadoopインストールチュートリアル単機/偽分布式配置_Hadoop2.6.0/Ubuntu14.04給力星SSH鍵タイプの選択-残雪残香-ブログ園Hadoopでnamenode-WQ-JAYのパーソナルスペースLinux下Hadoop 2を再フォーマット.6のインストール-mm_bitのブログ-ブログチャンネル-CSDN.NET Hadoop第6週練習-EclipseにHadoopプラグインとテスト(Linuxオペレーティングシステム)をインストール-shishanyuan-ブログパーク