小言_互联网的博客

Hive学习总结(二)之Centos7安装hive-2.7.3及相关配置

456人阅读  评论(0)

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}/&lt;username&gt; 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

上一篇:Hive学习总结(一)之Hive基础知识


转载:https://blog.csdn.net/weixin_38924500/article/details/106684655
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场