Hadoop分散クラスタを構築し、ビッグデータに取り組む方法を教えます

Hadoop分散クラスタを構築し、ビッグデータに取り組む方法を教えます

いよいよビッグデータで遊び始めます。以前はhaoopエコシステムについてあまり知りませんでしたが、今ではそれをデータセンターとして完全に使用する必要があります。これはhaoopに関する最初の記事です。今後はビッグデータ関連の記事をたくさん書くことになると思います。

Hadoop を構築するには 3 つの方法があります。スタンドアロン バージョンは開発とデバッグに適しています。疑似分散バージョンはクラスター学習のシミュレーションに適しています。完全に分散されたバージョンが本番環境で使用されます。このドキュメントでは、1 つのマスター ノードと 3 つのデータ ノードを例として、完全に分散された Hadoop クラスターを構築する方法について説明します。

[[212522]]

基本環境

環境の準備

1. ソフトウェアバージョン

  • 4 台のサーバーは、次のシステムで構成されています: centos6.5、メモリ: 1G、ハードディスク: 20G
  • 4 つのサーバーに割り当てられた IP アドレス: 192.168.0.71/72/73/74
  • 計画: 71 はマスターノードと hadoop-master として使用され、他の 3 つはデータノード 72、73、74 は hadoop-salve1~3 として使用されます。

jdkとビルドは一致しているので、バージョン1.7を使用してください。

  • Hadoop はバージョン 2.7.3 を使用します。ダウンロード アドレス: http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

2. ホスト構成とホスト名(4台のマシン)

4つのサーバーのホストファイルを変更する

  1. vim /etc/hosts  
  2. 192.168.0.71 hadoopマスター 
  3. 192.168.0.72 hadoop-スレーブ1  
  4. 192.168.0.73 hadoop-スレーブ2  
  5. 192.168.0.74 スレーブ3

サーバーのホスト名を例に挙げます: HOSTNAME, master

  1. vi /etc/sysconfig/ネットワーク 
  2. ホスト名=hadoop-master

変更は再起動後に有効になります。再起動が完了したら、他のスレーブ サーバーの名前を hadoop-slave1~3 に変更します。

3. サーバーにJDKをインストールする(サーバー4台)

jdkをインストールするにはyumを使用することをお勧めしますが、自分でダウンロードしてインストールすることもできます。

  1. yum -y インストール java-1.7.0-openjdk*

環境変数を設定し、設定ファイルvim /etc/profileを変更します。

  1. JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64 をエクスポートします。  
  2. PATH=$JAVA_HOME/bin:$PATH をエクスポートします 
  3. エクスポート CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

すぐに有効にするにはソースコマンドを使用してください

  1. ソース /etc/profile

パスワード不要のログイン

1. まず、4台のサーバーのファイアウォールとSELINUXをオフにします

ファイアウォールの状態を確認する

  1. サービス iptables ステータス

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

  1. サービスiptables停止 
  2. chkconfig iptablesオフ 

SELINUXを無効にした後、サーバーを再起動する必要があります。

  1. -- SELINUXを無効にする   
  2. # vim /etc/selinux/config  
  3. -- コメントアウト   
  4. #SELINUX=強制 
  5. #SELINUXTYPE=対象 
  6. - に追加   
  7. SELINUX=無効

2. パスワードなしでマシンにログインする

以下では、ローカル hadoop-master のパスワードなしログインの構成を例に説明します。ユーザーは、ローカルの 3 つの子ノード マシン h-salve1 ~ 3 へのパスワードなしのログインを完了するには、以下の手順に従う必要があります。

1) 生産キー

  1. ssh-keygen -t rsa

2) 公開鍵を「authorized_keys」ファイルに追加します。

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3) 権限を付与する

  1. chmod 600 .ssh/承認済みキー

4) パスワードなしでマシンにアクセスできることを確認する

  1. ssh hadoopマスター

***、h-salve1~3のパスワードフリーアクセスを順番に設定します

2. ローカルマシン上の hadoop-slave1、hadoop-slave2、hadoop-slave3 にパスワードなしでログインします。例として、hadoop-master がパスワードなしで hadoop-slave1 にログインする場合を考えます。

1) hadoop-slave1 にログインし、hadoop-master サーバーの公開鍵「id_rsa.pub」を hadoop-slave1 サーバーの「root」ディレクトリにコピーします。

  1. scp root@hadoop-master:/root/.ssh/id_rsa.pub /root/

2) hadoop-masterの公開鍵(id_rsa.pub)をhadoop-slave1のauthorized_keysに追加します。

  1. cat id_rsa.pub >> .ssh/authorized_keys  
  2. rm -rf id_rsa.pub

3) hadoop-masterでテストする

  1. ssh hadoop-スレーブ1

3. hadoop-slave1~hadoop-slave3を設定して、パスワードなしでhadoop-masterにログインできるようにします。

次の例では、hadoop-slave1 を使用して、パスワードなしで hadoop-master にログインします。ユーザーは、次の手順を参照して、hadoop-slave2~hadoop-slave3 を完了し、パスワードなしで hadoop-master にログインする必要があります。

1) hadoop-master にログインし、hadoop-slave1 サーバーの公開鍵「id_rsa.pub」を hadoop-master サーバーの「/root/」ディレクトリにコピーします。

  1. scp root@hadoop-slave1:/root/.ssh/id_rsa.pub /root/

2) hadoop-slave1 の公開鍵 (id_rsa.pub) を hadoop-master の authorized_keys に追加します。

  1. cat id_rsa.pub >> .ssh/authorized_keys  
  2. rm -rf id_rsa.pub //id_rsa.pub を削除

3) hadoop-slave1でテストする

  1. ssh hadoop マスター

hadoop-slave2とhadoop-slave3を順番に設定する

この時点で、マスターとスレーブのパスワードなしのログインが完了しました。

Hadoop環境構築

hadoop-masterのhadoop環境を設定する

1. インストールパッケージを解凍し、hadoop-masterに基本ディレクトリを作成します。

  1. #ダウンロード 
  2. http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz を取得します。  
  3. #解凍 
  4. tar -xzvf hadoop-2.7.3.tar.gz -C /usr/ローカル   
  5. #名前の変更 
  6. mv hadoop-2.7.3 hadoop

2. hadoop-masterのhadoop環境変数を設定する

1) 環境変数を設定し、設定ファイルvi /etc/profileを変更します。

  1. HADOOP_HOME=/usr/ローカル/hadoopをエクスポートします。  
  2. PATH=$PATH:$HADOOP_HOME/bin をエクスポートします。

現在のターミナルでhadoopコマンドをすぐに有効にする

  1. ソース /etc/profile

以下のように設定してください。すべてのファイルは /usr/local/hadoop/etc/hadoop パスにあります。

2. core-site.xmlを構成する

Hadoop コア構成ファイル /usr/local/hadoop/etc/hadoop/core-site.xml を変更し、fs.default.name を通じて NameNode の IP アドレスとポート番号を指定し、hadoop.tmp.dir を通じて Hadoop データ ストレージの一時フォルダーを指定します。

  1. <構成>  
  2. <プロパティ>  
  3. <名前>hadoop.tmp.dir</名前>  
  4. <値>ファイル:/usr/ローカル/hadoop/tmp</値>  
  5. <description>他の一時ディレクトリベース。</description>  
  6. </プロパティ>  
  7. <プロパティ>  
  8. <名前>fs.defaultFS</名前>  
  9. <値>hdfs://hadoop-master:9000</値>  
  10. </プロパティ>  
  11. </構成>

特記事項: hadoop.tmp.dir パラメータが設定されていない場合、システムのデフォルトの一時ディレクトリは /tmp/hadoo-hadoop になります。このディレクトリは再起動のたびに削除されるため、フォーマットを再実行する必要があります。そうしないとエラーが発生します。

3. hdfs-site.xml を設定します。

HDFS コア構成ファイル /usr/local/hadoop/etc/hadoop/hdfs-site.xml を変更し、dfs.replication で HDFS バックアップ係数を 3 に指定し、dfs.name.dir でネームノード ノードのファイル ストレージ ディレクトリを指定し、dfs.data.dir でデータノード ノードのファイル ストレージ ディレクトリを指定します。

  1. <構成>  
  2. <プロパティ>  
  3. <名前>dfs.replication</名前>  
  4. <値>3</値>  
  5. </プロパティ>  
  6. <プロパティ>  
  7. <名前>dfs。名前.dir</名前>  
  8. <値>/usr/ローカル/hadoop/hdfs/</値>  
  9. </プロパティ>  
  10. <プロパティ>  
  11. <名前>dfs.data.dir</名前>  
  12. <値>/usr/ローカル/hadoop/hdfs/data</値>  
  13. </プロパティ>  
  14. </構成>

4. mapred-site.xml を構成する

mapred-site.xml.templateをmapred-site.xmlにコピーして修正する

  1. cp /usr/ローカル/hadoop/etc/hadoop/mapred-site.xml.template /usr/ローカル/hadoop/etc/hadoop/mapred-site.xml  
  2. vim /usr/ローカル/hadoop/etc/hadoop/mapred-site.xml  
  3. <構成>  
  4. <プロパティ>  
  5. <名前>mapreduce.framework。名前</名前>  
  6. <value>糸</value>  
  7. </プロパティ>  
  8. <プロパティ>  
  9. <名前>mapred.job.tracker</名前>  
  10. <値>http://hadoop-master:9001</値>  
  11. </プロパティ>  
  12. </構成>

5. yarn-site.xml を設定する

  1. <構成>  
  2. <! -- サイト固有の YARN 構成プロパティ -->    
  3. <プロパティ>  
  4. <名前>yarn.nodemanager.aux-services</名前>  
  5. <値>mapreduce_shuffle</値>  
  6. </プロパティ>  
  7. <プロパティ>  
  8. <名前>yarn.resourcemanager.hostname</名前>  
  9. <値>hadoop マスター</値>  
  10. </プロパティ>  
  11. </構成>

6. マスターファイルを構成する

namenode ノードが配置されているサーバー マシンを指定する /usr/local/hadoop/etc/hadoop/masters ファイルを変更します。 localhost を削除し、namenode ノードのホスト名 hadoop-master を追加します。 IP アドレスは変更される可能性がありますが、ホスト名は通常変更されないため、IP アドレスの使用はお勧めしません。

  1. vi /usr/ローカル/hadoop/etc/hadoop/masters  
  2. ## コンテンツ 
  3. hadoopマスター

7. スレーブファイルを構成する(マスターホスト固有)

どのサーバーノードがデータノードノードであるかを指定する /usr/local/hadoop/etc/hadoop/slaves ファイルを変更します。 locahost を削除し、以下に示すようにすべてのデータノードのホスト名を追加します。

  1. vi /usr/ローカル/hadoop/etc/hadoop/slaves  
  2. ## コンテンツ 
  3. hadoop スレーブ1  
  4. hadoop スレーブ2  
  5. hadoop スレーブ3

hadoop-slaveのhadoop環境を設定する

以下では、hadoop-slave1 上の hadoop の構成を例として説明します。他の hadoop-slave2 ~ 3 サーバーの構成を完了するには、次の手順を参照する必要があります。

1) hadoopをhadoop-slave1ノードにコピーする

  1. scp -r /usr/ローカル/hadoop hadoop-slave1:/usr/ローカル/

hadoop-slave1サーバーにログインし、スレーブのコンテンツを削除します。

  1. rm -rf /usr/ローカル/hadoop/etc/hadoop/slaves

2) 環境変数を設定する

  1. vi /etc/プロファイル 
  2. ## コンテンツ 
  3. HADOOP_HOME=/usr/ローカル/hadoopをエクスポートします。  
  4. PATH=$PATH:$HADOOP_HOME/bin をエクスポートします。

現在のターミナルで hadoop コマンドを直ちに有効にします。

  1. ソース /etc/profile

他のスレーブサービスを順番に設定する

クラスターを起動する

1. HDFSファイルシステムをフォーマットする

マスターの~/hadoopディレクトリに入り、次の操作を実行します。

  1. bin/hadoop ネームノード -format

ネームノードのフォーマットは、サービスを初めて起動する前に実行される操作であり、後で実行する必要はありません。

2. 次に、hadoop を起動します。

  1. sbin /スタート-all.sh

3. jpsコマンドを使用して実行ステータスを表示します。

  1. #master jpsを実行して実行ステータスを確認します 
  2. 25928 セカンダリネームノード 
  3. 25742 ネームノード 
  4. 26387 日本語 
  5. 26078 リソースマネージャー 
  6. #スレーブはjpsを実行して実行ステータスを確認します 
  7. 24002 ノードマネージャー 
  8. 23899 データノード 
  9. 24179 日本

4. Hadoop クラスターのステータスを表示するコマンド

単純な jps コマンドを使用して、HDFS ファイル管理システムと MapReduce サービスが正常に起動されているかどうかを確認できますが、Hadoop クラスター全体の実行状態を確認することはできません。 hadoop dfsadmin -report を通じて表示できます。このコマンドを使用すると、障害が発生したノード、HDFS の容量と使用量、各ノードのハード ディスクの使用状況をすばやく見つけることができます。

  1. hadoop dfsadmin -レポート

出力:

  1. 構成容量: 50108030976 (46.67 GB)  
  2. 現在の容量: 41877471232 (39.00 GB)  
  3. DFS 残り: 41877385216 (39.00 GB)  
  4. 使用された DFS: 86016 (84 KB)  
  5. DFS 使用率: 0.00%  
  6. 複製されたブロックの下: 0  
  7. 破損したレプリカを持つブロック: 0  
  8. 不足しているブロック: 0  
  9. 欠落ブロック(レプリケーション係数 1の場合): 0
  10.   ......

5. Hadoopの再起動

  1. sbin / stop-all.sh  
  2. sbin /スタート-all.sh

間違い

ビルドが完了して開始すると、次の 2 つのエラーが発生しました。

1. xxx: エラー: JAVA_HOMEが設定されておらず、見つかりません

このエラーは、jdk 環境変数が見つからず、hadoop-env.sh で設定する必要があることを意味します。

  1. vi /usr/ local /hadoop/etc/hadoop/hadoop-env.sh  
  2. ## 構成項目 
  3. JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64 をエクスポートします。

2. ホスト「0.0.0.0 (0.0.0.0)」の信頼性を確立できません。

解決策: SELINUXを無効にする

  1. -- SELINUXを無効にする   
  2. # vim /etc/selinux/config  
  3. -- コメントアウト   
  4. #SELINUX=強制 
  5. #SELINUXTYPE=対象 
  6. - に追加 
  7. SELINUX=無効

<<:  サーバーレスアーキテクチャ変革の実践: 遺伝子サンプルの比較

>>:  ビッグデータにハイブリッドクラウドアプローチを採用する中小企業向けの3つのベストプラクティス

推薦する

レポート予測: 医療クラウドインフラ市場規模は2028年に1,420億ドルに達する

ResearchAndMarkets によると、世界のヘルスケア クラウド インフラストラクチャ市場...

クラウドコンピューティング業界 2017 年末総括

最も寒い冬がついに到来し、それとともに 12 月がやってきます。 2017 年も終わりに近づいていま...

競争の激しい医療業界で生き残る方法

ここ数ヶ月、民間病院が患者から金銭をだまし取っているというニュースが頻繁に報道されていることに気づい...

ウェブサイト分析ツールの徹底解説:訪問元統計(パート2)

仮想ツール1. アクセス元の概要訪問者ソースの概要機能はほとんどの Web サイト分析ツールで利用可...

香港の金融ウェブサイト16件が中国本土のハッカーに脅迫され、容疑者6人が逮捕された

記者が1日、公安部から得た情報によると、最近、公安部の統一的な調整と指揮の下、中国本土の公安機関と香...

Baidu ウェブサイト再設計ツールの高度なルール URL 置換ルールの詳細な説明

ウェブサイトの規模、業務、技術の変化に応じて、ウェブサイトの改訂は避けられません。しかし、ウェブサイ...

Baidu Green Radish Algorithm 2.0 の影響を受ける業界の内訳

7月1日以降、百度の青大根アルゴリズムは再びアップグレードされ、そのターゲットはより具体的になり、一...

インデックス700 Baiduには600万以上の単一記事のインデックスがあります。なぜ1位にランクできるのでしょうか?

今朝、「歯科インプラント」というキーワードで検索したところ、偶然、ある病院の記事が 1 件だけ検索結...

企業はWeiboマーケティングの過程でどのような問題に遭遇するのでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeiboマーケティング...

aliendata: 月額 2.5 ドル、KVM 仮想 VPS、1G メモリ/1 コア (ryzen 3900X)/20g SSD/1Gbps 無制限トラフィック

ヒューストンの北部で事業を展開している Data Ideas LLC は、正式に事業を開始して 1 ...

ComScore: Pinterest の訪問者数は 5 月に前年比 4,377% 増加

Pinterest の成長率は、ユニーク ユーザー訪問数と検索エンジンのクリック数という 2 つの指...

mivocloud - 高セキュリティ無制限トラフィック VPS/5 ユーロ/2g メモリ/40g SSD/openstack

安価で強力なヨーロッパの VPS が必要な場合は、mivocloud を試してみてください。データ ...

raidlogic - 9.9 ドル/年/64MB メモリ/128MB バースト/5GB ハードディスク/500GB トラフィック

raidlogic、あのひどいウェブサイトが改良されて、やっと見栄えがよくなりました。2001 年に...

これらの4つの要素により、ウェブサイト運営はユーザーエクスペリエンスが適格であることを保証できます。

ウェブサイトにユーザー エクスペリエンスがないとどうなるでしょうか。これは熟考する価値のある質問です...