hadoopクラスタ構成レコード
Hadoopクラスタインストールノート
先月書いた記録は、今日思い出してブログに長い間いたずらをしていたので、クラスタを構築したということです.ここで小さな総括をして、結局多くの回り道をして、後で教訓を吸収することを望んでいます.
ハードウェア構成
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_HOME
とHADOOP_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はhadoop-env.shとmapred-env.shでは環境変数が有効にならないなどの問題を回避するために,
export JAVA_HOME=${JAVA_HOME}
がJAVA_HOME
パスの設定を手動で指定する文を注記する.追加export JAVA_HOME=/usr/java/jdk1.8.0_121
core-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/hostname
、node7
、node8
、node11
に構成されているホストと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-ブログパーク