Hive安装与启动

下载

Index of /apache/hive

apache-hive-3.1.2-bin.tar.gz

安装

注:只需要安装到Hadoop主节点(原因见Hive概念)

解压apache-hive-3.1.2-bin.tar.gz

tar -zxf ./apache-hive-3.1.2-bin.tar.gz

/usr/data2/program/hadoop/

我解压在这个目录

修改环境变量

vi /etc/profile

export HIVE_HOME=/usr/data2/program/hadoop/apache-hive-3.1.2-bin

export PATH=$PATH:$HIVE_HOME/bin

保存后,重新加载环境变量

source /etc/profile

确认安装成功

执行

hive --version

看到版本,说明安装成功(环境变量配置OK)

配置hadoop路径

进入目录:

cd apache-hive-3.1.2-bin/conf/

创建配置文件

cp hive-env.sh.template hive-env.sh

修改配置文件

vi hive-env.sh

HADOOP_HOME=/usr/data2/program/hadoop/hadoop-3.3.2

配置元数据存储介质

默认是内置的derby形式

  • 缺点:在不同路径启动hive,每个hive的数据是独立的,无法共享

实际则会使用mysql元数据形式来存储

进入目录:

cd apache-hive-3.1.2-bin/lib

下载驱动

MySQL :: Download MySQL Connector/J (Archived Versions)

解压

上传mysql驱动

进入目录:

cd apache-hive-3.1.2-bin/conf/

创建配置文件

cp hive-default.xml.template hive-site.xml

修改配置文件

vi hive-site.xml

需要指定如下变量

变量

备注

javax.jdo.option.ConnectionUserName

root

是mysql的服务的账号

可以针对hive创建一个hive用户

方便账号管理

这里只是学习,就用root了

javax.jdo.option.ConnectionPassword

123456

是mysql服务的密码

javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.0.11:3306/hive

建议用5版本的连接工具,如

mysql-connector-java-5.1.20-bin.jar

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

hive.metastore.schema.verification

false

关闭校验

datanucleus.schema.autoCreateAll

true

开启自动创建

system:java.io.tmpdir

要增加这个 

<property>

    <name>system:java.io.tmpdir</name>

    <value>/usr/data2/program/hadoop/apache-hive-3.1.2-bin/io-tmpdir</value>

 </property>

要先自己创建

mkdir -p ./io-tmpdir

system:user.name

要增加这个 

<property>

    <name>system:user.name</name>

    <value>root</value>

 </property>

hive.server2.thrift.client.user

hive.server2.thrift.client.password        

hive客户端连接账号密码

我这里配置为

hive

123456

连接到hive服务的账号和密码

注意区分:

javax.jdo.option.ConnectionPassword

是hive采用mysql作为元数据形式时,

hive连接到mysql时,mysql的账号密码

启动mysql

我这里是用docker安装的

docker start mysql 即可

在mysql里,创建hive库

注意,字符集要选择如上,否则后面在hive里面建表会报字符过长的错误

启动hive元数据存储服务metastore

hive --service metastore

报错:

com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8

 at [row,col,system-id]: [3215,96,"file:/usr/data2/program/hadoop/apache-hive-3.1.2-bin/conf/hive-site.xml"]

hive-site.xml 3215行有问题,注释掉

报错:

Unknown database 'hive'

要先创建mysql里的hive schema,再启动hive

报错:

Caused by: MetaException(message:Version information not found in metastore.)

要关闭schema的校验

<property>

    <name>hive.metastore.schema.verification</name>

    <value>false</value>

</property>

报错:

missing : "`DBS`" in Catalog "" Schema

<property>

    <name>datanucleus.schema.autoCreateAll</name>

    <value>true</value>

 </property>

报错:

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

<property>

    <name>system:java.io.tmpdir</name>

    <value>/usr/data2/program/hadoop/apache-hive-3.1.2-bin/io-tmpdir</value>

 </property>

需要一个临时io路径,路径要自己先创建

启动元数据正常时,看到mysql的hive schema里,自动创建了一些信息

没报错,且卡住了,说明正常。

按CTRL + C停掉,

然后执行

hive --service metastore &
让服务在后台运行即可

  <property>

    <name>hive.exec.dynamici.partition</name>

    <value>true</value>

  </property>

  <property>

    <name>hive.exec.dynamic.partition.mode</name>

    <value>nonstrict</value>

    <description>

      In strict mode, the user must specify at least one static partition

      in case the user accidentally overwrites all partitions.

      In nonstrict mode all partitions are allowed to be dynamic.

    </description>

  </property>

开启动态副本

启动

0,启动hadoop

1,启动mysql

docker start mysql

注:具体请自行处理,我这里是基于docker的mysql启动

2,启动元数据仓库(启动hive服务)

hive --service metastore &

3,启动hive服务(可以通过远程连接hive)

hive --service hiveserver2 &

注:hiveserver2 是hiveserver1的优化版,解决了并发的问题,使用hiveserver2即可

要等一点时间,大概1两分钟吧,才看到开启了端口

可见,5518进程,hiveserver2服务开启了两个端口

10000:供客户端连接,连接方法,见下面作业操作方式2

10002:供界面查看连接情况  http://192.168.0.11:10002/

作业操作:

方式1,进入hive命令行

执行hive即可进入命令行

进入成功

方式2,使用工具连接(注,需要开启hive服务hiveserver2)

参见DBeaver工具使用

重启、停用hive服务

使用jobs 的kill %job号,杀掉,再启动即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值