Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します

Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します

1. 環境整備

CentOS Linux リリース 7.5.1804 (コア)

インストール

フォルダを作成する

$ cd /home/centos
$ mkdir ソフトウェア
$ mkdirモジュール

インストールパッケージをソフトウェアフォルダにインポートする

$ CD ソフトウェア
# 次にファイルをドラッグします

ここで使用するインストールパッケージは

/home/centos/software/hadoop-3.1.3.tar.gz

/home/centos/software/jdk-8u212-linux-x64.tar.gz

$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ../モジュール
$ tar -zxvf hadoop-3.1.3.tar.gz -C ../モジュール

環境変数の設定

$ cd /etc/profile.d/
$ vim my_env.sh

システム変数を汚染しないように、環境変数スクリプトを独自に作成します。設定内容は以下のとおりです。

#JAVA_HOME、パス 
# export はグローバル変数に昇格されます。パスが私のものと異なる場合は、ここで独自のパスを使用することを忘れないでください export JAVA_HOME=/home/centos/module/jdk1.8.0_212
エクスポート PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
HADOOP_HOME=/home/centos/module/hadoop-3.1.3 をエクスポートします。
PATH=$PATH:$HADOOP_HOME/bin をエクスポートします。
PATH=$PATH:$HADOOP_HOME/sbin をエクスポートします

次に、保存して終了します (vim の使い方がわからない場合は、vim の基本的な使い方を読んでください。ここでは詳細には触れません)。

環境変数を有効にするためにソースを実行してみましょう

$ ソース /etc/profile

成功するかどうかテストする

$ hadoop バージョン

$ ジャワ

上記のインターフェースが表示されれば問題ありません。それでも成功しない場合は、次の 2 つのチェックを実行できます。

  • java と hadoop のインストール ディレクトリの下の bin ディレクトリに移動し、それぞれを実行して、成功するかどうかを確認します。失敗した場合は、インストール パッケージの解凍に問題があり、ソフトウェア自体が正常にインストールされていないことを意味します。削除して再インストールしてください。
  • 操作が成功した場合、環境変数が正常に構成されていないことを意味します。すると環境変数のパス設定が確認できます。問題がなければ再起動してみてください。

パスワードなしのSSH

擬似クラスタではありますが、ローカルマシンからローカルマシンへの接続にはパスワードが必要なので、sshパスワードフリーの設定が必要です。

$ ssh-keygen -t rsa

プロンプトが表示されたらEnterキーを押し続けます。秘密鍵を生成したら

$ ssh-copy-id ローカルホスト名

ホストファイルを構成する

vi /etc/hosts
#ここで私が保持している構成は、マスターがTencent Cloudのイントラネットで構成されていることです。外部ネットワークが構成されている場合、EclipseクライアントはHadoopに接続できません。
::1 ローカルホスト.ローカルドメイン ローカルホスト
::1 ローカルホスト6.ローカルドメイン6 ローカルホスト6
172.16.0.3 マスター
127.0.0.1 ローカルホスト

ホスト名を変更する

vi /etc/sysconfig/ネットワーク 
#HOSTNAMEをmasterに変更
ホスト名=マスター

ホスト名を変更する

$ hostnamectl --static ホスト名マスターを設定する

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

$ systemctl 無効にするfirewalld #永続的

2. Hadoopを構成する

設定ファイル

Hadoop設定ファイルエリアに入ると、すべての設定ファイルがこのフォルダにあります

$ cd /home/centos/module/hadoop-3.1.3/etc/hadoop

設定したいファイルは主に

コアサイト.xml

  • fs.defaultFS はローカル マシンのアクセス パスです。
  • hadoop.tmp.dirはデータ保存パスです
  • イントラネット アドレスがわからない場合は、Tencent Cloud の Web サイトで確認してください。

hdfs-サイト.xml

  • dfs.replicationはデータのコピー数を指し、デフォルトは3です。
  • 疑似クラスターなので1に設定します。

糸サイト.xml
マップレッドサイト.xml
hadoop-env.sh

  • expert JAVA_HOME=JDKのインストールパス

後は手順に従ってください。

$ vim コアサイト.xml

<構成>
  <プロパティ>
    <name>fs.defaultFS</name>
    <value>hdfs://Tencent Cloud イントラネット IP アドレス:9820</value>
  </プロパティ>
 
  <プロパティ>
    <name>hadoop.tmp.dir</name>
    <値>/home/centos/module/hadoop-3.1.3/data/tmp</値>
  </プロパティ>
	<!-- Web インターフェースを通じて HDFS を操作する権限 -->
  <プロパティ>
    <name>hadoop.http.staticuser.user</name>
    <値>ルート</値>
  </プロパティ>
    <!-- Hive 互換性の設定は後で -->
  <プロパティ>
    <name>hadoop.proxyuser.root.hosts</name>
    <値>*</値>
  </プロパティ>
  <プロパティ>
    <name>hadoop.proxyuser.root.groups</name>
    <値>*</値>
    </プロパティ>
</構成>

$ vim hdfs-site.xml

<構成>
  <プロパティ>
    <name>dfs.replication</name>
    <値>1</値>
  </プロパティ>
  <プロパティ>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Tencent Cloud イントラネット IP アドレス: 9868</value>
  </プロパティ>
</構成>

$ vim hadoop-env.sh

JAVA_HOME=/home/centos/module/jdk1.8.0_212 をエクスポートします。

$ vim 糸サイト.xml

<構成>

  <!-- Reducer がデータを取得します -->
  <プロパティ>
    <name>yarn.nodemanager.aux-services</name>
    <値>mapreduce_shuffle</値>
  </プロパティ>
  <!-- YARN の ResourceManager のアドレスを指定します -->
  <プロパティ>
    <name>yarn.resourcemanager.ホスト名</name>
    <value>マスター</value>
  </プロパティ>
<!-- 環境変数は、NodeManager のコンテナ環境プロパティから継承されます。MapReduce アプリケーションの場合、デフォルト値に加えて hadoop op_mapred_home を追加する必要があります。属性値は以下の通りです -->
  <プロパティ>
    <name>yarn.nodemanager.env-whitelist</name>
 <値>JAVA_HOME、HADOOP_COMMON_HOME、HADOOP_HDFS_HOME、HADOOP_CONF_DIR、CLASSPATH_PREPEND_DISTCACHE、HADOOP_YARN_HOME、HADOOP_MAPRED_HOME</値>
    </プロパティ>
    <!-- プログラム実行時に Yarn が仮想メモリ制限を超え、コンテナが強制終了される問題を解決します -->
  <プロパティ>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <値>偽</値>
  </プロパティ>
  <プロパティ>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <値>偽</値>
  </プロパティ>
    <!-- Hive 互換性の設定は後で -->
  <プロパティ>
    <name>yarn.scheduler.最小割り当て MB</name>
    <値>512</値>
  </プロパティ>
  <プロパティ>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <値>4096</値>
  </プロパティ>
  <プロパティ>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <値>4096</値>
    </プロパティ>
  
  <!-- ログ集約を有効にする-->
  <プロパティ>
    <name>yarn.log-aggregation-enable</name>
    <値>真</値>
  </プロパティ>
  <!-- アクセス パス -->
  <プロパティ> 
    <name>yarn.log.server.url</name> 
    <値>http://172.17.0.13:19888/jobhistory/logs</値>
  </プロパティ>
  <!-- 7 日間保存 -->
  <プロパティ>
    <name>yarn.log-aggregation.retain-seconds</name>
    <値>604800</値>
  </プロパティ>
</構成>

履歴サーバーの設定

$ vim mapred-site.xml

<!-- 履歴サーバーのアドレス-->
<プロパティ>
  <name>mapreduce.jobhistory.address</name>
  <value>Tencent Cloud イントラネット IP:10020</value>
</プロパティ>

<!-- 履歴サーバーの Web アドレス -->
<プロパティ>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>Tencent Cloud イントラネット IP:19888</value>
</プロパティ>

初期化

NameNode は最初の起動時にフォーマットする必要がありますが、その後は必要ありません。

$ hdfsネームノード -フォーマット

初期化後、hadoop インストール フォルダーに data と logs の 2 つのフォルダーが表示され、初期化が成功したことがわかります。

次に、クラスターを起動しましょう。

$ start-dfs.sh

起動が完了しました。異常情報はありません。プロセスを確認してください

[ルート@VM_0_13_centos hadoop]# jps
20032 日本
30900 データノード
31355 セカンダリネームノード
30559 ネームノード

無事にスタートしました〜!

ワンクリックスタート

上記のすべてが問題なければ、ワンクリックでクラスターを起動するスクリプトを作成し、bin ディレクトリに新しいスクリプトを作成できます。

$ vim マイクラスタ

次のコンテンツを追加します

#!/bin/bash
ケース$1
"始める")
#dfs 糸の歴史
dfs.shを起動します
スタートヤーン
mapred --daemon 履歴サーバを起動する
;;
"停止")
# dfs 糸の歴史
停止-dfs.sh
停止ヤーン.sh
mapred --daemon 履歴サーバを停止する
;;
*)
echo "args がエラーです! start または stop を入力してください"
;;
エサック

スクリプト権限を設定する

$ chmod u+x mycluster

スクリプトの使用を開始する

$ mycluster を起動します

$ jps
23680 ノードマネージャー
24129 ジョブ履歴サーバー
22417 データノード
24420 jps
22023 ネームノード
23384 リソースマネージャー
22891 セカンダリネームノード

3. HDFsを表示する

セキュリティグループルールを構成する

次の操作を実行する前に、セキュリティ グループ ルールのプロトコル ポートで使用する次のポートを追加します。

ポート番号:

  • ネームノードポート: 9870
  • セカンダリNNポート: 9868
  • 職歴: 19888

Hadoop ウェブページ

ブラウザに以下を入力してください:騰訊云公網地址:端口號対応するWebインターフェースに入ります

セカンダリネームノードのインターフェース表示が正常ではないことが判明しました。これは、hadoop3 の dfs-dust.js の time 関数が誤って使用されていたことが原因です。手動で修正してみましょう。

まずクラスタをシャットダウンする

$ mycluster を停止する

ファイルを変更する

$ vim /home/centos/module/hadoop-3.1.3/share/hadoop/hdfs/webapps/static/dfs-dust.js

図に示すように、約 61 行目で次のように変更します。

新しい Date(Number(v)).toLocaleString() を返します。

クラスタを再起動します

$ mycluster を起動します

セカンダリネームノードの Web インターフェースが正常であることがわかります。

HDFSのテスト

ファイルをアップロードして楽しみましょう。

hadoopディレクトリに新しいフォルダを作成する

$ mkdir temdatas

フォルダに入り、新しいテストファイルを作成します

$ vim テキスト.txt

何でも好きなように書いて保存すれば、ファイルのアップロードを開始できます。

$ hdfs dfs -put text.txt /

ウェブページを確認してアップロードに成功しました〜

このファイルをもう一度ダウンロードしてみてください

$ hdfs dfs -get /text.txt ./text1.txt

成功しました〜
Hadoop クラスターが構築されたので、自分でも楽しいことをしてみましょう〜!

WordCount のケーススタディ

ウェブ上で新しいフォルダ入力を作成する

書いたさまざまな単語のファイルをアップロードして単語統計を取る

#または、vimで書いて自分でアップロードすることもできます $ hdfs dfs -put wordcount.txt /input

次に、単語数ケースをテストします。出力フォルダーは存在できないことに注意してください。

$ hadoop jar /home/centos/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar ワードカウント /input /output

走った後、結果を見てみましょう

# hdfs ファイル [root@master mydata] をプルします # hdfs dfs -get /output ./
# 結果を表示 [root@master output]# cat part-r-00000 
2つ
b3 3 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 31 32 33 34 35 36 37 38 39 49 40 51 42 43 52 44 53 46 54 55 67 78 89 90
2 2ページ
1 d
1 1
1 1

この時点で、Hadoop を自由に操作することができます。

もちろん、試してみたら、まだ解決されていない小さな問題があることがわかります。Web上のファイルをクリックして先頭または末尾を表示しても、表示できず、ダウンロードもできません。仮想マシンをインストールしたときにはこのようなことは起きませんでしたが、何が起こったのかはまだ調査中です。何が起こっているのか知っている人がいたら、メッセージを残してください。

Tencent Cloud で Hadoop 3.x 擬似クラスターを構築する方法についての記事はこれで終わりです。Tencent Cloud で Hadoop 3.x 擬似クラスターを構築する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Hadoop マルチジョブ並列処理の詳細な例
  • 一般的な Hadoop エラーと解決策の詳細な説明
  • リモート デバッグ コードに IntelliJ IDEA を使用するように Hadoop を構成する方法
  • Spring と統合された Hadoop の使用方法に関する詳細なチュートリアル (ビッグ データのクイック スタート)
  • Windows で IDEA を使用して Hadoop 開発環境を構築する詳細な方法
  • CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします
  • DockerでHadoopを実行しイメージを作成する方法
  • Hadoopを使用してファイルから指定されたコンテンツを抽出する方法を教えます

<<:  Vueはプログレスバーの変更効果を実現します

>>:  MySQL トランザクションの概念と使用法の詳細な説明

推薦する

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

CSS3 3Dクールキューブ変形アニメーションの実装

私はコーディングが大好きです。コーディングすると幸せになります!みなさんこんにちは、Counterで...

Jenkinsはマイクロサービスをパッケージ化してDockerイメージを構築し、実行します。

目次環境の準備始める1. GitLabリモートリポジトリがマイクロサービスプロジェクトを作成する2....

Ubuntu 18.04 が VMware 仮想マシンでネットワークに接続できない問題の解決策

仮想マシン内のUbuntu 18.04がネットワークに接続できない問題の解決策は次のとおりですVMw...

ubuntu15.10 での hadoop2.7.2 の詳細なインストールと設定

Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...

VantフレームワークをWeChatアプレットに導入するプロセス全体の記録

序文WeChat ミニプログラムのネイティブ UI が少し物足りないと感じることがあるので、サードパ...

Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)

まずは緑色の無料インストール版のMySQLをダウンロードします。任意のフォルダに入れて構いません。今...

Dockerのセキュリティについて Docker-TLS暗号化通信の問題

目次1. Dockerのセキュリティ問題2. Dockerアーキテクチャの欠陥とセキュリティメカニズ...

MySQL テーブルデータのインポートとエクスポートの例

この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...

インタラクションデザインと心理学の驚くべきつながり18選

デザイナーは心理学を理解する必要があるデザイナーが知るべき心理学という本は非常に興味深いです。まず、...

プレーヤー機能を実現するためのvue + element uiのサンプルコード

効果画像のない表示は単なる空虚な言葉です。 1. オーディオをベースにし、elementUI と組み...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

Macシステムをインストールした後にVMWareがフルスクリーンで表示できない問題を解決する

システム: VMTOOLs ダウンロード:リンク: https://pan.baidu.com/s/...