Apache Hadoopは、分散ストレージおよび分散プロセス用にJavaで記述されたオープンソースソフトウェアフレームワークであり、コンピュータークラスター全体に分散することで非常に大きなサイズのデータセットを処理します。
Hadoopモジュールは、ハードウェアの高可用性に依存するのではなく、アプリケーションレイヤーで障害を検出して処理するように設計されているため、高可用性サービスを提供します。
Hadoopフレームワークは、次のモジュールで構成されています。
- Hadoop Common –他のHadoopモジュールをサポートするライブラリとユーティリティの共通セットが含まれています
- Hadoop分散ファイルシステム(HDFS)–データを格納するJavaベースの分散ファイルシステムであり、アプリケーションに非常に高いスループットを提供します。
- Hadoop YARN –コンピューティングクラスター上のリソースを管理し、ユーザーのアプリケーションのスケジューリングに使用します。
- Hadoop MapReduce –大規模なデータ処理のためのフレームワークです。
このガイドは、CentOS 7、Ubuntu 18.04、Debian9にApacheHadoopをインストールするのに役立ちます。このガイドはUbuntu16.04でも機能するはずです。
前提条件
rootユーザーに切り替えます。
su-
または
sudo su-
Javaのインストール
Apache Hadoopには、Javaバージョン8のみが必要です。したがって、OpenJDKまたはOracleJDKのいずれかをインストールすることを選択できます。
読む: CentOS 7 /RHEL7にOracleJavaをインストールする方法
読む: Ubuntu18.04にOracleJavaをインストールする方法
読む: Debian9にOracleJavaをインストールする方法
ここで、このデモでは、OpenJDK8をインストールします。
### CentOS 7 / RHEL 7 ### #yum -y install java-1.8.0-openjdk wget ### Ubuntu 18.04 / 16.04&Debian 9 ### #apt update#apt install -y openjdk-8-jdk wget
Javaのバージョンを確認してください。
#java -version
出力:
openjdkバージョン"1.8.0_212"OpenJDKランタイム環境(ビルド1.8.0_212-b04)OpenJDK 64ビットサーバーVM(ビルド25.212-b04、混合モード)
Hadoopユーザーを作成し、パスワードなしの認証を有効にする
Apache Hadoopを構成して実行するために、通常のユーザーを作成することをお勧めします。したがって、hadoopという名前のユーザーを作成し、パスワードを設定します。
#useradd -m -d / home / hadoop -s / bin / bash hadoop#passwd hadoop
ユーザーを作成したら、パスワードなしのsshをローカルシステムに設定します。次のコマンドを使用してsshキーを作成します。
#su --hadoop $ ssh-keygen $ cat〜/ .ssh / id_rsa.pub>>〜/ .ssh / authorized_keys $ chmod 600〜/ .ssh / authorized_keys
ローカルシステムへのパスワードなしの通信を確認します。初めてsshを実行する場合は、yesと入力して、既知のホストにRSAキーを追加します。
$ ssh 127.0.0.1
ApacheHadoopをインストールする
Hadoopをダウンロード
Apache Hadoopページにアクセスして最新のHadoopパッケージをダウンロードするか、ターミナルで次のコマンドを発行してHadoopv3.2.0をダウンロードできます。
$ wget https://www-us.apache.org/dist/hadoop/common/stable/hadoop-3.2.0.tar.gz $ tar -zxvf hadoop-3.2.0.tar.gz $ mv hadoop -3.2.0 hadoop
Hadoopのインストール
Hadoopは3つのクラスターモードをサポートしています
- ローカル(スタンドアロン)モード–単一のJavaプロセスとして実行されます。
- 疑似分散モード–各Hadoopデーモンは個別のプロセスで実行されます。
- 完全分散モード–これは、少数のノードから非常に大きなクラスターまでの実際のマルチノードクラスターです。
環境変数の設定
ここでは、Hadoopを疑似分散モードで構成します。まず、〜/.bashrcファイルで環境変数を設定します。
export JAVA_HOME = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre ##システムに応じて変更してください エクスポートHADOOP_HOME= / home / hadoop / hadoop ##システムに応じて変更してください export HADOOP_INSTALL =$ HADOOP_HOMEexport HADOOP_MAPRED_HOME =$ HADOOP_HOMEexport HADOOP_COMMON_HOME =$ HADOOP_HOMEexport HADOOP_HDFS_HOME =$ HADOOP_HOMEexport HADOOP_YARN_HOME =$ HADOOP_HOME> PATH / bin _現在のセッションに環境変数を適用します。
$ source〜/ .bashrc構成ファイルの変更
Hadoop環境ファイルを編集します。
vi $ HADOOP_HOME / etc / hadoop / hadoop-env.shJAVA_HOME環境変数を設定します。
export JAVA_HOME =/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 / jreHadoopには多くの構成ファイルがあり、設定したクラスターモード(疑似分散)に応じて編集する必要があります。
$ cd $ HADOOP_HOME / etc / hadoopcore-site.xmlを編集します。
fs.defaultFS hdfs:// server.itzgeek.local :9000 hdfs-site.xmlを編集します。
dfs.replication 1 dfs.name.dir file :// / home / hadoop / hadoopdata / hdfs / namenode dfs.data.dir file:// / home / hadoop / hadoopdata / hdfs / datanode hadoopユーザーのホームディレクトリにNameNodeディレクトリとDataNodeディレクトリを作成します。
mkdir -p〜/ hadoopdata / hdfs / {namenode、datanode}mapred-site.xmlを編集します。
mapreduce.framework.name yarn ヤーンサイト.xmlを編集します。
yarn.nodemanager.aux-services mapreduce_shuffle 次に、次のコマンドを使用してNameNodeをフォーマットします。ストレージディレクトリを確認することを忘れないでください。
$ hdfs namenode -format出力:
。 。 ..。 .2019-05-12 06:38:42,066 INFO common.Storage:ストレージディレクトリ/ home / hadoop / hadoopdata / hdfs /namenodeが正常にフォーマットされました2019-05-1206:38:42,169 INFO namenode.FSImageFormatProtobuf:画像を保存していますファイル/home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000無圧縮を使用2019-05-1206:38:42,483 INFO namenode.FSImageFormatProtobuf:イメージファイル/ home / hadoop / hadoopdata / hdfs / namenode / current / fsimage .ckpt_0000000000000000000のサイズ401バイトが0秒で保存されました.2019-05-1206:38:42,501 INFO namenode.NNStorageRetentionManager:txid> =02019-05-12 06:38:42,516 INFO namenode.NameNode:で1つの画像を保持しますSHUTDOWN_MSG:/ *********************************************** ************* SHUTDOWN_MSG:server.itzgeek.local /192.168.1.10**********************でNameNodeをシャットダウンします************************************** /ファイアウォール
ApacheHadoopがファイアウォールを通過できるようにします。 rootユーザーとして以下のコマンドを実行します。
FirewallD:
Firewall-cmd --permanent --add-port =9870 / tcpfirewall-cmd --permanent --add-port =8088 / tcpfirewall-cmd --reloadUFW:
ufw allow 9870 / tcpufw allow 8088 / tcpufw reloadHadoopが提供する/sbinディレクトリ内のスクリプトを使用して、NameNodeデーモンとDataNodeデーモンを起動します。
$ start-dfs.sh出力:
[server.itzgeek.local] server.itzgeek.localでnamenodesを開始しています:警告:既知のホストのリストに「server.itzgeek.local、192.168.1.10」(ECDSA)を永続的に追加しました。datanodeslocalhostの開始:警告:永続的に既知のホストのリストに「localhost」(ECDSA)を追加しました。セカンダリネームノードの開始[server.itzgeek.local] 2019-05-12 06:39:14,171警告util.NativeCodeLoader:プラットフォームのネイティブhadoopライブラリを読み込めません。 ..該当する場合は組み込みのJavaクラスを使用するWebブラウザーを開き、以下のURLにアクセスしてNameNodeを参照します。
http://ip.ad.dre.ss:9870/ResourceManagerデーモンとNodeManagerデーモンを起動します。
$ start-yarn.sh出力:
resourcemanagerの開始nodemanagersの開始Webブラウザーを開き、以下のURLにアクセスしてResourceManagerにアクセスします。
http://ip.ad.dre.ss:8088/Hadoopシングルノードクラスターのテスト
アップロードを実行する前に、HDFSにディレクトリを作成しましょう。
$ hdfs dfs -mkdir / rajrajというHDFSディレクトリにファイルをアップロードしましょう。
$ hdfs dfs -put〜/ .bashrc / rajアップロードされたファイルは、 NameNodeに移動して表示できます。>>ユーティリティ>>ファイルシステムを参照 NameNode内。
http://ip.ad.dre.ss/explorer.html#/rajHDFSからローカルファイルシステムにファイルをコピーします。
$ hdfs dfs -get / raj / tmp /次のコマンドを使用して、ファイルとディレクトリを削除できます。
hdfs dfs -rm -f /raj/.bashrchdfs dfs -rmdir / raj結論
それで全部です。これで、単一ノードのHadoopクラスターが正常に構成され、Hadoopファイルシステムがテストされました。コメントセクションでフィードバックを共有してください。
CentOS 7 / Debian 9 / Ubuntu 16.04 / LinuxMint18にElasticSearchをインストールします サーバーログの監視– CentOS 7 /RHEL7にLog.ioをインストールしますCent OS