安装环境
CentOS 7
Hadoop 3.1.3
Hive 3.1.2
mysql 驱动(mysql-connector-java-5.1.39.jar)
介绍
数据仓库的定义
数据仓库(Data Warehouse,简称数仓,DW),是一个用于存储,分析,报告的数据系统
数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。
安装步骤
meta store服务配置有三种模式:内嵌模式,本地模式,远程模式
下方教程为企业推荐模式远程模式安装:
Metastore单独配置,启动
Metadata存储介质:Mysql
安装前准备
环境保证
保证服务器基础环境正常,Hadoop集群健康可用
服务器基础环境:集群时间同步,防火墙关闭,主机hosts映射,免密登录,JDK安装
hadoop与hive整合
因为Hive需要把数据存储在HDFS上,并且通过MR作为执行引擎处理数据;
因此需要在Hadoop中添加相关配置属性,以满足Hive在Hadoop上运行
修改Hadoop中core-site.xml,并且Hadoop集群同步配置文件,重启Hadoop生效
<!-- 整合hive -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
配置阶段
正常启动HDFS和YARN
安装MySQL
上传hive的安装包
解压hive
在hive的lib目录下上传mysql的驱动
mysql-connector-java-5.1.47-bin.jar
修改配置信息
在Hive的安装目录下,找到conf目录,我的目录路径如下opt/module/hive-3.1.3/conf。将原本的脚本重命名.
cp hive-env.sh.template hive-env.sh
编辑hive-env.sh脚本,添加Hadoop的路径
export HADOOP_HOME=/opt/module/hadoop-3.1.3/
export HIVE_CONF_DIR=/opt/module/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/opt/module/apache-hive-3.1.2-bin/lib
在conf 目录下创建一个配置文件 hive-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 存储元数据mysql相关配置 /etc/hosts -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value> jdbc:mysql://hadoop100:3306/hive3?
createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&chara
cterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop100</value>
</property>
<!-- 远程模式部署matestore metastore地址 -->
<property>
<name>hive.matestore.uris</name>
<value>thrift://hadoop100:9083</value>
</property>
<property>
<name>hive.matestore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
解决jar包冲突
删除hive的lib目录中低版本jar包 guava-19.0.jar
将hadoop中高版本复制过去
cp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/apache-hive-3.1.2-bin/lib/
收尾阶段
初始化
初始化之前要在mysql中创建一个名为 hive3 的数据库
使用 create database hive3 来创建
之后在hive/bin目录下对hive进行初始化元数据的操作
schematool -initSchema-dbType mysql -verbose
初始化成功后会在控制台输出如下信息并且会在mysql的hive3数据库创建74张表
beeline>
beeline> Initialization script completed
schemaTool completed
启动hive
在bin/目录下进入hive
./hive