hive部署

版本

apache-hive-2.3.9

下载地址

集群规划

hive属于一个工具直接部署到cdh1主节点上

上传服务器指定目录解压

1
tar -xf apache-hive-2.3.9-bin.tar.gz

配置环境变量

vi /etc/profile.d/hive.sh

1
2
export HIVE_HOME=/opt/hadoop/hive/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile.d/hive.sh

修改配置文件

拷贝一个新的配置文件 cp hive-default.xml.template hive-site.xml

hive需要把元数据存储到mysql里面,把驱动 mysql-connector-java-5.1.48.jar 放到 apache-hive-2.3.9-bin/lib 下。

找到以下节点修改成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://172.16.100.177:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>soyuan.123</value>
<description>password to use against metastore database</description>
</property>

xml文件中 & 替换成 &amp;

生成数据库

保证上面的配置都对的情况下

1
schematool -dbType mysql -initSchema

修改配置文件本地路径

把配置文件里面的 ${system:java.io.tmpdir} ${system:user.name} 都换成本地的绝对路径,不然会报错。

创建目录 /opt/hadoop/hive/tmp

${system:java.io.tmpdir} 改成 /opt/hadoop/hive/tmp

把*${system:user.name}* 改成cdh1

创建hdfs文件夹

因为配置文件配置了路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
</property>

<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
<description>Location of Hive run time structured log file</description>
</property>
1
2
3
4
5
6
$ hdfs dfs -mkdir -p /user/hive/warehouse
$ hdfs dfs -mkdir -p /user/hive/tmp
$ hdfs dfs -mkdir -p /user/hive/log
$ hdfs dfs -chmod -R 777 /user/hive/warehouse
$ hdfs dfs -chmod -R 777 /user/hive/tmp
$ hdfs dfs -chmod -R 777 /user/hive/log

使用客户端

1
2
$ hive
$ show databases;

启动HiveServer2服务

在每个hadoop 节点下修改core-stie.xml 增加配置,链接时候的账号密码 root/root

1
2
3
4
5
6
7
8
9
<!-- hive配置   -->       
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

HiveServer2(HS2)是一个服务端接口,使远程客户端可以执行对Hive的查询并返回结果。目前基于Thrift RPC的实现是HiveServer的改进版本,并支持多客户端并发和身份验证

1
$ hiveserver2

如果正式使用可以打包成系统服务

web页面

http://cdh1:10002/

beeline客户端测试

1
2
$ !connect jdbc:hive2://cdh1:10000/hive1
# 账号密码都是 root/root

hive部署
https://zhaops-hub.github.io/2021/11/30/hadoop/hive部署/
作者
赵培胜
发布于
2021年11月30日
许可协议