あなたはHadoopクラスタを構築するためのステップバイステップで教えて

まず、準備作業

すなわち、4台のマシンがあるとします192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.104。

ここでCentos7システムの一例として、(いくつかの操作をしているLinuxシステムコマンドの異なるバージョンが同じではない、自己百度)のノードが4つのログインアカウントのHadoopを持っています。

私たちは、とても設定を計画します。

ファイアウォールをオフにします

  1. systemctl stop firewalld.service

  2. systemctl stop iptables.service

そして、22が開いているマシンのポートを確認

ここでは、ホスト名にマップされたIP、次のコマンドを実行します。

  1. vi /etc/hosts

hostsファイルには、編集には、以下の

  1. 192.168.1.101 node1

  2. 192.168.1.102 node2

  3. 192.168.1.103 node3

  4. 192.168.1.104 node4

保存して終了

3306ポートが開いているノード1かどうかをチェックします

そして、他のノードのホストにファイルを送信します

  1. scp /etc/hosts hadoop@node2:/etc/

  2. scp /etc/hosts hadoop@node3:/etc/

  3. scp /etc/hosts hadoop@node4:/etc/

Hadoopのは、伝送の過程でユーザーのパスワードを入力する必要があります

第二には、configureパスワードフリー

その後、ホームディレクトリと実行  コマンドを、プロンプト気にしないコマンドの実行が完了するまで、すべての方法を入力します。ssh-keygen-t rsa

他のノードに移動し、同じ操作を実行

例えば:SSH NODE2(ノードNODE2へのジャンプ)

このとき、各ノードのホームディレクトリには、複製の3つのノードノード4 idrsa(秘密鍵)とidrsa.pub(公開鍵)は、2つのファイルを、ノード2、ノード3、id_rsa.pubと.sshディレクトリを持っていますホームディレクトリノード1の次の部分に送られます

  1. scp .ssh/id_rsa.pub hadoop@node1:~/pub2

  2. scp .ssh/id_rsa.pub hadoop@node1:~/pub3

  3. scp .ssh/id_rsa.pub hadoop@node1:~/pub4

公共ファイルのノード1ホームディレクトリのコピー

  1. cp .ssh/id_rsa.pub pub1

ノード1のホームディレクトリに新しいファイルを作成します。

  1. touch authorized_keys

authorized_keysに内のすべてのノードへの4つの重要なファイル入力の内容

  1. cat pub1 >> authorized_keys

  2. cat pub2 >> authorized_keys

  3. cat pub3 >> authorized_keys

  4. cat pub4 >> authorized_keys

次に、各ノードのauthorized_keysファイルフォルダの.sshに送信します

  1. cp authorized_keys .ssh/

  2. scp authorized_keys hadoop@node2:~/

  3. scp authorized_keys hadoop@node3:~/

  4. scp authorized_keys hadoop@node4:~/

これらの言葉は、今、各ノードの/ etc / sshを/ ssh_configのファイルにコピーされます

  1. Host *

  2. StrictHostKeyChecking no

  3. UserKnownHostsFile=/dev/null

このように、ノード間のスイッチにパスワードを入力する必要はありません

第三に、インストールJDK

ダウンロードjdk1.8

ホームディレクトリにアップロード、ダウンロードはnode1一度、抽出物に次のコマンドを入力します。

  1. tar -zxvf jdk-8u131-linux-x64.tar.gz

削除アーカイブを抽出した後、そのファイルフォルダ名前を変更したJDKを解凍します

  1. mv jdk1.8.0_131 jdk

設定の環境変数:

  1. vi .bashrc

ファイルに以下の内容を書きます

  1. export JAVA_HOME=/home/hadoop/jdk

  2. export PATH=$PATH:$JAVA_HOME/bin

保存して終了

力にそれを持って、.bashrcのファイルを再コンパイルするには、次のコマンドを実行

  1. source .bashrc

送信JDKの.bashrcファイルフォルダとソースファイル内の他のノード、及び他のノードへの.bashrc

  1. scp r jdk/ hadoop@node2:~/

第四に、インストール飼育係

ダウンロードした後、飼育係はnode1アップロードされたホームディレクトリに、抽出するには、次のコマンドを入力します。

  1. tar -zxvf zookeeper-3.4.8.tar.gz

抽出した後のアーカイブは削除、フォルダ名を変更します

  1. mv zookeeper-3.4.8 zookeeper

.bashrcのファイル内の設定環境変数、輸出PATH文以上のプラスワン

  1. export ZOOKEEPER=/home/hadoop/zookeeper

そして、この文の末尾に輸出PATHを追加しました:

  1. :$ZOOKEEPER_HOME/bin

保存して終了した後  の外観source.bashrc

飼育係プロファイルディレクトリを入力します。

  1. cd zookeeper/conf

プロファイル名の変更

  1. mv zoo_sample.cfg zoo.cfg

プロフィールの編集

  1. vi zoo.cfg

次の一節書かれたプロフィール

  1. server.1=node1:2888:3888

  2. server.2=node2:2888:3888

  3. server.3=node3:2888:3888

そして、その値を見つけて修正するDATADIR

  1. dataDir=/home/hadoop/tmp/zookeeper

保存して終了

ただ、構成された/ホーム/ Hadoopのを/ tmp /飼育係、このフォルダが存在しない場合は、手動で作成

ディレクトリ・MYIDでファイルを作成し、対応する図面に書かれた数字は、数字とzoo.cfgコンフィギュレーション・ファイルは、このような書き込み1にMYIDファイルのノード1のような、他のノードなど、保存して終了し、最後に対応MYID。

飼育係のbashrcにとフォルダの下にノードノード2とノード3のHadoopホームディレクトリとソース、それの.bashrcファイルに送信します

ノード1、ノード2、ノード3の3つのノードを実行します zkServer.sh start

正常に起動ヒント

3つの成功し、開始ノード、ノードの実行後 zkServer.sh status

あなたはフォロワーやリーダーを求められた場合は、インストールが成功した飼育係があったことを意味し

第五は、Hadoopのインストール

hadoop2.7.3バージョンhttp://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gzをダウンロードするには、次のアドレス

そして、ホームディレクトリのノード1にアップロードし、抽出物に次のコマンドを入力します。

  1. tar -zxvf hadoop-2.7.3.tar.gz

抽出した後のアーカイブは削除、フォルダ名を変更します

  1. mv hadoop-2.7.3 hadoop

.bashrcのファイル内の設定環境変数、輸出PATH文以上のプラスワン

  1. export HADOOP_HOME=/home/hadoop/hadoop

そして、この文の末尾に輸出PATHを追加しました:

  1. :$ HADOOP_HOME /bin:$ HADOOP_HOME /sbin

保存して終了した後  の外観source.bashrc

プロファイルディレクトリにHadoopの、および以下の構成ファイルを変更

1.私たちは、hadoop-env.sh

  1. export JAVA_HOME=/home/hadoop/jdk

2. VI HDFS-site.xmlの

  1. <configuration>

  2. <!--block块存放副本的个数 -->

  3. <property>

  4. <name>dfs.replication</name>

  5. <value>3</value>

  6. </property>

  7. <!--nameNode集群的名称 -->

  8. <property>

  9. <name>dfs.nameservices</name>

  10. <value>hwua</value>

  11. </property>

  12. <!--nameNode集群对应有几个namenode在这里可以填很多个 -->

  13. <property>

  14. <name>dfs.ha.namenodes.hwua </name>

  15. <value>nn1,nn2</value>

  16. </property>

  17. <!--nameNode程序rpc的通信 -->

  18. <property>

  19. <name>dfs.namenode.rpc-address.hwua.nn1</name>

  20. <value>node1:8020</value>

  21. </property>

  22. <!--nameNode程序rpc的通信 -->

  23. <property>

  24. <name>dfs.namenode.rpc-address.hwua.nn2</name>

  25. <value>node2:8020</value>

  26. </property>

  27. <!--nameNode程序http的通信 -->

  28. <property>

  29. <name>dfs.namenode.http-address.hwua.nn1</name>

  30. <value>node1:50070</value>

  31. </property>

  32. <!--nameNode程序http的通信 -->

  33. <property>

  34. <name>dfs.namenode.http-address.hwua.nn2</name>

  35. <value>node2:50070</value>

  36. </property>

  37. <!--这里那几台机器启动了journalNode服务 -->

  38. <property>

  39. <name>dfs.namenode.shared.edits.dir</name>

  40. <value>qjournal://node2:8485;node3:8485;node4:8485/hwua</value>

  41. </property>

  42. <!--nameNode的active和standby在切换时候,提供的一个API -->

  43. <property>

  44. <name>dfs.client.failover.proxy.provider.hwua</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

  45. </property>

  46. <!--当一个namenode挂了,那么standby状态的接管,会在要断没断时将通过ssh到active上将其进程杀死 ,自己接管即:当NN2failover接管时,将通过ssh到namenode里面去,kill process(namenode),防止脑裂-->

  47. <property>

  48. <name>dfs.ha.fencing.methods</name>

  49. <value>sshfence</value>

  50. </property>

  51. <!--通过钥匙去登录别的服务器,开启其它的服务,如DataNode -->

  52. <property>

  53. <name>dfs.ha.fencing.ssh.private-key-files</name>

  54. <value>/home/hadoop/.ssh/id_rsa</value>

  55. </property>

  56. <!--journal存放edits文件的地方 -->

  57. <property>

  58. <name>dfs.journalnode.edits.dir</name>

  59. <value>/usr/hadoopsoft/journal</value>

  60. </property>

  61. <!--当一台nameNode挂了,可以自动的切换 -->

  62. <property>

  63. <name>dfs.ha.automatic-failover.enabled</name>

  64. <value>true</value>

  65. </property>

  66. </configuration>

3. Iハート-site.xmlの

  1. <configuration>

  2. <!-- 指定hdfs的nameservice为namenode -->

  3. <property>

  4. <name>fs.defaultFS</name>

  5. <value>hdfs://hwua</value>

  6. </property>

  7. <!-- 指定hadoop临时目录,如果没有请手动创建 -->

  8. <property>

  9. <name>hadoop.tmp.dir</name>

  10. <value>/home/hadoop/tmp/hadoop</value>

  11. </property>

  12. <!-- 指定zookeeper所在的机器 -->

  13. <property>

  14. <name>ha.zookeeper.quorum</name>

  15. <value>node1:2181,node2:2181,node3:2181</value>

  16. </property>

  17. </configuration>

4. MV mapred-site.xml.template mapred-site.xmlに

そして、VI mapred-site.xmlに

  1. <property>

  2. <name>mapreduce.framework.name</name>

  3. <value>yarn</value>

  4. </property>

5. VI糸-site.xmlに

  1. <property>

  2. <name>yarn.nodemanager.aux-services</name>

  3. <value>mapreduce_shuffle</value>

  4. </property>

  5. <property>

  6. <name>yarn.resourcemanager.hostname</name>

  7. <value>node1</value>

  8. </property>

6.私たちの奴隷

  1. node2

  2. node3

  3. node4

ノードデータノード場所を入力します。ノード2ノード3ノード4

secondaryNameNode IPは完全にノードセットを配布し、ここでの高可用性と、secondaryNameNodeせず、NN2アウトを交換するので、完全分散に設定されたマスターは、削除します

7. Hadoopのすべてのディレクトリを他のノードにコピーされます

  1. scp -r /usr/hadoopsoft/hadoop-2.5.1 node2:/usr/hadoopsoft/

  2. scp -r /usr/hadoopsoft/hadoop-2.5.1 node3:/usr/hadoopsoft/

  3. scp -r /usr/hadoopsoft/hadoop-2.5.1 node4:/usr/hadoopsoft/

すべてのファイルを変更した後、journalnodeを開始

  1. Hadoop-deamonsh start journalnode

これでフォーマットされた名前ノード:HDFS名前ノード-format

すぐに別の名前ノードにフォーマットした後、メタデータをコピーします。

  • スタートだけでフォーマットされた名前ノード

  • 書式なし名前ノード上で実行:HDFS名前ノード-bootstrapStandby

  • 二名前ノードを開始します

初期設定で1名前ノードzkfc:HDFS zkfc -formatZK

ノード上で停止:stop-dfs.sh

最後に、Hadoopのを開始しました:start-all.sh

 

おすすめ

転載: www.cnblogs.com/weiwei-python/p/11972662.html