hadoop集群的安装(最详细的安装教程)

版本:3.1.3

1.准备工作:

更新和安装组件

            1. yum install -y epel-release

            2. yum install -y net-tools

            3. yum install -y vim

    防火墙的关闭和禁止开启自动启动

            1. systemctl stop firewalld

            2.  systemctl disable firewalld.service

创建 sea 用户,并修改 sea 用户的密码:(***为自己的用户名)

给用户赋予root权限

            1.配置文件  /etc/sudoers

                     在%wheel 这行下面添加一行

seaALL=(ALL) NOPASSWD:ALL
sea为用户名
在/opt 目录下创建文件夹,并修改所属主和所属组 
mkdir /opt/module            //用于存放安装的软件
mkdir /opt/software            ///装一些下载的文件
修改 module、software 文件夹的所有者和所属组均为 sea用户
chown sea:sea /opt/module
chown sea:sea /opt/software

主机IP静态配置

             配置文件:vim /etc/sysconfig/network-scripts/ifcfg ens33

            

BOOTPROTO=static
IPADDR=192.168.10.102 
GATEWAY=192.168.10.2 
DNS1=192.168.10.2

    主机名称的配置

            配置文件 vim /etc/hostname

    配置 Linux 克隆机主机名称映射 hosts 文件

             vim /etc/hosts

             格式为:

192.168.11.100 hadoop100

192.168.11.101 hadoop101

192.168.11.101 hadoop102

同步xsync的配置和安装

在/home/sea/bin 目录下创建 xsync 文件

             vim xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
   echo Not Enough Arguement!
   exit;
fi
#2. 遍历集群所有机器
for host in hadoop104 hadoop105 hadoop106
do
  echo ==================== $host ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
       then
            #5. 获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            #6. 获取当前文件的名称
            fname=$(basename $file)
            ssh $host "mkdir -p $pdir"
            rsync -av $pdir/$fname $host:$pdir
        else
            echo $file does not exists!
      fi
  done
done
修改脚本 xsync 具有执行权限
chmod +x xsync
  将脚本复制到/bin 中,以便全局调用
sudo cp xsync /bin/
同步环境变量配置(root 所有者)
sudo ./bin/xsync /etc/profile.d/my_env.sh
让环境变量生效
source /etc/profile
设置密码登录

1.进入目录 /home/sea/.ssh

    运行

ssh-keygen -t rsa

将公钥拷贝到要免密登录的目标机器上包括自己

ssh-copy-id 主机名

jdk的安装:

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

环境变量配置

在/etc/profile.d创建一个 my_env.sh用于配置环境变量

vim my_env.sh

配置文件: vim /etc/profile.d/my_env.sh

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

生效:source /etc/profile

2.安装hadoop的安装

优化配置,将消耗资源较大的分在不同的机子上

解压:
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
环境变量的配置: 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

文件配置

1. core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
     <!-- 指定 NameNode 的地址 -->
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop101:8020</value>
     </property>
         <!-- 指定 hadoop 数据的存储目录 -->
         <property>
         <name>hadoop.tmp.dir</name>
         <value>/opt/module/hadoop-3.1.3/data</value>
     </property>
     <!-- 配置 HDFS 网页登录使用的静态用户为 sea -->
     <property>
         <name>hadoop.http.staticuser.user</name>
         <value>sea</value>
     </property>
</configuration>

(2)HDFS 配置文件 

配置hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- nn web 端访问地址-->
    <property>
         <name>dfs.namenode.http-address</name>
         <value>hadoop101:9870</value>
     </property>
    <!-- 2nn web 端访问地址-->
     <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>hadoop103:9868</value>
     </property>
</configuration>

(3)YARN 配置文件

 配置 yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
     <!-- 指定 MR 走 shuffle -->
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
     <!-- 指定 ResourceManager 的地址-->
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>hadoop102</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>
</configuration>

(4)MapReduce 配置文件 

配置 mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定 MapReduce 程序运行在 Yarn 上 -->
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
</configuration>

(5) workers文件,这里面是自己集群的主机名

hadoop101
hadoop102
hadoop103

即在里面添加集群的机子的主机名称或地址,而且地址后面不能有空格和空行

配置完成后记得分发到其他的机子上

xsync + 文件名        (xsync 是上边自己写的一个分发脚本)

(6)初始化
hdfs namenode -format
初始化时注意事项:
如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式 化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找 不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停 止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式 化

初始化成功后为有两个文件 data 和logs    就是在上面配置时定义的文件、

在/opt/module/hadoop-3.1.3/data/dfs/name/current中为出现如下文件

 开打VERSION有id、版本号等

启动dfs
sbin/start-dfs.sh
在hadoop101上出现的进程为

在hadoop102上出现的进程为

在hadoop103上出现的进程为

如果hadoop101上没有NameNode优先检查 core-site.xml是否配置错误

NameNode没有出现的解决办法为:

https://blog.csdn.net/zhaogang1993/article/details/92727952

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GQYOneWater

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值