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

posted @ 2020-12-31 17:29  coolid  阅读(603)  评论(0编辑  收藏  举报