Hive数据仓库
原创大约 3 分钟
Hive概述
Hive是一个建立在Hadoop之上的数据仓库,它提供了一系列的工具,可以实现对
PB级
数据的提取(Extract)、转化(Transform)和加载(Load),也就是ETL。Hive的数据存储是基于HDFS实现的,它没有专门的数据存储格式,所以只要HDFS支持的,它也都支持,例如
TextFile
、SequenceFile
和MapFile
等。

CLI
、JDBC/ODBC
和Web UI
都表示用户接口。Metastore
是Hive元数据的集中存放地,它默认使用Derby作为内置的存储引擎,推荐使用MySQL作为外置的存储引擎。Driver
表示Hive的底层驱动,负责编译、优化和执行HQL
查询语句,而所有的数据都保存在HDFS里,通过MapReduce执行计算。

本机部署
因为Hive是依赖于Hadoop的,所以要在本机先部署好Hadoop:本机部署Hadoop
先下载并解压Hive安包。
> cd /home/work
> wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
> tar zxf apache-hive-3.1.3-bin.tar.gz
> mv apache-hive-3.1.3-bin hive-3.1.3
> cd hive-3.1.3
修改 hive-env.sh
相关配置。
> cd conf
> cp hive-env.sh.template hive-env.sh
> vi hive-env.sh
# 在最下面增加几行
export JAVA_HOME=/usr/local/java/jdk1.8.0_401
export HIVE_HOME=/home/work/hive-3.1.3
export HADOOP_HOME=/home/work/hadoop-3.2.0
修改hive-site.xml
相关配置。
> cp hive-default.xml.template hive-site.xml
> vi hive-site.xml
# 增加下面的配置项
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://172.16.185.176:3306/hive?serverTimezone=Asia/Shanghai</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/home/work/volumes/hive/querylog</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/work/volumes/hive/scratchdir</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/work/volumes/hive/resources</value>
</property>
顺便将和MySQL适配的驱动包拷贝到${HIVE_HOME}/lib
里面去。
然后在Hadoop的core-site.xml
文件中增加如下配置。
> cd /home/work/hadoop-3.2.0/etc/hadoop
> vi core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
初始化Metastore
。
> cd /home/work/hive-3.1.3
> ./bin/schematool -initSchema -dbType mysql
首次初始化时如果没有提前修改hive-site.xml
中第3215
行的代码,一定会报下面的错误,貌似这是官方的一个BUG
。
......
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8
at [row,col,system-id]: [3215,96,"file:/home/work/hive-3.1.3/conf/hive-site.xml"]
......
直接将报错的3215
行删除就行了。
再次执行Metastore
初始化命令成功。
Metastore connection URL: jdbc:mysql://172.16.185.176:3306/hive?serverTimezone=Asia/Shanghai
Metastore Connection Driver : com.mysql.cj.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 3.1.0
Initialization script hive-schema-3.1.0.mysql.sql
......
Initialization script completed
schemaTool completed
到这一步,Hive就已经安装好了。
感谢支持
更多内容,请移步《超级个体》。