centos7搭建大数据集群环境(hadoop3+hive3)

持续更新中...

软件环境:jdk8, hadoop-3.3.1.tar.gz, apache-hive-3.1.2-bin.tar.gz
硬件环境:3台服务器(192.1.168.1.201, 192.1.168.1.202, 192.1.168.1.203)

1. 服务器准备

1.1. 安装centos7 系统;

给机器安装centos7系统,注意不要安装最小化系统。


image.png

1.2.安装java8环境;

  1. 到 https://www.oracle.com/java/ 下载所需的jdk包,本次下载的是 jdk-8u211-linux-x64.rpm
  2. 检查机器是否有java环境
java -version
javac -version
rpm -qa | grep java
rpm -qa | grep jdk
  1. 如果有java环境,先卸载掉,卸载命令示例:
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
  1. 进入jdk-8u211-linux-x64.rpm所在目录,安装java
    ···
    rpm -ivh jdk-8u211-linux-x64.rpm
    ···
  2. 配置环境变量
    输入vi /etc/profile去编辑环境变量,滚动到最底部,按键盘上的o键切换到编辑模式,加入如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
export JRE_HOME=$JAVA_HOME/jre  
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

按键盘上的Esc键退出编辑模式,输入:wq进行保存并退出

source /etc/profile

使配置立即生效

1.3.固定机器IP;

可参考: https://www.cnblogs.com/yhongji/p/9336247.html
将三台机器的ip分别设置为192.1.168.1.201, 192.1.168.1.202, 192.1.168.1.203

1.4.设置hostname;

设置hostname命令:

hostnamectl set-hostname hadoop201

本次设置的hostname对应关系为
192.1.168.1.201 hadoop201
192.1.168.1.202 hadoop201
192.1.168.1.203 hadoop201

1.5.设置hosts;

修改三台机器的 /etc/hosts 内容,输入vi /etc/hosts, 加入如下内容:

192.168.1.201 hadoop201
192.168.1.202 hadoop202
192.168.1.203 hadoop203

1.6.设置三台服务器内部ssh免密登录;

在每台机器上都进行如下操作:

# 生成密钥对, 输入此命令后连敲三次回车
ssh-keygen -t rsa

# 将密钥分发给其他机器
ssh-copy-id hadoop201
ssh-copy-id hadoop202
ssh-copy-id hadoop203

# 使用ssh登录其他机器试试(第一次可能还是需要密码)
ssh hadoop202

机器环境准备完毕,接下来安装hadoop集群。

2. 安装hadoop集群

2.1 下载安装包

  1. 到hadoop官网(http://hadoop.apache.org/)下载hadoop-3.3.1.tar.gz ,并上传到/home/hadoop/下;
    2.压缩包解压
tar -zxvf hadoop-3.3.1.tar.gz

2.2 配置环境变量

输入vi /etc/profile去编辑环境变量,滚动到最底部,删除之前加的内容,加入如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export HADOOP_HOME=/home/hadoop/hadoop-3.3.1

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin

然后 source /etc/profile,使配置立即生效。

2.3 修改配置文件

进入 /home/hadoop/hadoop-3.3.1/etc/hadoop ,修改5个文件

  1. 配置core-site.xml

    
    
        fs.defaultFS
        hdfs://hadoop201:8020
    
    
    
        hadoop.tmp.dir
        /home/hadoop/temp
    

  1. 配置hdfs-site.xml

    
    
         dfs.namenode.http-address
         hadoop201:9870
    
    
    
         dfs.namenode.secondary.http-address
         hadoop202:9868
    
    
    
        dfs.namenode.name.dir
        /home/hadoop/dfs/name
    
    
    
        dfs.datanode.data.dir
        /home/hadoop/dfs/data
    
    
    
        dfs.replication
        3
    

  1. 配置yarn-site.xml

    
     
         yarn.nodemanager.aux-services
         mapreduce_shuffle
     
     
     
         yarn.resourcemanager.hostname
         hadoop201
     

  1. 配置mapred-site.xml

    
    
         mapreduce.framework.name
         yarn
    

  1. 配置workers
    注意不能有空格、换行
hadoop201
hadoop202
hadoop203
  1. 配置 hadoop-env.sh
    在文件末尾追加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64

export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

以上操作需要在三台机器上都保持一致!(2.6有便捷脚本)

2.4 初始化NameNode

在201机器上执行如下命令:

hdfs namenode -format

2.5 启动/停止hadoop集群

cd /home/hadoop/hadoop-3.3.1/
# 启动
sbin/start-all.sh
# 停止命令为:  sbin/stop-all.sh

到每个机器执行 jps 命令查看集群启动情况,然后打开浏览器访问 http://192.168.1.201:9870/ 验证启动效果:


2021-07-30_172941.jpg

hadoop集群环境安装完成;

2.6 方便集群环境操作的两个脚本

可以将本地文件同步到其他机器的脚本(ha-rsync.sh):

#!/bin/bash
if [ $# -lt 1 ]
then
    echo Not Arguement!
    exit!
fi
for host in hadoop201 hadoop202 hadoop203
do 
    echo ================ $host ================
    for file in $@
    do 
        if [ -e $file ]
            then
                pdir=$(cd -P $(dirname $file); pwd)
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

可以同时查看其他机器上java进程的脚本(jps-all.sh):

#!/bin/bash
for host in hadoop201 hadoop202 hadoop203
do 
    echo ================ $host ================
    ssh $host jps
done

3. 安装Hive

hive就是一个连接hadoop的客户端,不需要做集群,只在201这台机器上安装一个即可。

3.1 下载安装包

  1. 到hive官网(https://hive.apache.org/)下载apache-hive-3.1.2-bin.tar.gz ,并上传到/home/hive/下;
    2.压缩包解压
tar -zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin/ hive-3.1.2/

3.2 配置环境变量

输入vi /etc/profile去编辑环境变量,滚动到最底部,删除之前加的内容,加入如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export HADOOP_HOME=/home/hadoop/hadoop-3.3.1
export HIVE_HOME=/home/hive/hive-3.1.2
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin

然后 source /etc/profile,使配置立即生效。

3.3 修改配置文件

进入文件夹 /home/hive/hive-3.1.2/conf

  1. 参考hive-default.xml.template,新增文件hive-site.xml



  
      javax.jdo.option.ConnectionURL
      jdbc:mysql://192.168.1.203:3306/hive_db
  

  
      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
  
  
  
      javax.jdo.option.ConnectionUserName
      root
  

  
      javax.jdo.option.ConnectionPassword
      Root@123
  

  
      hive.metastore.schema.verification
      false
  

  
  
    hive.server2.thrift.bind.host
    hadoop201
  
  
  
    hive.server2.thrift.port
    10000
  
  


  1. 参考hive-log4j2.properties.template,新增文件hive-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
# 然后将 hive-log4j2.properties 中的日志路径改成 /home/hive/logs

3.4 在203机器上安装mysql5.7

略...

3.5 添加mysql的驱动包到hive/lib下

1627641234(1).png

这个jar包可以到本地maven库找,5.*版本的jar都可以连mysql5.7

3.6 初始化hive数据库

用navcat连接203上的mysql数据库,创建表空间hive_db;

schematool -dbType mysql -initSchema

然后看看hive_db下的表有没有自动创建成功。

3.6 配置hadoop

进入 /home/hadoop/hadoop-3.3.1/etc/hadoop/
在core-site.xml中加入如下内容

    
        hadoop.proxyuser.root.hosts
        *
    
    
        hadoop.proxyuser.root.groups
        *
    

重启hadoop,然后执行如下命令,在hdfs中创建hive的工作目录:

hadoop dfs -mkdir -p /user/hive/warehouse

3.7 启动hive,启动hiveserver2

# 直接执行 hive 命令,进入交互式终端
hive

# 启动hiveserver2,可以用jdbc远程连接hive
hive --service hiveserver2

# 以后台进程方式,启动hiveserver2
nohup hive --service hiveserver2 > /home/hive/logs/start.log 2>&1 &

hiveserver2的启动需要一段时间,请耐心等待几分钟。
访问 http://192.168.1.201:10002/ 查看hive启动情况:


2021-07-30_185547.jpg

PS 后来我发现,还是用ambari安装hadoop集群更加方便: https://www.jianshu.com/p/ae81d0dcd0e4

你可能感兴趣的:(centos7搭建大数据集群环境(hadoop3+hive3))