Hadoop

Hadoop構築メモ(MiracleLinux)

2023-10-08

・SELINUX無効化
root ユーザーとしてログインします。
/etc/selinux ディレクトリーにある config ファイルを編集します。
SELINUX の値を permissive または disabled 状態に変更します。 …
変更を保存します。

・Firewalld無効化
systemctl stop firewalld
systemctl disable firewalld

##################################################################
VirtualBox Ubuntu-Hadoop(ubuntu-ja-20.04.1)
・User muraoka

・キーリング認証パスワード:1956
・ソフトウエアのアップデート

/root/MIRACLE-LINUX-8-6-x86_64
/run/media/root/MIRACLE-LINUX-8-6-x86_64
/run/media/root/VBox_GAs_7.0.6
/run/media/root/VBox_GAs_7.0.6/VBoxLinuxAdditions.run

yum -y update
yum -y update kernel*
yum -y install kernel-devel kernel-headers gcc gcc-c++
yum -y install perl make bzip2 gzip unzip tar
yum -y install kernel-headers
yum -y install kernel-devel

// スクリプトを実行します。
# ./VBoxLinuxAdditions.run

##################################################################
MiracleLinux8.6_001
M:\VirtualBox\MiracleLinux8.6_001

M:\VirtualBox\MiracleLinux8.6_001
10.0.2.15
192.168.56.102
255.255.255.0

MiracleLinux8.6_001 192.168.56.102
MiracleLinux8.6_002 192.168.56.103
MiracleLinux8.6_003 192.168.56.104

hostnamectl set-hostname ml86_hdp01
hostnamectl set-hostname miracleLinux8.6 ml86_hdp01
hostnamectl set-hostname miracleLinux8.6 ml86_hdp02

##################################################################
■■「素のHadoop」をインストールして、簡単な処理を実行する
https://atmarkit.itmedia.co.jp/ait/articles/1701/01/news014.html

■JDK
https://www.oracle.com/java/technologies/downloads/

・x64 Compressed Archive 188.04 MB
https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz (sha256)

Upload
tar xvfz jdk-21_linux-x64_bin.tar.gz
mv jdk-21 /usr/local
-> /usr/local/jdk-21/bin/java –version

##################################################################
■Apache Hadoopのインストール
https://www.apache.org/dyn/closer.cgi/hadoop/common/
https://dlcdn.apache.org/hadoop/common/stable/

useradd hadoop
passwd hadoop
-> hadoop

Upload hadoop-3.3.6.tar.gz
tar xvfz hadoop-3.3.6.tar.gz
mkdir /usr/local/apache_proj
mv hadoop-3.3.6 /usr/local/apache_proj
chown hadoop:hadoop -R /usr/local/hadoop-3.3.6

su – hadoop
vi .bach_profile

export JAVA_HOME=/usr/local/jdk-21
export HADOOP_INSTALL=/usr/local/hadoop-3.3.6
export PATH=$HADOOP_INSTALL/bin:$JAVA_HOME/bin:$PATH

hadoop version

$ hadoop [コマンド] [共通オプション] [コマンドオプション]

コマンドの説明
$ hadoop

Hadoopのジョブに関する操作説明
$ hadoop jpb

表3-1 hadoopコマンドで利用する主なコマンド コマンド 説明
jar jarファイルを実行するためのコマンド
fs HDFSを操作するためのコマンド
job Hadoopのジョブを扱うためのコマンド
version Hadoopのバージョンを表示するコマンド

表3-2 hadoopコマンドで利用できる共通オプション オプション 説明
-conf 設定ファイルのパスを指定する
-D 特定の設定値を上書きしてhadoopに渡せる(property=value)
-fs ネームノードを指定する
-jt ジョブトラッカーを指定する
-files Hadoopクラスタに指定したカンマ区切りのファイルを配置する
-archives Hadoopクラスタに指定したカンマ区切りのアーカイブを展開して配置する
-libjars カンマ区切りで指定したjarファイルをclasspathに含める

##################################################################
スタンドアロンモード

##################################################################
サポートしているファイルシステム

・HDFS
・S3ネイティブファイルシステム(s3n://xxx)
・S3ブロックファイルシステム(s3://xxx)
・ローカルファイルシステム

##################################################################
■sshの設定(passwordなしでsshログイン(scp)する)
https://qiita.com/hnishi/items/5dec4c7fca9b5121430f
パスなしでのsshができるよう設定する
(1) ssh-keyを作る。
$ ssh-keygen -t rsa
すると、
Enter file in which to save the key (/home//.ssh/id_rsa):
と、「どこに鍵を保存しますか」と言われるので、特に問題がなければEnterを押してデフォルトのディレクトリ(~/.ssh/)に保存する。
次に、パスフレーズの設定を要求される
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
ここでは、パスフレーズなしにしたいので、何も入力せずに、Enterを2回押す。
$ ls ~/.ssh
id_rsa id_rsa.pub
これで鍵が~/.sshの中にできた。

(2) sshしたいサーバー側に公開鍵(public key)を覚えさせる。
$ ssh-copy-id -i ~/.ssh/id_rsa.pub @:
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.56.103
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.56.102

ユーザーのパスワードが要求されるので入力すると、
サーバー側にログインして、~/.ssh/authorized_keysというファイルの中にpublic keyが保存されていることが確認できる。

##################################################################
■■Hadoopの環境を作ってみよう!
https://gihyo.jp/admin/serial/01/rd_trend/0008

■ディレクトリの設定
hadoopで必要なデータ保存ディレクトリやpidファイルの場所の設定をします。
全てのサーバで以下のコマンドを実行します。
# mkdir /usr/local/hdfs
# chown -R hadoop:hadoop /usr/local/hdfs

vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/xx -> export JAVA_HOME=/xx

##################################################################
■■CentOS7 で Apache Hadoop の完全分散モードを使ってみる

■Java
yum -y install epel-release
yum -y install openssh-clients rsync wget java-1.8.0-openjdk-devel sshpass
yum -y install java-1.8.0-openjdk-devel

vi $HADOOP_HOME/etc/hadoop/slaves
ml86_hdp02
ml86_hdp03

■設定ファイル編集
☆core-site.xml
cp -p $HADOOP_HOME/etc/hadoop/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml.20231009

マスターノードを指定
—————————————————-
fs.defaultFS
hdfs://192.168.56.102:9000

—————————————————-
☆hdfs-site.xml
cp -p $HADOOP_HOME/etc/hadoop/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml.20231009

HDFS のレプリケーション数、セカンダリネームノードのエンドポイント
—————————————————-
dfs.replication
2

—————————————————-

☆mapred-site.xml
cp -p $HADOOP_HOME/etc/hadoop/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml.20231009

—————————————————-
mapreduce.framework.name
yarn

—————————————————-

☆yarn-site.xml
cp -p $HADOOP_HOME/etc/hadoop/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml.20231009

—————————————————-
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
ml86_hdp01


—————————————————-
設定ファイルをスレーブノードに配布

scp $HADOOP_HOME/etc/hadoop/* ml86_hdp01:$HADOOP_HOME/etc/hadoop/
scp $HADOOP_HOME/etc/hadoop/* ml86_hdp02:$HADOOP_HOME/etc/hadoop/
scp $HADOOP_HOME/etc/hadoop/* ml86_hdp03:$HADOOP_HOME/etc/hadoop/

■クラスタを構築する
※マスターノードで実施
・HDFS をフォーマット
$ $HADOOP_HOME/bin/hdfs namenode -format

・HDFS 関連のデーモンを起動
※事前に「start-dfs.sh」に「」を挿入する
$ cd $HADOOP_HOME/sbin
$ ./start-dfs.sh

$ jps

XEC_DIR=”${bin}/../libexec”

##################################################################
hadoop@localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).