大数据

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

2021-07-30  本文已影响0人  GuanYZ

持续更新中...

软件环境: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
<configuration>
    <!-- hdfs主机名与端口号 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop201:8020</value>
    </property>
    <!-- 临时数据的存放地址 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/temp</value>
    </property>
</configuration>
  1. 配置hdfs-site.xml
<configuration>
    <!-- nn web 端访问地址-->
    <property>
         <name>dfs.namenode.http-address</name>
         <value>hadoop201:9870</value>
    </property>
    <!-- 2nn web 端访问地址-->
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>hadoop202:9868</value>
    </property>
    <!--设置hdfs中NameNode的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/dfs/name</value>
    </property>
    <!--设置hdfs中DataNode的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/dfs/data</value>
    </property>
    <!--设置数据块副本数(默认3)-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>
  1. 配置yarn-site.xml
<configuration>
    <!-- 指定 MR 走 shuffle -->
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
     <!-- 指定 ResourceManager 的地址-->
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>hadoop201</value>
     </property>
</configuration>
  1. 配置mapred-site.xml
<configuration>
    <!-- 指定yarn程序地址 -->
    <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
    </property>
</configuration>
  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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://192.168.1.203:3306/hive_db</value>
  </property>

  <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
  </property>
  
  <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
  </property>

  <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>Root@123</value>
  </property>

  <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
  </property>

  <!-- hiveserver2服务的端口号以及绑定的主机名 -->
  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>hadoop201</value>
  </property>
  
  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
  </property>
  
</configuration>

  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中加入如下内容

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

重启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

上一篇下一篇

猜你喜欢

热点阅读