Hive安装和使用 centos7

前言

说明安装hive之前,系统已经安装好了 java,hadoop,mysql。

版本说明
java jdk1.8
haoop 3.2.2
hive 3.1.2

目前hive官网是支持hadoop3.x 版本的,hive 版本要3.x。不然安装没法使用。

hive的安装模式有2种,一种是使用自带的derby数据库,另一种是使用mysql作为元数据库。derby方式一般没人用,因为它是单用户模式。
我这里主要讲解mysql方式。

hive仅仅是一个客户端工具,不存在集群概念,因此安装的时候无需每台机器安装,哪个节点需要使用,就安装在哪个节点上。多个节点安装的时候mysql的元数据库一定要相同(即要在同一个mysql同一个库上),否则各个客户端获取的数据不一致

1.hive安装

1.下载hive

下载链接:https://downloads.apache.org/hive/hive-3.1.2/

wget https://downloads.apache.org/hive/hive-3.1.2/

解压

tar -zxvf apache-hive-3.1.2-bin.tar.gz
2.修改配置文件

1.修改环境变量,添加Hive环境变量

vi /etc/profile
		
#hive安装目录
 
export HIVE_HOME=/usr/local/work/hive/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin


source /etc/profile   //应用变量更改
3.配置hive

1、在目录 /usr/local/work/apache-hive-3.1.2-bin 下创建目录 tmp 来存放hive运行过程中生成的临时文件

2、启动hadoop

start-all.sh

3、在 HDFS 上创建2个文件夹

hdfs dfs -mkdir -p /usr/local/work/hive/data 
#存储数据
hdfs dfs -mkdir -p /root/hive/warehouse

给文件增加读写权限报错:

chmod: changing permissions of '/usr/local/work/hive/flwarehouse': Cannot set permission for /usr/local/work/hive/flwarehouse. Name node is in safe mode.

在这里插入图片描述
解决办法:

hadoop dfsadmin -safemode leave

在这里插入图片描述

4、进入目录 /soft/apache-hive-2.3.6-bin/conf 创建 文件 hive-site.xml
(该目录下默认没有 hive-site.xml 文件 ,该文件可以通过复制 hive 自带的文件 hive-default.xml.template 来创建)

cd cd /usr/local/work/hive/apache-hive-3.1.2-bin/conf
cp hive-default.xml.template hive-site.xml

5、进入目录 /soft/apache-hive-2.3.6-bin/conf 创建 文件 hive-env.sh
(该目录下默认没有 hive-env.sh 文件 ,该文件可以通过复制 hive 自带的文件 hive-env.sh.template 来创建)

cd /usr/local/work/hive/apache-hive-3.1.2-bin/conf
cp hive-env.sh.template hive-env.sh

在这里插入图片描述

6、将 mysql-connector-java-8.0.26.jar 传输到 apache-hive-3.1.2-bin/lib 目录下

7、在mysql下,登录root用户,更改远程权限,并创建 名称 为 hive 的 数据库

 #建立数据库
create fl_hive if not exists hive;

#设置远程登录的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

#刷新配置
FLUSH PRIVILEGES;
5、修改Hive 配置文件

在 /usr/local/work/hive/apache-hive-3.1.2-bin/conf 下
修改 hive-site.xml 文件,通过搜索对应配置替换你的数据。

#MySQL 连接属性
javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUsername
javax.jdo.option.ConnectionPassword

编辑这个最好吧文件拉取出来,用编辑器打开查找替换。

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://xxx.xxx.48.130:3306/hive?useUnicode=true&amp;serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</value>
    ##此处IP地址为MySQL数据库的地址,文中是用的虚拟机乙的IP地址
    ##因为 MySQL 8.0的要求,所以此处已经添加时区;如果你是MySQL5.0等版本,可以只填写  jdbc:mysql://192.168.48.130:3306/hive
</property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    ##MySQL8.0版本驱动名称为 com.mysql.cj.jdbc.Driver ;如果你是MySQL5.0等版本,驱动名称为com.mysql.jdbc.Driver
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>xxx</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>xxxx</value>
    ##此处密码因人而异
</property>

#Hive 在 HDFS 上工作路径
hive.exec.scratchdir
#Hive 在存储数据时在 HDFS 中的路径
hive.metastore.warehouse.dir

<property>
    <name>hive.exec.scratchdir</name>
    <value>/usr/local/work/date/soft/apache-hive-3.1.2-bin</value>
</property>

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/usr/local/work/hive/warehouse</value>
</property>

#HIve 临时目录路径
hive.exec.local.scratchdir
hive.downloaded.resources.dir
hive.server2.logging.operation.log.location

# 没有的文件,自己手动创建 比如 在 apache-hive-3.1.2-bin/ 创建 tmp

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr/local/work/date/soft/apache-hive-3.1.2-bin/tmp/${user.name}</value>
</property>

<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/local/work/date/soft/apache-hive-3.1.2-bin/tmp/${hive.session.id}_resources</value>
</property>

<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/usr/local/work/date/soft/apache-hive-3.1.2-bin/tmp/log/operation_logs</value>
</property>

6、初始化
cd /usr/local/work/hive/apache-hive-3.1.2-bin/bin

schematool -dbType mysql -initSchema

编译完成
在这里插入图片描述
查看数据库会有这么写表
在这里插入图片描述

7 运行hive
cd /usr/local/work/hive/apache-hive-3.1.2-bin/bin

 ./hive

在这里插入图片描述

2、安装途中遇到的问题

1.guava 在 hadoop 和hive 的版本不一致。

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

在这里插入图片描述
解决办法:
保持都为高版本的。

删除hive的lib下面的guava-19.0.jar,然后拷贝hadoop下面的guava-27.0.jar即可。

2、java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8
在这里插入图片描述

解决办法:
这是配置文件的bug.
行的注释掉 或者删除描述。
在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_43975771/article/details/121021238
おすすめ