Hadoop分布式集群配置

1.三台虚拟机(Centos7.6),配置JDK,HADOOP环境,在搭建虚拟机时,可以先将一台的环境配置,再克隆两台改IP就好。三台虚拟机最小化安装,必须拥有必要的插件

<!--解释-->

HADOOP集群搭建时,至少需要三台虚拟机,JDK是作为HADOOP集群启动的环境变量,

2.更改虚拟机IP地址,使3台虚拟机与主机互通,主机使用XSHELL软件连接虚拟机进行指令操作

3.创建新用户,在新用户下配置环境变量以及将集群文件传入在新用户文件夹下

4.编写群发XSYNC脚本,可以做到将操作的电脑中的数据同步到另外几台电脑中

5.配置SSH免密登录,能够帮助集群中的电脑互通

6.将集群部署规划做好,并写入配置文档

7.使用命令启动集群,配置历史服务器,配置日志聚集,最后配置集群时间同步

 

下载好包                    

1.虚拟机配置IP,互相ping通,能够主机和虚拟机互通,虚拟机与互联网互通,并创建新用户,安装插件,在新用户下创建/opt文件夹给予。

(1)设置ip

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="349e681f-a334-450a-a73e-0a3845059237"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.145.170
NETMASK=255.255.255.0
GATEWAY=192.168.145.2

 

(2)安装必要的插件(可以配好一个在克隆)

 

sudu yum -y install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

 

(3)修改主机映射(本地域名解析)

vim /etc/hosts
192.168.145.170 hadoop102
192.168.145.171 hadoop103
192.168.145.172 hadoop104

 

(4)关闭防火墙

systemctl stop firewalld

 

(5)创建新用户 ,并设置密码

useradd atguigu
passwd atguigu

 

(6)在新用户下,创建文件夹,将用户所有者给新用户

mkdir -p /opt/module /opt/software
chown atguigu:atguigu /opt/module /opt/software

 

(7)修改/etc/sudoers文件,找到下面一行(102),在%wheel下面添加一行:

          

atguigu ALL=(ALL) NOPASSWD:ALL

2.安装JDK以及HADOOP,并配置环境变量,并编写分发脚本

(1)如果有jdk先卸载之前的jdk

rpm -qa | grep -i java | xargs -nl sudo rpm -e --nodesps

 

(2)在新用户登陆的情况下,导入JDK安装包到/opt/software,这个文件夹存放安装包,并解压在/opt/module文件夹下,将将Hadoop安装包也导入到/opt/software中,并解压在/opt/module文件夹下。

rz -e

tar -xvf jdk-8u212-linux-x64.tar -C /opt/software

tar -xvf hadoop-3.1.3.tar -C /opt/software

(3)配置环境变量,切记是在新用户下,并且不要在/etc/profile中添加环境变量,必须创建新的my_env.sh,在/etc/profile.d/下创建

vim /etc/profile.d/mv_env.sh
=====================================
#JAVA_HOME
export JAVA_HOME=/ opt/ module/ jdk-8u212-linux-x64
export PATH=PATH :JAVA_HOME/bin
#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.d/mv_env.sh

 

3.完全分布式

(1)配置完全分布式前,要确保需要的插件都有,并配置xsync(rsync命令制作的)集群分发脚本,可以循环复制文件到所有节点的相同目录下,并放在/home/atguigu/bin下,以确保用户可以在系统任何地方执行,修改执行权限

cd /home/atguigu/bin
vim xsync
=====================================
#!/bin/bash
#1. 判断参数个数
if [ # -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
  echo ====================host  ====================
  #3. 遍历所有目录,挨个发送
  for file in @
  do
    #4 判断文件是否存在
    if [ -efile ]
    then
      #5. 获取父目录
      pdir=(cd -P(dirname file); pwd)
      #6. 获取当前文件的名称
      fname=(basename file)
      sshhost "mkdir -p pdir"
      rsync -avpdir/fnamehost:pdir
    else
      echofile does not exists!
    fi
  done
done
========================================
chmod +x xsync

 

(2)配置免密登陆,三台虚拟机都需要传递各自的公钥到集群各个机器中

ssh -keygen -t rsa
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

 

(3)配置集群规划如下

#hadoop102:NameNode DataNode Nodemanager
#hadoop103:DataNode ResourceManager NodeManager
#hadoop104: SecondaryNameNode DataNode NodeManager

 

4>设置核心文件core-site.xml 此文件在/opt/module/hadoop.../etc/core-site.xml 在此文件中的<configuration>内容</configuration>中间添加配置信息。cd HADOOP_HOME /etc/hadoop

 

vim core-site.xml
========================================
<configuration>
<!--指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:9820</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!--  通过web界面操作hdfs的权限 -->
<property>
        <name>hadoop.http.staticuser.user</name>
        <value>atguigu</value>
</property>
<!-- 后面hive的兼容性配置  -->
    <property>
        <name>hadoop.proxyuser.atguigu.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.atguigu.groups</name>
        <value>*</value>
</property>
</configuration>
========================================

5>配置hdfs-site.xml 此文件和core-site.xml文件在一个目录下,为/opt/module/hadoop.../hdfs-site.xml ,同样都是在<configuration>内容</configuration>标签下添加

vim hdfs-site.xml
===================
<configuration>
<property>
<name>dfs.namenode.secondary.http- address</ name>
<value>hadoop104:9868</value>
</ property>
</ configuration>
==================

 

6.配置yarn-site.xml 和core-site.xml以及hdfs-site.xml都在同一个目录下/opt/module/hadoop.../yarn-site.xml 同样都是在<configuration>内容</configuration>标签下添加

vim yarn-site.xml
========================================
<configuration>
<!--  Reducer获取数据的方式-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!--  指定YARN的ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
</property>
<!-- 环境变量通过从NodeManagers的容器继承的环境属性,对于mapreduce应用程序,除了默认值 hadoop op_mapred_home应该被添加外。属性值 还有如下-->
    <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>
<!-- 解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill  -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
<!-- 后面hive的兼容性配置  -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</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>
</configuration>
========================================

 

7>配置MapReduce-site.xml文件,与上都在同一目录下

vim MapRed-site.xml
====================
<configuration>
<!--指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
=======================

 

8>在集群上配发刚才配置的文件,

xsync /opt/module/Hadoop-3.1.3/etc/Hadoop/

 

9>发起集群,配置工作组,WORKERS,为了让集群知道自己所在的集群中都有哪些计算机,workers在/opt/module/hadoop-3.1.3/etc/hadoop/workers目录,并使用xsync同步更新集群中所有的计算机WORKERS文件

vim /opt/module/Hadoop-3.1.3/etc/Hadoop/workers
===============================
hadoop 102
hadoop 103
hadoop 104
==============================
xsync /opt/modele/Hadoop-3.1.3/etc

 

10>启动集群,如果集群是第一次启动,需要将NameNode所在的节点初始化,如果已经初始化过则需要删除NameNode节点中hadoop目录下的data和logs文件

hdfs namenode -format
start-dfs.sh
< -- 在配置了RescourceManager的节点下开启-->
start-yarn.sh

 

11>各个服务逐一启动/停止命令

hdfs --dameon start/stop namenode/datanode/secondarynamenode
yarn --daemon start/stop RessourceManager/NodeManager

 

12>配置历史服务器,需要更改mapred-site.xml,并且三台虚拟机都需要拥有此配置,然后启动

 

cdHADOOP_HOME/etc/hadoop

vim mapred-site.xml
========================================
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>
========================================

xsync HADOOP_HOME/etc/hadoop/mapred-site.xml

mapred --daemon start historyserver

13>配置日志聚集,需要在HADOOP_HOME/etc/hadoop目录下的yarn增加配置信息,关闭后再重启服务

vim yarn-site.xml
========================================
<!-- 开启日志聚集  -->
<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>
<!-- 保存的时间7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
========================================

xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

stop-yarn.sh
start-yarn.sh

 

14.浏览器输入http://192.168.145.170:9870

 

 

15.输入http://192.168.145.171:8088/

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值