【人工智能训练师】2 集群搭建

news2024/11/14 17:11:24

题目一、基础配置

在这里插入图片描述
在这里插入图片描述

core-site.xml参数配置详情
官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值

属性说明
fs.default.namehdfs://???定义master的URI和端口
hadoop.tmp.dir/???临时文件夹,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务。

hdfs-site.xml参数配置详情

属性说明
dfs.replication???hdfs数据块的复制份数,默认3,理论上份数越多跑数速度越快,但是需要的存储空间也更多。
dfs.namenode.name.dirfile:/usr/hadoop/hadoop-2.7.3/hdfs/???NN所使用的元数据保存
dfs.datanode.data.dirfile:/usr/hadoop/hadoop-2.7.3/hdfs/???真正的datanode数据保存路径,可以写多块硬盘,逗号分隔

yarn-site.xml参数配置详情

属性说明
yarn.resourcemanager.admin.address${yarn.resourcemanager.hostname}:18141ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。
yarn.nodemanager.aux-servicesmapreduce_shuffleNodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

mapred-site.xml参数配置详情

属性说明
mapreduce.framework.nameyarn指定MR运行框架,默认为local
# 1.按照左侧虚拟机名称修改对应主机名(分别为master、slave1、slave2,使用hostnamectl命令)
# 操作环境:master、slave1、slave2
hostnamectl master && bash
hostnamectl slave1 && bash
hostnamectl slave2 && bash

# 2.修改host文件添加左侧master、slave1、slave2节点IP与主机名映射(使用内网IP)
# 操作环境:master、slave1、slave2
master 172.18.39.185
slave1 172.18.39.186
slave2 172.18.12.206

echo "
172.18.39.185 master
172.18.39.186 slave1
172.18.12.206 slave2
" >> /etc/hosts

# 3.时区更改为上海时间(CST+0800时区)
# 操作环境:master、slave1、slave2
tzselect
> 5
> 9
> 1

vim /etc/profile
TZ='Asia/Shanghai'; export TZ

# 应用配置
source /etc/profile

# 4.环境已经安装NTP,修改master节点NTP配置,设置master为本地时间服务器,屏蔽默认server,服务器层级设为10
# 操作环境:master
echo "server 127.127.1.0 " >> /etc/ntp.conf
echo "fudge 127.127.1.0 stratum 10" >> /etc/ntp.conf

# 5.开启NTP服务
# 操作环境:master
systemctl start ntpd.service

# 6.添加定时任务--在早十-晚五时间段内每隔半个小时同步一次本地服务器时间(24小时制、使用用户root任务调度crontab,服务器地址使用主机名)
# 操作环境:slave1、slave2
echo "*/30 10-17 * * * /usr/sbin/ntpdate master" >> /var/spool/cron/root

# 7.主节点生成公钥文件id_rsa.pub(数字签名RSA,用户root,主机名master)
# 操作环境:master
ssh-keygen

# 8.建立master自身使用root用户ssh访问localhost免密登录
# 操作环境:master
ssh-copy-id -i /root/.ssh/id_rsa.pub localhost
> yes
> master 密码

# 9.建立master使用root用户到slave1的ssh免密登录访问
# 操作环境:master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
> yes
> slave1 密码

# 10.建立master使用root用户到slave2的ssh免密登录访问
# 操作环境:master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
> yes
> slave2 密码

# 验证免密登录
ssh master
exit
ssh slave1
exit
ssh slave2
exit

# 11.将jdk安装包解压到/usr/java目录(安装包存放于/usr/package277/,路径自行创建,解压后文件夹为默认名称,其他安装同理)
# 操作环境:master、slave1、slave2
mkdir -p /usr/java
tar -zxvf /usr/package277/jdk-8u221-linux-x64.tar.gz -C /usr/java/

# java文件同步至 slave服务器 slave1 slave2, 并在slave 重复 12步
scp -r /usr/java/ root@slave1:/usr/
scp -r /usr/java/ root@slave2:/usr/

# 12.配置系统环境变量JAVA_HOME,同时将JDK安装路径中bin目录加入PATH系统变量,注意生效变量,查看JDK版本
# 操作环境:master、slave1、slave2
vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin 

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
# 应用配置
source /etc/profile

# 验证
java -version

在这里插入图片描述

题目二、zookeeper搭建

在这里插入图片描述
Zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
预装的配置文件zoo_sample.cfg下面默认有五个属性,分别是:

1.tickTime
心跳间隔,单位是毫秒,系统默认是2000毫秒,也就是间隔两秒心跳一次。
tickTime的意义:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。

2.initLimit
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。

3.syncLimit
集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。

4.clientPort
客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问,端口默认是2181。

5.dataDir
该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
在集群Zookeeper服务在启动的时候,会回去读取zoo.cfg这个文件,从这个文件中找到这个属性然后获取它的值也就是dataDir 的路径,它会从这个路径下面读取myid这个文件,从这个文件中获取要启动的当前服务器的地址。

集群信息的配置:
在配置文件中,配置集群信息是存在一定的格式:service.N =YYY: A:B
N:代表服务器编号(准确对应对应服务器中myid里面的值)
YYY:服务器地址
A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)
B:表示是选举端口(默认是3888)
例如:server.1=master:2888:3888

配置文件参考

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
# 配置数据存储路径
dataDir=/usr/zookeeper/zookeeper-3.4.14/zkdata
# 配置日志文件路径
dataLogDir=/usr/zookeeper/zookeeper-3.4.14/zkdatalog
# 配置集群列表
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
# 1.将zookeeper安装包解压到指定路径/usr/zookeeper(安装包存放于/usr/package277/)
# 操作环境:master、slave1、slave2
mkdir -p /usr/zookeeper && cd /usr/zookeeper
tar -zxvf /usr/package277/zookeeper-3.4.14.tar.gz   -C /usr/zookeeper/

# zookeeper文件同步至 slave服务器 slave1 slave2, 并在slave
scp -r /usr/zookeeper/ root@slave1:/usr/
scp -r /usr/zookeeper/ root@slave2:/usr/

# 2.配置系统变量ZOOKEEPER_HOME,同时将Zookeeper安装路径中bin目录加入PATH系统变量,注意生效变量
# 操作环境:master、slave1、slave2
vim /etc/profile

export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
## 应用配置
source /etc/profile

# 3.Zookeeper的默认配置文件为Zookeeper安装路径下conf/zoo_sample.cfg,将其修改为zoo.cfg
# 操作环境:master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.14/conf/ 
vim zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
# 配置数据存储路径
dataDir=/usr/zookeeper/zookeeper-3.4.14/zkdata
# 配置日志文件路径
dataLogDir=/usr/zookeeper/zookeeper-3.4.14/zkdatalog
# 配置集群列表
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

scp -r /usr/zookeeper/zookeeper-3.4.14/conf/zoo.cfg  root@slave1:/usr/zookeeper/zookeeper-3.4.14/conf/
scp -r /usr/zookeeper/zookeeper-3.4.14/conf/zoo.cfg  root@slave2:/usr/zookeeper/zookeeper-3.4.14/conf/
# 4.设置数据存储路径(dataDir)为/usr/zookeeper/zookeeper-3.4.14/zkdata
# 操作环境:master、slave1、slave2
# 已操作 见zoo.cfg

# 5. 设置日志文件路径(datalogDir)为/usr/zookeeper/zookeeper-3.4.14/zkdatalog
# 操作环境:master、slave1、slave2
# 已操作 见zoo.cfg

# 6.设置集群列表(要求master为1号服务器,slave1为2号服务器,slave2为3号服务器)
# 操作环境:master、slave1、slave2
# 已操作 见zoo.cfg

# 7.创建所需数据存储文件夹、日志存储文件夹
# 操作环境:master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.14 && mkdir zkdata zkdatalog

# 8.数据存储路径下创建myid,写入对应的标识主机服务器序号
# 操作环境:master、slave1、slave2

## master 服务器
cd /usr/zookeeper/zookeeper-3.4.14/zkdata && echo 1 >> myid
cat myid
## slave1 服务器
cd /usr/zookeeper/zookeeper-3.4.14/zkdata && echo 2 >> myid
## slave2 服务器
cd /usr/zookeeper/zookeeper-3.4.14/zkdata && echo 3 >> myid

# 9.启动服务,查看进程QuorumPeerMain是否存在
# 操作环境:master、slave1、slave2
## 启动 zookeeper 
zkServer.sh start

# 10.查看各节点服务器角色是否正常(leader/follower)
# 操作环境:master、slave1、slave2
## 查看 zookeeper 的状态
zkServer.sh status

在这里插入图片描述

题目三、Hadoop集群搭建

在这里插入图片描述

<configuration>
<property>
  <name>fs.default.name</name>
   <value>????</value>
</property>
</configuration>

在这里插入图片描述
在这里插入图片描述

# 1.将Hadoop安装包解压到指定路径/usr/hadoop(安装包存放于/usr/package277/)
# 操作环境:master、slave 1、slave2
mkdir -p /usr/hadoop && cd /usr/hadoop
tar -zxvf /usr/package277/hadoop-2.7.7.tar.gz   -C /usr/hadoop/

# zookeeper文件同步至 slave服务器 slave1 slave2, 并在slave
scp -r /usr/hadoop/ root@slave1:/usr/
scp -r /usr/hadoop/ root@slave2:/usr/

# 2.配置环境交量HADOOP_HOME,将Hadoop安装路径中bin目录和sbin目录加入PATH系统交量,注意生效交量
# 操作环境:master、slave 1、 slave2
vim /etc/profile
#hadoop
#配置Hadoop安装目录
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
#在原PATH基础上加入Hadoop的bin和sbin目录
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
## 应用配置
source /etc/profile

# 3.配置Hadoop运行环境JAVA_HOME
# 操作环境:master、slave1、 slave2
cd /usr/hadoop/hadoop-2.7.7/etc/hadoop
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> hadoop-env.sh
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> yarn-env.sh


# 修改配置文件
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml

vim core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.default.name</name>
<!--用于指定NameNode的地址 -->
<value>hdfs://master:9000</value> 
</property>

<property>
<name>hadoop.tmp.dir</name>
<!--Hadoop运行时产生文件的临时存储目录 -->
<value>/root/hadoopData/tmp</value>
</property>

</configuration>

vim hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<!-- 数据共副本的数三,默认为3-->
<value>2</value>
</property> 

<property>
<name>dfs.namenode.name.dir</name>
<!--NameNode在本地文件系统中持久存储命名空间和亨务日志的路街-->
<value>/root/hadoopData/name</value> 
</property> 

<property>
<name>dfs.datanode.data.dir</name>
<!--DataNode在本她文件系統中存放共的路径-->
<value>/root/hadoopData/data</value>
</property>

<property> 
<name>dfs.permissions</name>
<!--关闭hadoop象群权限校验-->
<value>false</value>
</property>

<property>
<name>dfs.datanode.use.datanode.hostname</name>
<!--datanode之间的通信也通过域名方式-->
<value>true</value> 
</property>
</configuration>

vim yarn-site.xml

<configuration>
<property> 
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property> 

<property> 
<name>yarn.nodemanager.aux-services</name>
<!--指定reducer获取数据的方式-->
<!--NodeManager上运行的附属服务,也可以理解为 mapreduce获取数据的方式-->
<value>mapreduce_shuffle</value> 
</property>

<property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.shuffleHandler</value>
</property>
</configuration>

vim mapred-site.xml

<configuration>
<property>
<!--指定Mapreduce运行在yarn上-->
<!--指定使用 YARN 运行 MapReduce 程序,默认为 local-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml root@slave1:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml root@slave1:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/yarn-site.xml root@slave1:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/mapred-site.xml root@slave1:/usr/hadoop/hadoop-2.7.7/etc/hadoop/

scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml root@slave2:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml root@slave2:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/yarn-site.xml root@slave2:/usr/hadoop/hadoop-2.7.7/etc/hadoop/
scp -r /usr/hadoop/hadoop-2.7.7/etc/hadoop/mapred-site.xml root@slave2:/usr/hadoop/hadoop-2.7.7/etc/hadoop/


# 4.设置全局参数,指定HDFS_上NameNode地址为master,端口默认为9000(core-site.xml文件设置)
# 操作环境:master、slave1、slave2
>> 修改配置 core-site.xml 

# 5.指定临时存储目录为本地/root/hadoopData/tmp(要求为绝对路径,下同)
# 操作环境:master、slave 1、slave2
>> 修改配置 core-site.xml 

# 6.设置HDFS参数,指定备份文本数量为2(hdfs-site.xml文件设置)
# 操作环境:master、slave 1、 slave2
>> 修改配置 hdfs-site.xml

# 7.设置HDFS参数,指定NN存放元数据信息路径为本地/root/hadoopData/name;指定DN存放元数据信息路径为本地/root/hadoopData/data(要求为绝对路径)
# 操作环境:master、slave1、slave2
>> 修改配置 hdfs-site.xml

# 8.设置HDFS参数,关闭hadoop集群权限校验(安全配置),允许其他用户连接集群;指定datanode之间通过域名方式进行通信
# 操作环境:master、slave1、slave2
>> 修改配置 hdfs-site.xml

# 9.设置YARN运行环境$JAVA_HOME蔘数
# 操作环境:master、 slave 1、 slave2
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> yarn-env.sh

# 10.设置YARN核心参数,指定ResourceManager进程所在主机为master,端口为18141;指定mapreduce 获取数据的方式为mapreduce_shuffle(yarn-site.xml文件设置)
# 操作环境:master、slave1、slave2
>> 修改配置 yarn-site.xml

# 11.设置计算框架参数,指定MR运行在yarn上 (mapred-site.xml文件设置)
# 操作环境:master、slave1、slave2
>> 修改配置 mapreduce-site.xml

# 12.设置节点文件,要求master为主节点;slave1、slave2为子节点
# 操作环境:master、slave1、slave2
echo master > master && echo slave1 > slaves && echo slave2 >> slaves

# 13.对文件系统进行格式化
# 操作环境:master
hadoop namenode -format
# 14.启动Hadoop集群查看各节点服务  (只在master节点操作)
# 操作环境:master、slave1、slave2
start-all.sh  
> yes
# 15.查看集群运行状态是否正常
# 操作环境:master
jps

在这里插入图片描述

题目四、Hive集群搭建

在这里插入图片描述

第一步 安装数据库

在这里插入图片描述

## 前提说明
# 1.环境中已经安装mysql-community-server,注意mysql5.7默认安装后为root用户随机生成一个密码;
# 直接查看密码:
grep "temporary password" /var/log/mysqld.log
# 登入数据库:
mysql -uroot -p
# 输入随机密码即可登录

# 2.根据要求设置密码,注意对应的安全策路修改;
# 设置密码强度为低级:
set global validate_password_policy=????;
# 设置密码长度:
set global validate_password_length=????;
# 修改本地密码:
alter user 'root'@'localhost' identified by '7277';

# 3.根据要求满足任意主机节点root的远程访问权限(否则后续hive无法连接mysql);
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '????' WITH GRANT OPTION;

# 4.注意刷新权限;
flush privileges;

# 5.爹考命今
# 启动mysql服务:
systemctl start mysqld
#关闭mysql服务:
systemctl stop mysqld
#查看mysql服务:
systemctl status mysqld


## 考试条件
# 1.环境中已经安装mysql-community-server,关闭mysql开机自启服务
# 操作环境:slave2
# 查看MySQL服务的自启动状态
systemctl list-unit-files | grep 'mysql'
# 关闭MySQL开机自启动服务
systemctl disable mysqld

# 2.开启MysQL服务
# 操作环境:slave2
systemctl status mysqld
systemctl start mysqld
systemctl status mysqld

# 3.判断mysqld.log日志下是否生成初临时密码
# 操作环境:slave2
grep "temporary password" /var/log/mysqld.log
mysql -uroot -p

# 4.设置mysql数据库本地root用户密码为123456
# 操作环境:slave2
# 设置密码强度为低级:
set global validate_password_policy=0;
# 设置密码长度:
set global validate_password_length=4;
# 修改本地密码:
alter user 'root'@'localhost' identified by '123456';

# 要求满足任意主机节点root的远程访问权限(否则后续hive无法连接mysql);
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

# 刷新权限;
flush privileges;
quit

第二步 Hive基础环境配置

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

1.讲指定版本的Hive安装包解压到指定路径,添加系统并生效;
2.修改Hive运行环境

# 配置Hadoop安装路径
export HADOOP_HOME=????
# 配置Hive配置文件存放路径为conf
export HIVE_CONF_DIR=????
# 配置Hive运行资源库路径为lib
export HIVE_AUX_JARS_PATH=????

3.由于客户端需要和Hadoop通信,为避免jline版本冲突问题,将Hive中lib/jline-2.12.jar拷贝到Hadoop中,保留高版本.

# 1.将Hive安装包解压到指定路径/usr/hive(安装包存放于/usr/package277/)
# 操作环境:master、slave1

mkdir -p /usr/hive && cd /usr/hive
tar -zxvf /usr/package277/apache-hive-2.3.4-bin.tar.gz   -C /usr/hive/

# 2.配置环境变量HIVE_HOME,将Hive安装路径中的bin目录加入PATH系统变量,注意生效变量
# 操作环境:master、slave1
vim /etc/profile
#配置Hive安装目录
export HIVE_HOME=/usr/hive/apache-hive-2.3.4-bin
#在原PATH基础上加入Hive的bin目录
export PATH=$PATH:$HIVE_HOME/bin

scp -r /etc/profile root@slave1:/etc/

## 应用配置
source /etc/profile

# 3.修改HIVE运行环境,配置Hadoop安装路径HADOOP_HOME
# 操作环境:master、slave1
cd /usr/hive/apache-hive-2.3.4-bin/conf && vim hive-env.sh

# 配置Hadoop安装路径
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
# 配置Hive配置文件存放路径
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.3.4-bin/conf
# 配置Hive运行资源库路径
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.3.4-bin/lib

# hive文件同步至 slave服务器 slave1 
scp -r /usr/hive/ root@slave1:/usr/

# 4.修改HIVE运行环境,配置Hive配置文件存放路径HIVE_CONF_DIR
# 操作环境:master、slave1
# 已操作

# 5.修改HIVE运行环境,配置Hive运行资源库路径HIVE_AUX_JARS_PATH
# 操作环境:master、slave1
# 已操作

# 6.解决jline的版本冲突,将$HIVE_HOMEN/lib/jline-2.12jar同步至$HADOOP_HOME/share/hadoop/yarn/lib/
# 操作环境:master、slave1

cp /usr/hive/apache-hive-2.3.4-bin/lib/jline-2.12.jar  /usr/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/

第三步 配置HIVE元数据至MySQL

1.slave1作为服务器端需要和Mysql通信,所以服务端需要将Mysql的依赖包放在Hive的lib目录下。
mysql-connector-java是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。
2.配置文件参考:

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>????</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>????</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://????:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>????</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>????</value>
</property>
</configuration>

hive-site.xml

<configuration>
<!--Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value> 
</property>
<!--数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value> 
</property>

<!--数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>

<!--MySOL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name> 
<value>root</value>
</property>

<!--MvsOL新提库应码-->
<property> 
<name>javax.jdo.option.ConnectionPassword</name> 
<value>123456</value> 
</property>
</configuration>
# 1.驱动JDBC拷贝至hive安装目录对应lib下(依赖包存放于/usr/package277/)
# 操作环境:slave1
cp /usr/package277/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.3.4-bin/lib/
# 2.配置元数据数据存储位置为/user/hive_remote/warehouse
# 操作环境:slave1
cd /usr/hive/apache-hive-2.3.4-bin/conf
vim hive-site.xml
# 3.配置数据库连接为MySQL
# 操作环境:slave1
# 4.配置连接JDBC的URL地址主机名及默认端口号3306,数据库为hive,如不存在自行创建,ssl连接方式为false
# 操作环境:slave1
# 5.配置数据库连接用户
# 操作环境:slave1
# 6.配置数据库连接密码
# 操作环境:slave1

第四步 配置HIVE客户端

1.master作为客户端,可进入终端进行操作;
2.关闭本地模式;
3.将hive.metastore.uris指向metastore服务器URL;
4.配置文件参考:

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>????</value>
</property>
<!--- 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>????</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://????</value>
</property>
</configuration>

hive-site.xml

<configuration>
<!--five产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name> 
<value>/user/hive_remote/warehouse</value> 
</property>
<!--使用本地服务造接Hive,默认为true-->
<property> 
<name>hive.metastore.local</name>
<value>false</value> 
</property>
<!--连接服务器-->
<property> 
<name>hive.metastore.uris</name> 
<value>thrift://slave1:9083</value>
</property> 
</configuration>
# 1.配置元数据存储位置为/user/hive_remote/warehouse
# 操作环境:master
cd /usr/hive/apache-hive-2.3.4-bin/conf
vim hive-site.xml
# 2.关闭本地metastore模式
# 操作环境:master
# 3.配置指向metastore服务的主机为slave1,端口为9083
# 操作环境:master

第五步 启动Hive

1.服务器端初始化数据库,并启动metastore服务;
2.客户端开启Hive client,即可根据创建相关数据操作。

# 1.服务器端初始化数据库,启动metastore服务
# 操作环境:slave1
# slave1 节点  启动服务
schematool -dbType mysql -initSchema
hive --service metastore &
# 2.客户端开启进入hive,创建hive数据库
# 操作环境:master
hive
> create database hive;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++二分查找 决策包容性】1300. 转变数组后最接近目标值的数组和

本文涉及的基础知识点 C二分查找 决策包容性 LeetCode1300. 转变数组后最接近目标值的数组和 给你一个整数数组 arr 和一个目标值 target &#xff0c;请你返回一个整数 value &#xff0c;使得将数组中所有大于 value 的值变成 value 后&#xff0c;数组的和最接近 target …

【开端】JAVA中的切面使用

一、绪论 在不使用过滤器和 拦截器的前提下&#xff0c;如果统一对JAVA的 方法进行 管理。比如对一类方法或者类进行日志监控&#xff0c;前后逻辑处理。这时就可以使用到切面。它的本质还是一个拦截器。只是通过注解的方式来标识所切的方法。 二、JAVA中切面的使用实例 Aspec…

如何看待“低代码”开发平台的兴起

目录 1.概述 1.1.机遇 1.2.挑战 1.3.对开发者工作方式的影响 2.技术概览 2.1.主要特点 2.2.市场现状 2.3.主流低代码平台 2.4.分析 3.效率与质量的权衡 3.1.提高开发效率 3.2.质量与安全隐患 3.3.企业应用开发的利弊分析 4.挑战与机遇 4.1.机遇 4.2.挑战 4.3.…

为什么需要在线实时预览3D模型?如何实现?

在线实时预览3D模型在现代设计、产品开发、市场营销、以及娱乐等领域中变得越来越重要&#xff0c;原因可以归结为以下几个方面&#xff1a; 1、多平台兼容性&#xff1a; 在线实时预览通常不依赖于特定的操作系统或软件平台&#xff0c;只要设备能够访问互联网和浏览器&…

21-原理图的可读性的优化处理

1.自定义原理图尺寸 先将原理图移动到左下角 2.划分模块 3.放置模块字符串

第三期书生大模型实战营——基础岛

1.书生大模型全链路开源体系 【书生浦语大模型全链路开源开放体系】 https://www.bilibili.com/video/BV18142187g5/?share_sourcecopy_web&vd_source711f676eb7f61df7d2ea626f48ae1769 视频里介绍了书生浦语大模型的开源开放体系&#xff0c;包括了其的技术发展、模型架…

ubuntu系统下安装LNMP集成环境的详细步骤(保姆级教程)

php开发中集成环境的安装是必不可少的技能,而LNMP代表的是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。今天就给大家分享下LNMP的安装步骤。 1 Nginx安装 在安装Nginx前先执行下更新命令: sudo apt-get update 接下来开始安装Nginx, 提示:Could not get lock /v…

【mysql 第二篇章】请求到真正执行 SQL 到底是一个怎么样的过程?

从用户调用到SQL执行的流程中间发生了什么事情 1、网络请求使用 线程 来处理&#xff0c;当数据库连接池中监听到有连接请求&#xff0c;这个时候会分配一个线程来处理。 2、SQL接口 负责接收 SQL 语句&#xff0c;当线程监听到有请求和读取数据的之后&#xff0c;将 SQL 语句…

Android Fragment:详解,结合真实开发场景Navigation

目录 1&#xff09;Fragment是什么 2&#xff09;Fragment的应用场景 3&#xff09;为什么使用Fragment? 4&#xff09;Fragment如何使用 5&#xff09;Fragment的生命周期 6&#xff09;Android开发&#xff0c;建议是多个activity&#xff0c;还是activity结合fragment&…

SparkSQL——AnalyzedLogicalPlan生成

Rule和RuleExecutor SparkSQL中对LogicalPlan的解析、优化、还有物理执行计划生成都是分成一个个Rule进行的。 RuleExecutor是一个规则引擎&#xff0c;它收集Rule&#xff0c;并对plan按照rule进行执行。 每一个Rule的实现类都要实现apply方法&#xff0c;具体逻辑都放在这个…

mysql中的时间相关函数

MySQL服务器中有3种时区设置&#xff1a; 系统时区&#xff08;保存在system_time_zone系统变量中&#xff09;服务器时区&#xff08;保存在全局系统变量time_zone中&#xff09;每个客户端连接的时区&#xff08;保存在会话变量time_zone中&#xff09; 其中&#xff0c;客…

极米RS10Plus性价比高吗?7款4-6K价位投影仪测评哪款最好

通常家庭想买个投影仪都会选择4-6K这个价位段的投影仪&#xff0c;3K以下的投影配置太低&#xff0c;6K以上的价格略高&#xff0c;4-6K价位段的中高端投影仪正好满足大部分家庭的使用需求。正好极米投影在8月份上新了一款Plus版本的长焦投影&#xff1a;极米RS10Plus&#xff…

剪切走的照片找回:数据恢复实战指南

一、引言&#xff1a;当珍贵瞬间遭遇剪切失误 在数字化时代&#xff0c;照片不仅是记忆的载体&#xff0c;更是情感与故事的传承。然而&#xff0c;一次不经意的剪切操作失误&#xff0c;却可能让这些珍贵的瞬间面临丢失的风险。面对剪切走的照片&#xff0c;许多用户会感到无…

AI看奥运 | 从巴黎奥运会看人工智能的应用和发展

2024巴黎奥运会火热空前&#xff0c;从开幕式到金牌争夺战&#xff0c;本届奥运会的关注热度持续攀升。与往届不同的是&#xff0c;本届奥运会不仅是首次在体育场馆外举办的户外开幕式的奥运会&#xff0c;同时也是在转播技术上首次广泛应用AI技术的奥运会&#xff0c;包括“时…

C++ 新特性 | C++20 常用新特性介绍

目录 1、模块(Modules) 2、协程(Coroutines) 3、概念(Concepts) 4、范围(Ranges) 5、三向比较符&#xff08;three-way comparison&#xff09; C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https…

哈尔滨等保测评——为工业网络安全保驾护航新航标

哈尔滨&#xff0c;这个以冰雪和美丽闻名世界的城市&#xff0c;现在又树立了一个全新的行业标准&#xff0c;那就是“等保”&#xff0c;正在掀起一场新的安全革命&#xff0c;保卫着这个智能时代&#xff01; ❄️【哈尔滨新视野】❄️ 哈尔滨是一块充满创新活力的土地&…

数据结构之Map和Set(下)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 上一篇文章&#xff0c;我们学习了&#xff1a;二叉搜索树、Map和Set的介绍以及常见方法的基本使用…

充电宝啥牌子质量好性价比高?探寻性价比高充电宝!

这个移动设备无处不在的时代&#xff0c;充电宝已经成为我们生活中不可或缺的配件。然而&#xff0c;面对市场上琳琅满目的充电宝品牌和型号&#xff0c;许多人在选择时往往感到困惑。如何找到一款质量好、性价比高的充电宝&#xff0c;成为了众多消费者关注的焦点。本文将带您…

SpringMVC (发送请求——>参数传递—— >响应数据)

设置请求访问路径 RequestMapper&#xff1a;将请求访问路径和我们业务层的方法联系起来 ResponseBody&#xff1a;将我们业务层方法的返回值转化为json&#xff0c;xml或其他格式的数据返回给页面 两种请求 get请求 post请求 测试案例 RequestMapping("/getNameAndAge&…

Linux逻辑卷管理LVM

系列文章目录 提示&#xff1a;仅用于个人学习&#xff0c;进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 7.Linux磁盘管理/文件系统 提示&a…