赞
踩
在大数据平台的搭建过程中,我们安装完成Hadoop之后,接着安装Hive。
这里版本选择,是因为Hive 3.1.2相对于之前的版本,在查询性能、事务能力、SQL标准支持等方面均有不小的改进和优化,是一个更加稳定、高效的版本。
话不多说,上干货。
按照顺序看到这里的话,应该知道,所有的安装包上传到software,解压到server。再次提醒。
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/server
# 改名,良好的命名规范。
cd /opt/server
mv apache-hive-3.1.2-bin.tar.gz/ hive-3.1.2.tar.gz
hive的安装目录
,先操作lib
文件夹下的三个jar
:log4j-slf4j-impl-2.10.0.jar
(解决日志冲突)rm -rf log4j-slf4j-impl-2.10.0.jar
替换guava
将
H
A
D
O
O
P
H
O
M
E
/
s
h
a
r
e
/
c
o
m
m
o
n
/
l
i
b
/
g
u
a
v
a
−
27.0
−
j
r
e
.
j
a
r
替换过来,删除自带的低版本。
‘
HADOOP_HOME/share/common/lib/guava-27.0-jre.jar 替换过来,删除自带的低版本。`
HADOOPHOME/share/common/lib/guava−27.0−jre.jar替换过来,删除自带的低版本。‘HADOOP_HOME替换为自己hadoop的安装目录,$HIVE_HOME替换为自己的hive安装目录,没有配置环境变量的话,不要直接复制粘贴。`
mv $HADOOP_HOME/share/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
rm $HIVE_HOME/lib/guava-19.0.jar
添加mysql的连接驱动 mysql-connector-java-5.1.47.jar
(做开发的应该不会没有吧?)
说明:
在hive中,我们需要将默认的元数据存储数据库更换为MySQL,默认为Derby。因为Derby只支持单会话,而MySQL支持多会话。
若是没有安装mysql,参照我的另一篇教程:http://t.csdn.cn/eNltB
进入到$HIVE_HOME/conf/
目录下,编辑:
vim hive-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- jdbc连接的URL --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node1:3306/metastore?useSSL=false</value> </property> <!-- jdbc连接的Driver--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- jdbc连接的username--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- jdbc连接的password --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <!-- Hive默认在HDFS的工作目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <!-- Hive元数据存储的验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <!-- 元数据存储授权 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://node1:9083</value> </property> <!-- 指定hiveserver2连接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>node1</value> </property> <!-- 指定hiveserver2连接的端口号 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> </configuration>
可以直接命令行登录,也可以使用navicat等第三方连接软件,创建一个空的数据库metastore
即可。
mysql -uroot -p123456
> create database metastore;
> quit;
进入hive的bin目录初始化数据库:
./schematool -initSchema -dbType mysql -verbose
查看MySQL中的metastore数据库,多出74张表,表示初始化成功。
vim /etc/profile
export HIVE_HOME=/opt/server/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
先启动hadoop集群
start-all.sh
启动hive的元数据管理
hive --service metastore &
# & 表示后台运行
启动hive
hive
测试,有输出不报错即ok
show databases;
退出命令
:quit
开启远程连接:
hive --service hiveserver2 &
使用beeline进行连接测试:
beeline
> !connect jdbc:hive2://node1:10000
> root
> (无密码直接回车即可)
> show databases;
出现数据库列表,表示连接成功。
注意:
一般大数据操作hive数仓,写SQL都是在DataGrip软件中进行,类似于IDEA,同一家的产品。
连接方式类似于mysql的第三方连接,记住
jdbc:hive2://node1:10000
这个地址!!!!
只使用本地hive,开启metastore,即可使用hive命令进入命令行操作界面;
使用远程工具连接hive,先开启metastore,再开启hiveserver2,才能使用工具连接hive!!
hive的操作命令,与mysql的语法类似,会更加丰富,需要专门练习。大数据中的sql一般要比之前学习mysql时要复杂一些。可以参考网上其他的教程,进行练习强化!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。