実際のCentOSシステムにHadoopクラスターサービスを展開する

  著作権表示:この記事はShaonPuppetによるオリジナル記事です。転載の元のアドレスを教えてください。ありがとうございます。 https://blog.csdn.net/wh211212/article/details/53171625
Hadoopは、Apache Foundationによって開発された分散システムインフラストラクチャです。Hadoopは、HDFSと呼ばれる分散ファイルシステム(Hadoop分散ファイルシステム)を実装します。 HDFSは耐障害性が高く、低コストのハードウェアに展開するように設計されています。また、アプリケーションデータにアクセスするための高スループット(高スループット)を提供し、大規模なデータセット(大規模なデータセット)を持つユーザーに適しています。 )アプリケーション; HDFSはPOSIXの要件を緩和し、ストリーミングアクセスの形式でファイルシステム内のデータにアクセスできます。

1、 MapReduceの仕組み
クライアントは、MapReduceジョブを送信します。jobtrackerは、ジョブの操作を調整します。jobtrackerはjavaアプリケーションであり、そのメインクラスはJobTracker; tasktrackerです。 TasktrackerはJavaアプリケーションであり、TaskTrackerはメインクラスです。
2、 Hadoopの利点
Hadoopは、ユーザーが簡単に構造化して使用できるようにする分散コンピューティングプラットフォームです。ユーザーは、Hadoopで大量のデータを処理するアプリケーションを簡単に開発して実行できます。次の利点があります。
高い信頼性:データを少しずつ保存および処理するHadoopの機能は信頼できます。
高いスケーラビリティ:Hadoopは、利用可能なコンピュータークラスター間でデータを分散し、コンピューティングタスクを完了します。これらのクラスターは、数千のノードに簡単に拡張できます。
高効率:Hadoopはノード間でデータを動的に移動し、各ノードの動的バランスを確保できるため、処理速度が非常に高速になります。
高い耐障害性:Hadoopは、データの複数のコピーを自動的に保存し、失敗したタスクを自動的に再配布できます。
低コスト:オールインワンコンピューター、商用データウェアハウス、QlikViewやYonghong Z-Suiteなどのデータマートと比較して、hadoopはオープンソースであるため、プロジェクトのソフトウェアコストが大幅に削減されます。
HadoopにはJava言語で記述されたフレームワークが付属しているため、Linux本番プラットフォームで実行するのが理想的です。 Hadoop上のアプリケーションは、C ++などの他の言語で作成することもできます。
Hadoop公式ウェブサイト:[http://hadoop.apache.org/](http://hadoop.apache.org/)** 2。前提条件**
Hadoopクラスター内の各ノードの構成環境の一貫性を保ち、javaをインストールし、sshを構成します。
ラボ環境:
Platform:xen vm
OS: CentOS 6.8
Software: hadoop-2.7.3-src.tar.gz, jdk-8u101-linux-x64.rpm
HostnameIP AddressOS versionHadoop roleNode rolelinux-node1192.168.0.89CentOS 6.8Masternamenodelinux-node2192.168.0.90CentOS 6.8Slavedatenodelinux-node3192.168.0.91CentOS 6.8Slavedatenodelinux-node4192.168.0.92CentOS 6.8Slavedatenode#必要なソフトウェアパッケージをダウンロードし、各クラスターにアップロードしますノード上
3つ、クラスターのアーキテクチャとインストール** 1、ホストファイルの設定**

Hadoopクラスター内の各ノードのhostsファイルを変更する必要があります

[ root@linux-node1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain linux-node1 192.168.0.89 linux-node1 192.168.0.90 linux-node2 192.168.0.91 linux-node3 192.168.0.92 linux-node4
**2、 java **をインストールします

ダウンロードしたJDK(rpmパッケージ)を事前にサーバーにアップロードしてからインストールしてください

rpm -ivh jdk-8u101-linux-x64.rpm export JAVA_HOME=/usr/java/jdk1.8.0_101/ export PATH=JAVA_HOME/bin:PATH # java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
3、 hadoopをインストール

hadoopユーザーを作成し、sudoを使用するように設定します

[ root@linux-node1 ~]# useradd hadoop && echo hadoop | passwd --stdin hadoop [root@linux-node1 ~]# echo "hadoopALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers [root@linux-node1 ~]# su - hadoop [hadoop@linux-node1 ~]$ cd /usr/local/src/ [hadoop@linux-node1src]wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz [hadoop@linux-node1 src] sudo tar zxvf hadoop-2.7.3.tar.gz -C /home/hadoop/ && cd /home/hadoop [hadoop@linux-node1 home/hadoop]$ sudo mv hadoop-2.7.3/ hadoop [hadoop@linux-node1 home/hadoop]$ sudo chown -R hadoop:hadoop hadoop/

hadoopのバイナリディレクトリをPATH変数に追加し、HADOOP_HOME環境変数を設定します

[ hadoop@linux-node1 home/hadoop]$ export HADOOP_HOME=/home/hadoop/hadoop/ [hadoop@linux-node1 home/hadoop]$ export PATH=HADOOP_HOME/bin:PATH
4、 hadoop関連のディレクトリを作成する
[ hadoop@linux-node1 ~]$ mkdir -p /home/hadoop/dfs/{name,data} [hadoop@linux-node1 ~]$ mkdir -p /home/hadoop/tmp

ノードストレージデータバックアップディレクトリ

sudo mkdir -p /data/hdfs/{name,data} sudo chown -R hadoop:hadoop /data/

上記の操作は、hadoopクラスターの各ノードで実行する必要があります

5、 SSH構成

パスワードなしで他のノードにログインするようにクラスターマスターノードを設定します

[ hadoop@linux-node1 ~]$ ssh-keygen -t rsa [hadoop@linux-node1 ~]$ ssh-copy-id [email protected] [hadoop@linux-node1 ~]$ ssh-copy-id [email protected] [hadoop@linux-node1 ~]$ ssh-copy-id [email protected]

sshログインをテストする

**6、 hadoop **の構成ファイルを変更します
ファイルの場所:/ home / hadoop / hadoop / etc / hadoop、ファイル名:hadoop-env.sh、yarn-evn.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn -site.xml
(1)hadoop-env.shファイルを構成します

hadoopインストールパスの下で、hadoop / etc / hadoop /ディレクトリに入り、hadoop-env.shを編集し、JAVA_HOMEをJAVAのインストールパスに変更します。

[ hadoop@linux-node1 home/hadoop]$ cd hadoop/etc/hadoop/ [hadoop@linux-node1 hadoop]$ egrep JAVA_HOME hadoop-env.sh # The only required environment variable is JAVA_HOME. All others are # set JAVA_HOME in this file, so that it is correctly defined on #export JAVA_HOME={JAVA_HOME} export JAVA_HOME=/usr/java/jdk1.8.0_101/ (2)yarn.shファイルを構成します Yranフレームワークのjavaオペレーティング環境を指定します。このファイルは、Yarnフレームワークオペレーティング環境の構成ファイルです。JAVA_HOMEの場所を変更する必要があります。 [ hadoop@linux-node1 hadoop] grep JAVA_HOME yarn-env.sh # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ export JAVA_HOME=/usr/java/jdk1.8.0_101/
(3)スレーブファイルを構成する
次のように、DataNodeデータストレージサーバーを指定し、すべてのDataNodeマシンのホスト名をこのファイルに書き込みます。
[ hadoop@linux-node1 hadoop]$ cat slaves linux-node2 linux-node3 linux-node4
Hadoop3の動作モード
ローカル独立モード:NameNode、DataNode、Jobtracker、TasktrackerなどのHadoopのすべてのコンポーネントは、すべてJavaプロセスで実行されています。
疑似分散モード:Hadoopの各コンポーネントには個別のJava仮想マシンがあり、ネットワークソケットを介して通信します。
完全分散モード:Hadoopは複数のホストに分散され、作業の性質に応じてさまざまなコンポーネントがさまざまなゲストにインストールされます。

完全分散モードを構成する

(4)core-site.xmlファイルを変更し、赤い領域にコードを追加し、青いマークの付いたコンテンツに注意してください。
< configuration> fs.default.name hdfs://linux-node1:9000 io.file.buffer.size 131072 hadoop.tmp.dir file:/home/hadoop/tmp Abase for other temporary directories.
(5)hdfs-site.xmlファイルを変更します
< 構成> dfs.namenode.secondary.http-アドレスlinux-node1:9001 #Webインターフェイスを介してHDFSステータスを表示するdfs.namenode.name.dirファイル:/ home / hadoop / dfs / name dfs.datanode.data.dirファイル:/ home / hadoop / dfs / data dfs.replication 2 #各ブロックには2つのバックアップがありますdfs.webhdfs.enabled true
(6)mapred-site.xmlを変更します
これがmapreduceタスクの構成です。hadoop2.xはyarnフレームワークを使用するため、分散展開を実現するには、mapreduce.framework.nameプロパティでyarnとして構成する必要があります。 mapred.map.tasksとmapred.reduce.tasksは、それぞれmapとreduceのタスクの数です。
[ hadoop@linux-node1 hadoop]$ cp mapred-site.xml.template mapred-site.xml mapreduce.framework.name yarn mapreduce.jobhistory.address linux-node1:10020 mapreduce.jobhistory.webapp.address linux-node1:19888
(7)ノードyarn-site.xmlを構成します

このファイルは、ヤーンアーキテクチャの関連する構成です。

mapred.child.java.opts -Xmx400m yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address linux-node1:8032 yarn.resourcemanager.scheduler.address linux-node1:8030 yarn.resourcemanager.resource-tracker.address linux-node1:8031 yarn.resourcemanager.admin.address linux-node1:8033 yarn.resourcemanager.webapp.address linux-node1:8088 yarn.nodemanager.resource.memory-mb 8192

7、 hadoopを他のノードにコピー
scp -r /home/hadoop/hadoop/ 192.168.0.90:/home/hadoop/ scp -r /home/hadoop/hadoop/ 192.168.0.91:/home/hadoop/ scp -r /home/hadoop/hadoop/ 192.168.0.92:/home/hadoop/
**8、 linux-node1 **でhadoopユーザーを使用してNameNodeを初期化します
/home/hadoop/hadoop/bin/hdfs namenode –format

echo $? #sudo yum –y install tree # tree /home/hadoop/dfs

9、 ハドゥープを開始
/home/hadoop/hadoop/sbin/start-dfs.sh /home/hadoop/hadoop/sbin/stop-dfs.sh

namenodeノードでプロセスを表示する

ps aux | grep --color namenode

DataNodeでプロセスを表示する

ps aux | grep --color datanode

10、 ヤーン分散コンピューティングフレームワークを開始します
[ hadoop@linux-node1 .ssh]$ /home/hadoop/hadoop/sbin/start-yarn.sh starting yarn daemons

NameNodeノードでプロセスを表示する

ps aux | grep --color resourcemanager

DataNodeノードでプロセスを表示する

ps aux | grep --color nodemanager
注:2つのスクリプトstart-dfs.shとstart-yarn.shは、start-all.shに置き換えることができます。
/home/hadoop/hadoop/sbin/stop-all.sh /home/hadoop/hadoop/sbin/start-all.sh

11、 職歴サービスを開始し、mapreduceステータスを表示します

NameNode上

[ hadoop@linux-node1 ~]$ /home/hadoop/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver starting historyserver, logging to /home/hadoop/hadoop/logs/mapred-hadoop-historyserver-linux-node1.out
12、 HDFS分散ファイルシステムのステータスを表示する
/home/hadoop/hadoop/bin/hdfs dfsadmin –report

ファイルブロック構成を表示します。ファイルはこれらのブロックで構成されます

/home/hadoop/hadoop/bin/hdfs fsck / -files -blocks

13、 WebページでHadoopクラスターのステータスを表示** HDFSステータスを表示**:[http://192.168.0.89:50070/](http://192.168.0.89:50070/)** Hadoopクラスターのステータスを表示**:[http://192.168.0.89:8088/](http://192.168.0.89:8088/)

Recommended Posts

実際のCentOSシステムにHadoopクラスターサービスを展開する
CentOS6.8はzookeeperクラスターを展開します
CentOSでHadoopを構築する
Centos7hadoopクラスターのインストールと構成
Centos7オペレーティングシステムをDockerにインストールする
Dockerをデプロイし、CentOSでNginxを構成します
CentOS6でのRHCSクラスターの簡単な実践
CentOS7システムでのJDKのインストールと構成
CentOS7はOpenLDAP + FreeRadiusを展開します
CentOS7はHadoop3.0.0をインストールします
セントスシステム管理
LinuxシステムにおけるCentOSとUbuntuの違い
CentOS7でGraylogオープンソースログ管理システムを展開する
仮想マシンへのCentOS6.4システムの詳細なインストール手順
CentOS7環境でのKubernetes(k8s)クラスターの迅速な展開