在CentOS6.9安装Hive2.3.4

一、环境

操作系统:CentOS6.9
软件版本:Hive2.3.4

二、安装MySQL

hive的数据存储

首先弄清楚什么是元数据和表数据:元数据就是表的属性数据,表的名字,列信息,分区等标的属性信息,它是存放在RMDBS传统数据库中的(如mysql)。表数据就是表中成千上万条数据了。

hive的存储过程:启动hive时,会初始化hive,这时会在mysql中生成大约36张表(后续随着业务的复杂会增加),然后创建表,会在mysql中存放这个表的信息(不是以表的形式存在的,而是把表的属性以数据的形式放在mysql中,这样在hive中使用sql命令一样是能够查到这张表的)。然后把本地的文本文件使用hive命令格式化导入到表中,这样这些数据就存放到hdfs中,而不是在mysql或hive中。

我这里是使用MySQL存储Hive的元数据,所以要先安装MySQL。可参考以下方法:

在CentOS6.9安装MySQL5.7:https://blog.csdn.net/andyguan01_2/article/details/88027338

修改mysql参数:

# 进入mysql
mysql -uroot -p # 然后输入mysql的密码
# 切换成mysql库
use mysql; 
# 查询用户信息
select User,Host,authentication_string from user; 
# 设置远程登录权限
grant all privileges on *.* to 'root'@'%' identified by '填实际密码' with grant option; 
# 授权本地客户端登录此库
grant all privileges on *.* to 'root'@'10.200.4.117' identified by '填实际密码';
# 刷新配置信息
flush privileges;
# 退出
exit

三、安装Hive

1、下载安装包

打开下载网址:
https://archive.apache.org/dist/hive/hive-2.3.4/
在这里插入图片描述
在以上页面找到对应文件,右键复制链接地址(https://archive.apache.org/dist/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz)。

以root用户登录服务器,下载安装文件:

wget https://archive.apache.org/dist/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz

2、解压安装文件

以root用户执行以下命令解压:

tar -zxf apache-hive-2.3.4-bin.tar.gz -C /u01/app

修改安装文件所有者:

chown -R hadoop:hadoop /u01/app/apache-hive-2.3.4-bin

以hadoop用户下载连接mysql的jar包:

cd /u01/app/apache-hive-2.3.4-bin/lib
wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar

3、修改配置文件

3.1 配置/etc/profile

以root用户操作:

vi /etc/profile

增加以下内容:

export HIVE_HOME=/u01/app/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin

使配置生效:

source /etc/profile

3.2 配置hive-env.sh

以hadoop用户操作。先从template文件复制,再编辑:

cp $HIVE_HOME/conf/hive-env.sh.template $HIVE_HOME/conf/hive-env.sh
vi $HIVE_HOME/conf/hive-env.sh

输入以下内容:

HADOOP_HOME=/u01/app/hadoop-2.6.5
export HIVE_CONF_DIR=/u01/app/apache-hive-2.3.4-bin/conf

3.3 配置hive-log4j2.properties

以hadoop用户操作。先从template文件复制,再编辑:

cp $HIVE_HOME/conf/hive-log4j2.properties.template $HIVE_HOME/conf/hive-log4j2.properties
vi $HIVE_HOME/conf/hive-log4j2.properties

设置:

property.hive.log.dir = /u01/app/hadoop-2.6.5/logs

3.4 配置hive-site.xml

以hadoop用户操作。先从template文件复制,再编辑:

cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml
vi $HIVE_HOME/conf/hive-site.xml

将configuration中的内容换成如下配置:

<configuration>
<!-- 此参数在将hive元数据路径修改成ns的时候方便hive识别ns,
用oozie调用hive时,上传到hdfs上的hive-site.xml中这个参数一定要注释掉-->
<!--<property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns</value>
</property>-->
<!-- hive元数据地址,默认是/user/hive/warehouse -->
<property>
	<name>hive.metastore.warehouse.dir</name>
	<value>/data/hive/warehouse</value>
</property>
<!-- hive查询时输出列名 -->
<property>
	<name>hive.cli.print.header</name>
	<value>true</value>
</property>
<!-- 显示当前数据库名 -->
<property>
	<name>hive.cli.print.current.db</name>
	<value>true</value>
</property>
<!-- 开启本地模式,默认是false -->
<property>
	<name>hive.exec.mode.local.auto</name>
	<value>true</value>
</property>
<!-- URL用于连接远程元数据 -->
<property>
	<name>hive.metastore.uris</name>
	<value>thrift://10.200.4.117:9083</value>
	<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
<!-- 元数据使用mysql数据库 -->
<property>
	<name>javax.jdo.option.ConnectionURL</name>
	<value>jdbc:mysql://10.200.4.117:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
	<description>JDBC connect string 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>填mysql的root密码</value>
	<description>password to use against metastore database</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>
</configuration>

4、创建hive元数据所在路径

以hadoop用户操作:

hdfs dfs -mkdir /tmp #如果有这个路径,这不需要重新创建
hdfs dfs -mkdir -p /user/hive/warehouse #创建目录
hdfs dfs -chmod g+w /tmp #修改文件权限
hdfs dfs -chmod g+w /user/hive/warehouse #修改文件权限

5、初始化mysql元数据库

以hadoop用户操作:

 schematool -initSchema -dbType mysql

在这里插入图片描述
6、开启元数据

以hadoop用户操作:

nohup hive --service metastore & #开启元数据

7、启动Hive并测试

以hadoop用户操作:

hive
show databases;
create database ssj;
create table ssj.tmp1
(name string) 
row format delimited fields terminated by "\t";
select * from ssj.tmp1;

在这里插入图片描述
完毕。

猜你喜欢

转载自blog.csdn.net/andyguan01_2/article/details/88039419
0条评论
添加一条新回复