Hive是什么?
hive是一个开源的用于大数据分析和统计的数据库工具,它的存储基于HDFS,计算基于MapReduce或Spark,可以将结构化数据映射成表,并提供类SQL查询功能。
Hive的特点:
提供类SQL查询,容易上手,开发方便
封装了很多方法,尽量避免了开发MapReduce程序,减少成本
支持自定义函数,可以根据需求实现函数
适用于处理大规模数据,小数据的处理没有优势
执行延迟较高,适合用于数据分析,不适合对时效性要求较高的场景
Hive的安装与配置详解
准备:打开三台虚拟机,并且连接好xshell
1.传输apache-hive-2.3.3-bin.tar.gz(hive官网地址:https://hive.apache.org/,下载对应版本即可)压缩包文件到/opt/software目录下,如下图所示:
可以使用rz命令,选择路径上传,也可以直接把文件从本地拖拽致xshell内,也可以使用xftp来传输。
2.解压apache-hive-2.3.3-bin.tar.gz 到指定文件夹目录下
修改文件夹名,此步骤可忽略:
3.在/opt/software/hive-2.3.3/lib目录下上传mysql连接包,(下载地址:https://downloads.mysql.com/archives/c-j/) 4.在Hive的conf目录下下添加以下配置信息:
代码如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--连接数据库地址,名称 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/myhive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</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>123456</value>
</property>
<!--客户端显示当前查询表的头信息 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!--客户端显示当前数据库名称信息 -->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<!--关闭数据库的版本检查-->
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
5.查看/etc/profile下Hadoop的安装路径
复制路径 6.改名,vi hive-log4j2.properties并且在对应的位置修改
property.hive.log.dir = /opt/software/hive-2.3.3/logs
7.编辑hive-env.sh,在文件对应的位置添加:
vi hive-env.sh
HADOOP_HOME=/opt/software/hadoop-2.9.2
export HIVE_CONF_DIR=/opt/software/hive-2.3.3-bin/conf
8.改名(可忽略),vi hive-log4j2.properties并且在对应位置修改自己的hive路径。
mv hive-log4j2.properties.template hive-log4j2.properties
在对应的位置修改:
property.hive.log.dir = /opt/software/hive-2.3.3/logs
9.给mysql赋予权限:mysql -uroot -p123456
10.赋予权限
grant all privileges on *.* to root@"%" identified by "123456" with grant option;
若此处报错:
先查看mysql初始密码策略。
SHOW VARIABLES LIKE 'validate_password%';
设置密码的验证强度等级。
set global validate_password_policy=LOW;
设置密码的长度。
set global validate_password_length=6;
然后再进行赋予权限。
grant all privileges on *.* to root@"localhost" identified by "123456" with grant option;
11.配置HIVE_HOME到系统环境变量中:vi /etc/profile,添加Hadoop和hive的路径。12.配置完后需要重新加载配置文件:
重新加载:
source /etc/profile。
13.初始化Hive,执行以下命令
schematool -dbType mysql -initSchema
14.执行hive命令进行连接,如图所示即成功,show databases;可查看。
15.执行hiveserver2,启动服务端,Hive的bin目录下有hiveserver2,启动bin/ hiveserver2。
16.新建node01,使用如下命令进行客户端连接:
beeline -u 'jdbc:hive2://192.168.67.110:10000' -n root
17.若启动异常,则需要在hadoop路径下配置文件core-site.xml中加入:
代码:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
并且重新初始化集群即可。
若出现上述问题,则需要先删除hive数据库,然后使用命令进行初始化。
初始化命令:
schematool -dbType mysql -initSchema
18.关闭集群,并且格式化hdfs。
输入Y19.在hadoop路径下删除hdfs,再新建(mkdir hsfs目录),再在hdfs目录下新建data,name,tmp目录。
20.node02,node03同理
21.重新格式化
22.在浏览器中访问node01地址,如下图所示则集群正常。
23.重新启动hiveserver2服务
客户端连接成功后,若如图所示即成功安装配置好了hive。
常见问题
一、在给mysql赋予权限时报错
解决方法:
修改mysql的初始密码策略
1.将密码的验证强度设为低级
set global validate_password_policy=LOW;
2.将密码长度设置为6位
set global validate_password_length=6;
二、Hive连接过程中失败使用jps查看hadoop集群是否启动
重新启动集群start-dfs.sh start-yarn.sh后即可解决
版权归原作者 中發白白白 所有, 如有侵权,请联系我们删除。