コマンドメモ
参考サイト
VagrantでHadoop Clusterを構築する方法まとめ
# iptables –flush
・ユーザ作成
useradd hadoop -s /bin/bash -m
・JDK インストール
yum -y install openjdk-8-jdk
yum -y install java-1.8.0-openjdk-devel
・Hadoop インストール
# hadoop バイナリ取得
$ hadoop-3.3.6.tar.gz
# hadoop バイナリ展開
# cd /opt
# tar xvf /tmp/hadoop-3.3.6.tar.gz
$ sudo chown -R hadoop:hadoop ./hadoop-3.3.6
# シンボリックリンク作成
# ln -s hadoop-3.3.6 hadoop
# chown -h hadoop:hadoop hadoop
・hosts
/etc/hosts に以下のような行があったら削除します。
削除しないと MasterNode-SlaveNode 間でうまく通信できません。
127.0.0.1 localhost
127.0.1.1 hostname
そして以下のように hosts を修正します。
$ cat /etc/hosts
192.168.33.11 master1
192.168.33.21 slave1
192.168.33.22 slave2
・SSH
MasterNode から SlaveNode に SSH 接続できるように設定します。
まず MasterNode で鍵を作成します。
# hadoop@master1
# hadoop ユーザで公開鍵を作成する
$ sudo su – hadoop
$ ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat <
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
LogLevel quiet
EOL
$ chmod 600 ~/.ssh/config
$ cat ~/.ssh/id_rsa.pub
・各 SlaveNode で公開鍵を登録します。
$ ssh-copy-id vm2
各 SlaveNode でconfigを作成
$ cat <
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
LogLevel quiet
EOL
・Hadoop 設定(全サーバ)
変数設定
シェルの設定で Java と Hadoop の PATH を通します。
$ sudo su – hadoop
$ cat << 'EOF' >> ~/.bashrc
#export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
EOF
$ source ~/.bashrc
$ java -version
—————————————————————————
openjdk version “1.8.0_222”
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
$ hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /opt/hadoop-2.10.0/share/hadoop/common/hadoop-common-2.10.0.jar
—————————————————————————
・設定ファイル編集
/opt/hadoop/etc/hadoop/ 配下にある以下の設定ファイルを編集します。
hadoop-config.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
・hadoop-config.sh
vi /opt/hadoop/libexec/hadoop-config.sh
# 先頭に追記する
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
・core-site.xml
core-site.xml で NameNode を設定します。
今回は master1 を NameNode とします。
vi /opt/hadoop/etc/hadoop/core-site.xml
・hdfs-site.xml
hdfs-site.xml で以下の設定をします。
/レプリカ数
/NameNode のデータ格納先
/DataNode のデータ格納先
# hadoop@master1
$ vi /opt/hadoop/etc/hadoop/hdfs-site.xml
・mapred-site.xml
分散処理フレームワークに YARN を指定します。
# hadoop@master1
$ cp /opt/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/etc/hadoop/mapred-site.xml
$ vi /opt/hadoop/etc/hadoop/mapred-site.xml
#
#
#
#
・yarn-site.xml
ResourceManager を指定します。
# hadoop@master1
$ vi /opt/hadoop/etc/hadoop/yarn-site.xml
・resource-types.xml
resource-types.xml を指定します。
・slaves
SlaveNode がどれかを指定します。
# hadoop@master1
$ cat << 'EOF' > /opt/hadoop/etc/hadoop/slaves
vm2
EOF
・設定ファイル配布
全ての設定ファイルを編集したら各 SlaveNode に配布します。
# hadoop@master1
$ for node in slave1 slave2 slave3; do scp /opt/hadoop/libexec/hadoop-config.sh $node:/opt/hadoop/libexec/hadoop-config.sh; done;
$ for node in slave1 slave2 slave3; do scp /opt/hadoop/etc/hadoop/* $node:/opt/hadoop/etc/hadoop/; done;
scp /opt/hadoop/libexec/hadoop-config.sh vm2:/opt/hadoop/libexec/hadoop-config.sh
scp /opt/hadoop/etc/hadoop/* vm2:/opt/hadoop/etc/hadoop/
・NameNode ディレクトリ作成
# hadoop@master1
$ mkdir -p /opt/hadoop/name
$ chown -R hadoop:hadoop /opt/hadoop/
・DataNode ディレクトリ作成
# hadoop@slave1
# hadoop@slave2
# hadoop@slave3
$ sudo mkdir -p /opt/hadoop/data
$ sudo chown -R hadoop:hadoop /opt/hadoop/
・NameNode フォーマット
Hadoop の設定が完了したら NameNode をフォーマットします。
# hadoop@master1
$ /opt/hadoop/bin/hdfs namenode -format
・HDFS 起動
# hadoop@master1
hdfs –daemon start namenode
hdfs –daemon stop namenode
・YARN 起動
# hadoop@master1
# hadoop@master1
$ yarn –daemon start resourcemanager
$ yarn –daemon stop resourcemanager
・datanode 起動
# hadoop@slave
hdfs –daemon start datanode
hdfs –daemon stop datanode
・確認
# hadoop@master1
$ hdfs dfsadmin -report
—————————————————————————
[hadoop@vm1 sbin]$ hdfs dfsadmin -report
Configured Capacity: 107321753600 (99.95 GB)
Present Capacity: 57894333135 (53.92 GB)
DFS Remaining: 57893515264 (53.92 GB)
DFS Used: 817871 (798.70 KB)
DFS Used%: 0.00%
Replicated Blocks:
Under replicated blocks: 2
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Low redundancy blocks with highest priority to recover: 0
Pending deletion blocks: 0
Erasure Coded Block Groups:
Low redundancy block groups: 0
Block groups with corrupt internal blocks: 0
Missing block groups: 0
Low redundancy blocks with highest priority to recover: 0
Pending deletion blocks: 0
————————————————-
Live datanodes (2):
Name: 192.168.56.106:9866 (vm1)
Hostname: vm1
Decommission Status : Normal
Configured Capacity: 53660876800 (49.98 GB)
DFS Used: 289197 (282.42 KB)
Non DFS Used: 24155620947 (22.50 GB)
DFS Remaining: 29504966656 (27.48 GB)
DFS Used%: 0.00%
DFS Remaining%: 54.98%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 0
Last contact: Thu Oct 12 15:34:28 JST 2023
Last Block Report: Thu Oct 12 15:34:19 JST 2023
Num of Blocks: 2
Name: 192.168.56.107:9866 (vm2)
Hostname: vm2
Decommission Status : Normal
Configured Capacity: 53660876800 (49.98 GB)
DFS Used: 528674 (516.28 KB)
Non DFS Used: 25271799518 (23.54 GB)
DFS Remaining: 28388548608 (26.44 GB)
DFS Used%: 0.00%
DFS Remaining%: 52.90%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 0
Last contact: Thu Oct 12 15:36:56 JST 2023
Last Block Report: Thu Oct 12 15:36:38 JST 2023
Num of Blocks: 14
—————————————————————————
・タスク実行
$ hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 10000
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 2 6
https://www.informit.com/articles/article.aspx?p=2190194&seqNum=3
yarn jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 2 6
・Mster起動
yarn –daemon start resourcemanager; \
hdfs –daemon stop namenode; \
hdfs –daemon start namenode; \
yarn –daemon start resourcemanager; \
jps
・Slave起動
hdfs –daemon stop datanode; \
hdfs –daemon start datanode; \
jps
・確認
# hadoop@master1
$ hdfs dfsadmin -report
・Web
http://vm1:8088/proxy/application_1697092392577_0002/
http://vm1:8088/
/////////////////////////////////////////////////////////////////////////////////////
https://qiita.com/uturned0/items/8c9d78d6e371efe0c2c4