Hive数据仓库的搭建是基于Hadoop,搭建之前需要先搭建Hadoop,具备一定hadoop基础知识。
可以参考:
Hadoop学习总结(一)之Hadoop基础知识
Hadoop学习总结(二)之Centos7安装Hadoop-2.9.2及相应配置
1.下载Hive-2.3.7
http://archive.apache.org/dist/hive/
2.安装部署
2.1解压到/opt/module/目录
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/module/
修改apache-hive-1.2.1-bin.tar.gz的名称为hive-2.3.7
mv apache-hive-1.2.1-bin/ hive-2.3.7
2.2配置Hive环境变量
打开/etc/profile文件,
在本地环境变量文件中添加
#Hive Enviroment
export HIVE_HOME=/opt/module/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
:wq 保存后退出
让修改后的文件生效
source /etc/profile
2.3配置文件
修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh
mv hive-env.sh.template hive-env.sh
配置hive-env.sh文件
- 配置HADOOP_HOME路径
export HADOOP_HOME=/opt/module/hadoop-2.9.2
- 配置HIVE_CONF_DIR路径
export HIVE_CONF_DIR=/opt/module/hive-2.3.7/conf
2.4Hadoop集群配置
1.必须启动hdfs和yarn
sbin/start-dfs.sh
sbin/start-yarn.sh
2.在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写,此文件为数据上传地址
/opt/module/ hadoop-2.9.2
#创建文件
bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /user/hive/warehouse
#权限
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse
2.5用Mysql存储Hive的元数据
如果没有安装数据库可以参考:
Centos7安装mysql5.7详解以及远程连接
1.驱动拷贝
解压mysql-connector-java-5.1.30.zip驱动包,拷贝mysql-connector-java-5.1.30目录下的mysql-connector-java-5.1.30-bin.jar到/opt/module/hive-2.3.7/lib/
cp mysql-connector-java-5.1.30-bin.jar /opt/module/hive/lib/
2.配置Metastore到MySql
在/opt/module/hive/conf目录下创建一个hive-site.xml
用户自定义配置文件:hive-site.xml
touch hive-site.xml
vi hive-site.xml
将下面内容修改粘贴到hive-site.xml文件中
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 存储在hdfs上的数据路径 -->
<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>/tmp/hive</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}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
<!-- 本地mysql -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么为 localhost,或者为主机名 -->
<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>
<!-- 如果 mysql用户名-->
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<!-- 如果 mysql密码-->
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<!-- 数据库信息显示配置-->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
</configuration>
注意不同版本的数据库对应不同数据库的驱动类名称
新版本8.0版本的驱动为com.mysql.cj.jdbc.Driver
旧版本5.x版本的驱动为com.mysql.jdbc.Driver
3.Hive运行日志信息配置
Hive的log默认存放在/tmp/hadoop/hive.log目录下(当前用户名下)
修改hive的log存放日志到/opt/module/hive-2.3.7/logs
- 修改/opt/module/hive-2.3.7/conf/hive-log4j.properties.template文件名称为
hive-log4j.properties
mv hive-log4j.properties.template hive-log4j.properties
- 在hive-log4j.properties文件中修改log存放位置
hive.log.dir=/opt/module/hive-2.3.7/logs
4.在/opt/hive-2.3.7/bin目录下执行以下命令
更新元数据
schematool -dbType mysql -initSchema
3启动Hive
hive
转载:https://blog.csdn.net/weixin_38924500/article/details/106684655