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つのベストプラクティス

推薦する

第4回中国オープンソースクラウドコンピューティングユーザーカンファレンスが開催されました

12月6日、第4回中国オープンソースクラウドコンピューティングユーザーカンファレンスが北京グランドハ...

locvps: 新しい米国 cn2 vps、香港 VPS ライド、すべて生涯 30% 割引、月額 38 元、2G メモリ/2 コア/40g SSD/600g トラフィック

今月、locvpsは米国ロサンゼルスのmultacomデータセンターにVPSを追加しました。CN2回...

bluevm-3周年記念/4つの特別VPSプロモーション

bluevm(別名「Bu Lu」)は設立から3年目を迎え、bluevmが開発したFeathurオープ...

ウェブサイトのフレンドリーさを向上させることは検索エンジンに役立ちます

現実には、私を含め、多くの例があります。もし私のガールフレンドが私に優しくしてくれるなら、私も彼女に...

ミニプログラムを宣伝するための最も包括的なガイドです。強くお勧めします。これを読んで宣伝しないと言わないで

月収10万元の起業の夢を実現するミニプログラム起業支援プランミニプログラムは2017年1月9日に開始...

301 リダイレクト コード コレクション

Le Si Shu は、SEO 作業に必要な 301 リダイレクト コードを整理、収集し、将来の参考...

マーケティングコンサルタントの Yin Tuochun による、ウェブサイトのコンバージョン率を向上させる実践的なヒント

トラフィックはあるが、問い合わせが少なく、コンバージョン率が低い。しかし、どこから始めればよいのか分...

Taoxie.comのホームページから学んだnofollowの使い方

中国最大の靴のB2CウェブサイトであるTaoxie.comは、ウェブサイト構造の最適化において一定の...

モバイルインターネットの時代において、なぜ企業は公式ウェブサイトを必要とするのでしょうか?

月給5,000~50,000のこれらのプロジェクトはあなたの将来です多くの企業では、すでに公式サイト...

マルチクラウド環境を管理するための10の実践

また、マルチクラウドは組織の IT チームが直面しているすべての問題に対する解決策ではないことも理解...

Baiduの検索エンジン最適化技術の変化に関する3年間の経験

今日は愚痴を言います。SEO業務を3年以上やっていますが、ウェブサイトを最適化する方法が分からない気...

Yecao Cloud: 香港専用サーバーは月額199元、香港クラウドサーバーは年間138元から

LucidaCloud(2009年設立、LucidaCloud Limited、香港登録番号:第27...

技術を培い、「3つの良い」評判を獲得 - インスパー雲海の2020年レポートカード

2020年、特別な年。 2020 年を一文でまとめるとしたら、どのように表現しますか?嵐が来る前に、...