Hadoop-3.1.3安裝


0.創建用戶並付權限

sudo useradd iwbd
sudo passwd iwbd

配置iwbd用戶具有root權限

修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
iwbd ALL=(ALL) ALL

centos下不能直接vi,執行以下步驟

   修改sudoers文件權限, 一般存放在/etc下.
    chmod u+w /etc/sudoers
   修改sudoers文件, 找到 root ALL=(ALL) ALL 這一行, 在下面添加 用戶名 ALL=(ALL) ALL 即可。
    修改sudoers文件權限, 取消寫權限.
    chmod u-w /etc/sudoers

在/opt目錄下創建文件夾

(1)在/opt目錄下創建module、software文件夾
sudo mkdir module
sudo mkdir software
(2)修改module、software文件夾的所有者cd
sudo mkdir /opt/module /opt/software
sudo chown iwbd:iwbd /opt/module /opt/software

 

1. 解壓安裝文件到/opt/module下面

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

2. 將Hadoop添加到環境變量

#打開/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#讓修改后的文件生效
source /etc/profile

3、完全分布式運行模式

3.1 xsync集群分發腳本

3.2 SSH無密登錄配置(略)

ssh免密碼登錄配置方法
3.2.1 各服務器切換到要免密的用戶
執行 ssh-keygen -t rsa 一路回車
3.2.2 在A服務器 進入.ssh目錄,cat id_rsa.pub
拷貝內容
3.2.3 到B服務器 進入.ssh目錄,執行
vim authorized_keys
粘貼 步驟2種拷貝的內容並保存退出
3.2.4 修改authorized_keys 權限
chmod 644 authorized_keys
3.2.5 在A服務器 執行訪問驗證
ssh -p 端口號 iwbd@hadoop103

3.3 集群配置

3.3.1 集群部署規划

3.3.2 配置集群

1)配置core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<property>
<name>hadoop.data.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<property>
<name>hadoop.proxyuser.iwbd.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.iwbd.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>iwuser</value>
</property>
</configuration>

 

2)配置hdfs-site.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>${hadoop.data.dir}/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>${hadoop.data.dir}/data</value>
  </property>
  <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>${hadoop.data.dir}/namesecondary</value>
  </property>
  <property>
    <name>dfs.client.datanode-restart.timeout</name>
    <value>30</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop104:9868</value>
  </property>
  <!--網頁可以上傳-->
  <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
  </property>

</configuration>

 

3)配置yarn-site.xml
<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop103</value>
  </property>
  <property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop102:19888/jobhistory/logs</value>
  </property>
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>

</configuration>

 

4)mapred-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 歷史服務器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 歷史服務器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property>

</configuration>

 5) 修改腳本配置

vim start-dfs.sh 和 stop-dfs.sh 添加用戶

HDFS_DATANODE_USER=iwbd
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=iwbd
HDFS_SECONDARYNAMENODE_USER=iwbd  

vim start-yarn.sh 和 stop-yarn.sh 添加用戶

YARN_RESOURCEMANAGER_USER=iwbd
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=iwbd

  

6)在集群上分發配置好的Hadoop配置文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/

  

3.4 群起集群

3.4.1 配置workers
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

#在該文件中增加如下內容:
hadoop102
hadoop103
hadoop104

 

3.4.2 啟動集群

1)如果集群是第一次啟動,需要在hadoop102節點格式化NameNode(注意格式化之前,一定要先停止上次啟動的所有namenode和datanode進程,然后再刪除data和log數據)
hdfs namenode -format
2)啟動HDFS
sbin/start-dfs.sh
3)在配置了ResourceManager的節點(hadoop103)啟動YARN
sbin/start-yarn.sh
4)Web端查看SecondaryNameNod
(a)瀏覽器中輸入:http://hadoop104:9868/status.html
(b)查看SecondaryNameNode信息


4.集群啟動/停止方式總結

4.1 各個服務組件逐一啟動/停止

(1)分別啟動/停止HDFS組件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)啟動/停止YARN
yarn --daemon start/stop resourcemanager/nodemanager

4.2 各個模塊分開啟動/停止(配置ssh是前提)常用

(1)整體啟動/停止HDFS
start-dfs.sh/stop-dfs.sh
(2)整體啟動/停止YARN
start-yarn.sh/stop-yarn.sh

5.配置歷史服務器

為了查看程序的歷史運行情況,需要配置一下歷史服務器。具體配置步驟如下:

5.1 配置mapred-site.xml

3.2.2已配置

 

5.3 在hadoop102啟動歷史服務器

mapred --daemon start historyserver

5.4 查看JobHistory

http://hadoop102:19888/jobhistory

6 配置日志的聚集


日志聚集概念:應用運行完成以后,將程序運行日志信息上傳到HDFS系統上。
日志聚集功能好處:可以方便的查看到程序運行詳情,方便開發調試。
注意:開啟日志聚集功能,需要重新啟動NodeManager 、ResourceManager和HistoryManager。

開啟日志聚集功能具體步驟如下:

6.1 配置yarn-site.xml

3.2.2已配置

6.3 關閉NodeManager 、ResourceManager和HistoryServer

在103上執行: stop-yarn.sh
在102上執行: mapred --daemon stop historyserver

6.4 啟動NodeManager 、ResourceManage、Timelineserver和HistoryServer

在103上執行:start-yarn.sh
在103上執行:yarn --daemon start timelineserver
在102上執行:mapred --daemon start historyserver

6.5 刪除HDFS上已經存在的輸出文件

hdfs dfs -rm -R /user/iwbd/output

6.6 執行WordCount程序

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/iwbd/input /user/iwbd/output6.7

6.7 查看日志

http://hadoop102:19888/jobhistory

ps: start-dfs.sh 啟動總是報找不到JAVA_HOME

配置系統環境的/etc/profile 或 /etc/profile.d/my_env.sh 或者 ~/.bash_profile都不行,最后在 /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

添加變量 解決,也不知道為什么讀取不到系統的環境變量. 普通echo $JAVA_HOME 或 java  -version 都正常

export JAVA_HOME=/usr/java/jdk1.8.0_212


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM