Hadoop3.1.1集群+Hive3.1.0环境安装

一、软件环境

- Cent OS 7.9  官方下载地址:CentOS-7-x86_64-DVD-2009.iso

- Hadoop 3.1.1 官方下载地址:Hadoop 3.1.1

- Hive 3.1.0  官方下载地址:Hive 3.1.0

- PostgreSQL 16.13 官方下载地址:PostgreSQL 16.13 (用于存储hive的无数据)

- BiSheng-jdk-8u482-b13  官方下载地址: BiSheng-jdk-8u482-b13 (可用openjdk或oracle jdk替代)

- NTP 官方下载地址:ntp-4.2.6p5-29.el7.centos.x86_64 (非必需,但稳定运行需要)

- Zookeeper-3.8.6 官方下载地址: Zookeeper-3.8.6 (非必需,但高可用集群需要)

二、Hadoop集群安装

# 3台机器

10.21.**.184 master.hadoop

10.21.**.185 slave1.hadoop

10.21.**.186 slave2.hadoop

# 所有步骤使用root用户执行

第一步:上传hadoop压缩包

略。可使用FileZilla

第二步:解压hadoop压缩包

解压hadoop-3.1.1.tar.gz解压到/usr

说明:如果只是为了演示或学习可不做高可用集群,只做普通集群,

普通集群$HADOOP_HOME/etc/hadoop/core-site.xml中可以不配zookeeper

即:/usr/hadoop-3.1.1/etc/hadoop/core-site.xml

第三步:更改主机名称

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master.hadoop

#HOSTNAME=slave1.hadoop

#HOSTNAME=slave2.hadoop

查看主机名 hostname(文件修改后没有重启主机名没有生效,可以用hostname临时生效)

hostname master.hadoop

hostname slave1.hadoop

hostname slave2.hadoop

第四步:建立主机名和ip的映射

vi /etc/hosts

10.21.**.184 master.hadoop

10.21.**.185 slave1.hadoop

10.21.**.186 slave2.hadoop

# IP修改为实际三台机器的IP

第五步:配置root用户ssh免密钥登录

第六步:关闭防火墙

systemctl stop firewalld  

第七步:安装JDK

安装jdk1.8

第八步:安装postgresql(建意安排在主节点)

安装PostgreSQL 16.13  ,端口:5432

略。

第九步:设置时区

三台主机执行都要执行下面的命令

timedatectl set-timezone Asia/Shanghai

第十步:安装时间同步服务(NTP)

# 三台需要安装

yum install ntp

# 修改配置

vi /etc/ntp.conf

# 时间服务使用一台就行

server master.hadoop iburst

# 启停

systemctl start ntpd
systemctl status ntpd
# 同步时间,ip为ntp服务地址
ntpdate 10.21.**.**

说明:

在 Hadoop 3.1.1 集群中,‌强烈建议配置 NTP 时间同步服务‌,尤其是在生产环境或内网环境中。虽然从技术上讲,不配置 NTP Hadoop 也能启动,但时间不同步会导致严重的数据一致性问题和任务执行错误

第十一步:添加环境变量

vi /etc/profile

export JAVA_HOME=/app/jdk1.8.0_391

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=$JAVA_HOME/jre

export HADOOP_HOME=/usr/hadoop-3.1.1

export HIVE_HOME=/usr/hive-3.1.0

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

第十二步:创建hadoop数据目录

mkdir -p /home/hadoop/hadoop3.1.1/dfs/name

mkdir -p /home/hadoop/hadoop3.1.1/dfs/data

mkdir -p /home/hadoop/hadoop3.1.1/temp

mkdir -p /home/hadoop/hadoop3.1.1/dfs/journaldata

mkdir -p /home/hadoop/hadoop3.1.1/hive/warehouse

第十三步:修改配置

core-site.xml

vi $HADOOP_HOME/etc/core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master.hadoop:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop3.1.1/temp/</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
        <description>Allow root user to connect from any host</description>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
        <description>Allow root user to impersonate users from any group</description>
    </property>

</configuration>

hdfs-site.xml

vi $HADOOP_HOME/etc/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>file:/home/hadoop/hadoop3.1.1/dfs/name</value>
    </property>
    
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop3.1.1/dfs/data</value>
    </property>
    
    <property>
        <name>dfs.replication</name>
        <value>5</value>
    </property>

    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

</configuration>

yarn-site.xml

vi $HADOOP_HOME/etc/yarn-site.xml

<?xml version="1.0"?>
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master.hadoop</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.application.classpath</name>
        <value>/usr/hadoop-3.1.1/etc/hadoop:/usr/hadoop-3.1.1/share/hadoop/common/lib/*:/usr/hadoop-3.1.1/share/hadoop/common/*:/usr/hadoop-3.1.1/share/hadoop/hdfs:/usr/hadoop-3.1.1/share/hadoop/hdfs/lib/*:/usr/hadoop-3.1.1/share/hadoop/hdfs/*:/usr/hadoop-3.1.1/share/hadoop/mapreduce/lib/*:/usr/hadoop-3.1.1/share/hadoop/mapreduce/*:/usr/hadoop-3.1.1/share/hadoop/yarn:/usr/hadoop-3.1.1/share/hadoop/yarn/lib/*:/usr/hadoop-3.1.1/share/hadoop/yarn/*</value>
    </property>
</configuration>

获取 yarn.application.classpath

# 即该命令执行结果 
yarn classpath

mapred-site.xml

vi $HADOOP_HOME/etc/mapred-site.xml

<?xml version="1.0"?>
<?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>master.hadoop:10020</value>  
    </property>  

    <property>  
        <name>mapreduce.jobhistory.webapp.address</name>  
        <value>master.hadoop:19888</value>  
    </property> 

    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

</configuration>

workers

vi $HADOOP_HOME/etc/workers

slave1.hadoop
slave2.hadoop

第十四步:修改脚本

hadoop-env.sh

vi $HADOOP_HOME/etc/hadoop-env.sh

export JAVA_HOME=/app/jdk1.8.0_391
export HADOOP_HOME=/usr/hadoop-3.1.1

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

#  shell 
export HADOOP_SHELL_EXECNAME=root

export HADOOP_OS_TYPE=${HADOOP_OS_TYPE:-$(uname -s)}

case ${HADOOP_OS_TYPE} in
  Darwin*)
    export HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.realm= "
    export HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.kdc= "
    export HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.conf= "
  ;;
esac

start-dfs.sh

vi $HADOOP_HOME/sbin/start-dfs.sh

添加下面几行脚本

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root

stop-dfs.sh

vi vi $HADOOP_HOME/sbin/stop-dfs.sh

同start-dfs.sh

start-yarn.sh

vi $HADOOP_HOME/sbin/start-yarn.sh

添加下面几行脚本

YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=root
YARN_NODEMANAGER_USER=root

stop-yarn.sh

同start-dfs.sh

第十五步:格式化namenode

只需在第一次启动的时候在Master节点上执行

hdfs namenode -format

第十六步:hadoop服务启停

./sbin/start-all.sh

# 检查master、node1、node2上进程的命令

jps

# master

./sbin/stop-all.sh

第十五步:访问HDFS、YARN管理页面

# 访问HDFS的WEB界面

http://10.21.**.184:9870

# 访问YARN的WEB界面

http://10.21.**.184:8088

Hive安装

装一台就行了,就安装在master.hadoop上

第一步:上传hive压缩包

获取位置:root@10.21.**.184:/usr/hive-3.1.0.tar.gz

上传到3台准备安装hadoop集群的主机

说明:并非官方源包,而是在集群环境上验证过的程序(带一套完整配置)

第二步:解压hive压缩包

解压hive-3.1.0.tar.gz解压到/usr

第三步:初始化元数据  hive

schematool -initSchema -dbType postgres -verbose

# 说明:hive环境变量在hadoop第十一步一起加了

第四步:启动Hive

hive --service metastore &

hive --service hiveserver2 &

第五步:启动数据节点(节点都执行一下)

hdfs --daemon start datanode

说明:避免hadoop服务启动时没有启动导致不可用

第五步:验证

# hive命令行:

hive

# beeline 命令行

beeline -u jdbc:hive2://10.21.19.***:10000

use fefault;

select 1 union all  select 2;

附件一:可能用得到的脚本

# 上传后传到其他2台主机(3台版)master上root执行

scp -r /usr/hadoop-3.1.1.tar.gz root@slave1.hadoop:/usr/

scp -r /usr/hadoop-3.1.1.tar.gz root@slave2.hadoop:/usr/

# 集群间传配置(3台版)master上root执行

scp -r /usr/hadoop-3.1.1/etc/ root@slave1.hadoop:/usr/hadoop-3.1.1/

scp -r /usr/hadoop-3.1.1/etc/ root@slave2.hadoop:/usr/hadoop-3.1.1/

scp -r /usr/hadoop-3.1.1/sbin/ root@slave1.hadoop:/usr/hadoop-3.1.1/

scp -r /usr/hadoop-3.1.1/sbin/ root@slave2.hadoop:/usr/hadoop-3.1.1/


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

飞火流星02027

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

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

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

打赏作者

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

抵扣说明:

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

余额充值