準備:
サーバー構成(6ユニット)、1 + 1 + 4クラスター構成、具体的な情報は次のとおりです:
168.61.1.11(NameNodeおよびResourceManagerとして使用)、168.61.1.12、168.61.1.13、168.61.1.14、168.61.1.15 、168.61.1.16(DataNodeおよびNodeManagerとして使用))。
注:HDFSHA QJMは将来インストールされます。ジャーナルノードは11、12、および13にインストールされる予定です。ノード12はNameNodeとしても機能します。
一般的な手順は次のとおりです。
次の構成は、最初にマスターでのみ操作され、次にSCPを使用して他のサーバーにコピーします。
1)最新のHadoopイメージをダウンロードします:hadoop-3.3.0、対応するディレクトリに解凍します;
2)/ etc / hosts、/ etc / profile、hadoop-en.sh、yarn-en.sh、mapreduceで環境変数を構成します-env。sh;
3)パスワードなしのログインを設定します;
4)対応するファイルを構成します:workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml;
5)開始クラスター;
1. / etc / hostsを変更します
168.61.1.11 hadoop01
168.61.1.12 hadoop02
168.61.1.13 hadoop03
168.61.1.14 hadoop04
168.61.1.15 hadoop05
168.61.1.16 hadoop06
2. jdk8をインストールします(省略)
3. / etc / profileを変更します
JAVA_HOME=/usr/local/tools/jdk1.8.0_231
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
Hadoopは、デーモンスレッドが/ etc / profileで構成されたJAVA_HOMEパスを読み取れない
ため、hadoop-env.sh、yarn-env.sh、mapred-env.shでJAVA_HOMEを構成して、JAVA_HOMEを読み取れるようにします。
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/local/tools/jdk1.8.0_231
master1の/etc/profile、hadoop-env.sh、yarn-env.sh、mapred-env.shを他のサーバーに転送し
てから、各サーバーにログインします:source / etc / profile、。/ hadoop-env。 sh、。/ yarn-env.sh、。/ mapred-env.sh。
4.6台のマシンのSSH相互信頼
sshは、対応するキーペアを生成します:id_rsa秘密キーとid_rsa.pub公開キー
ssh-keygen -t rsa -P ''
注:対話型操作を回避するには、ssh-keygen -t rsa -P '' -f〜 / .ssh / id_rsaコマンドを使用します。
デフォルトでは、/ current user / .ssh(/root/.sshまたは/home/user/.ssh)の下に存在します。
公開鍵をマスターノード上の特定のファイルauthorized_keysにコピーします。
cat id_rsa.pub >> authorized_keys
ローカルのパスワードなしのログイン設定が成功するかどうかを試してください。
ssh localhost #第一次登陆需要确定,输入yes
問題がない場合は、他のサーバーを構成します。実際、必要なのはローカルmaster1のid_rsa.pubを他のサーバーにコピーすることだけです。ここで、ssh-copy-idコマンドを選択して他のサーバーに送信します。
# ssh-copy-id appadmin@hadoop02
# ssh-copy-id appadmin@hadoop03
# ssh-copy-id appadmin@hadoop04
# ssh-copy-id appadmin@hadoop05
# ssh-copy-id appadmin@hadoop06
5.ファイアウォールをオフにするか、6台すべてのマシンのIPアドレスをホワイトリストに追加します
[root@hadoop01 opt]# systemctl stop firewalld
[root@hadoop01 opt]# systemctl disable firewalld
6.Hadoop環境を構成します
主に4つの構成ファイルを変更します:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.0/tmp</value>
</property>
</configuration>
hdfs-site.xmlを構成します
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/nn,file://${hadoop.tmp.dir}/dfs/nn2</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/edits</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/dn</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
ヤーンサイト.xmlを構成します。いくつかのマシンの構成が異なることに注意してください。
以下は、ResourceManagerの構成情報です。
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>{hadoop.tmp.dir}/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/opt/hadoop-3.3.0/tmp/yarndata/logs</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>${hadoop.tmp.dir}/nm-local-dir</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>16</value>
<description>提交一个任务允许申请的最大cpu核数</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>40960</value>
<description>提交一个任务允许申请的最大内存(注意结合其他node节点的yarn.nodemanager.resource.memory-mb ,不要超过它)
</description>
</property>
</configuration>
NodeManagerの構成情報は次のとおりです(1台のマシンで構成した後、他のNodeManagerマシンにコピーします)
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value>
<description>
节点使用的最大内存(结合host-155的yarn.scheduler.maximum-allocation-mb)
</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>{hadoop.tmp.dir}/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/opt/hadoop-3.3.0/tmp/yarndata/logs</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>${hadoop.tmp.dir}/nm-local-dir</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.hostname</name>
<value>hadoop06</value>--#其它机器注意修改这个名字
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>16</value>
<description>节点使用的cpu核数</description>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
</configuration>
ワーカーの構成(各データノードで構成)
hadoop02
hadoop03
hadoop04
hadoop05
hadoop06
/ etc / profileを変更します
JAVA_HOME=/usr/local/tools/jdk1.8.0_231
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
HADOOP_HOME=/opt/hadoop-3.3.0
PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH
export PATH
〜/ .bash_profileを変更します(スクリプトのこの部分はプロファイルにマージすることもできます)
JAVA_HOME=/usr/local/tools/jdk1.8.0_231
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
HADOOP_HOME=/opt/hadoop-3.3.0
PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH
export PATH
7、クラスターを開始します
1)namenodeをフォーマットします。
hdfs namenode -format
2)hdfsクラスターを開始します。
/opt/hadoop-3.3.0/sbin/start-dfs.sh
3)ヤーンクラスターを開始します。
/opt/hadoop-3.3.0/sbin/start-yarn.sh
4)起動結果を表示する:
hadoop01で、jpsは次を確認できます。
[appadmin@168-61-1-11 sbin]$ jps
16610 Jps
28931 NameNode
30503 ResourceManager
他のノードでは、jpsは以下を見ることができます:
[appadmin@168-61-1-16 hadoop]$ jps
17556 DataNode
2983 Jps
18379 NodeManager
5)管理ノードにアクセスします。
HDFS WEB管理:http://168.61.1.11:9870 /
糸のWEB管理:http://168.61.1.11:8088 /