网站首页 > 技术文章 正文
本文安装和配置的Hive版本为 2.3.7,和Hadoop 3.x有比较好的兼容。
在正式开始安装Hive之前,先简要说明一下已经预装好的相关系统的版本号:
(1)JDK版本:JDK 1.8.0
(2)Hadoop版本:Hadoop 3.1.2
(3)Hive版本:Hive 2.3.7
(4)MySQL版本:MySql 5.7.27
(5)Linux 版本:CentOS 7.4
默认环境中JDK 1.8已经正常安装,Hadoop 3.1.2 集群正常启动。如果对Hadoop 3.1.2 详细安装过程有兴趣,可以访问《Hadoop v3.1大数据技术快速入门》技术专栏。
Hive 2.x的安装略显复杂,安装下面的详细步骤一步步操作,就可以安装成功了。
一、查看Hadoop版本
安装Hive的前提条件是Hadoop 已经安装好了。另外,Hive的版本和Hadoop的版本必须匹配。
[root@centos-103 local]# hadoop version
Hadoop 3.1.2
Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
Compiled by sunilg on 2019-01-29T01:39Z
Compiled with protoc 2.5.0
From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9
This command was run using /usr/local/hadoop/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar
二、下载并解压Hive安装包
访问Apache国内镜像站点,获取Hive安装包。
https://mirror.bit.edu.cn/apache/hive/hive-2.3.7/
通过wget命令,获取hive压缩包。
wget https://mirror.bit.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
解压到指定的目录/usr/local。
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /usr/local
如图所示,解压后的目录为apache-hive-2.3.7-bin。
使用mv命令重命名解压后的文件夹apache-hive-2.3.7-bin为 hive-2.3.7,如下所示。
mv apache-hive-2.3.7-bin/ hive-2.3.7
然后将Hive的安装目录 /usr/local/hive-2.3.7 配置到 /etc/profile 的PATH环境变量中,如下所示。
# hive setting 2.3.7
export HIVE_HOME=/usr/local/hive-2.3.7
export PATH=$HIVE_HOME/bin:$PATH
执行 source /etc/profile 命令使上述配置生效。
执行 hive --version,查看hive版本号。下面有hive的版本显示,安装成功!
三、配置Hive
(1)hive-default.xml 配置文件
重命名hive/conf下的hive-default.xml 配置文件
下面命令是将hive-default.xml.template重命名为hive-default.xml。
mv conf/hive-default.xml.template conf/hive-default.xml
(2)hive-site.xml 配置文件
使用vim编辑器新建一个配置文件hive-site.xml,命令如下:
cd $HIVE_HOME/conf
vim hive-site.xml
在配置文件中添加如下配置,包括连接MySQL的字符串、驱动、用户名和密码等等。
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.56.103:3306/hive_2_3?useSSL=false&createDatabaseIfNotExist=true</value>
<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>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>
(3)hive-env.sh 配置文件
修改hive-env.sh 文件,使用cp命令复制文件:
cp hive-env.sh.template hive-env.sh
然后,编辑该文件,设置一些配置项,如图所示。
vim hive-env.sh
四、安装和配置MySQL
这里MySQL环境已经安装完成了,具体安装步骤可以参考《Hadoop v3.1大数据技术快速入门》技术专栏。
(1)Hive连接MySQL的驱动文件
MySQL JDBC包,可以自行下载。下载完成之后,解压,然后将mysql-connector-java-5.1.49-bin.jar拷贝到/usr/local/hive-2.3.7/lib目录下。
cp mysql-connector-java-5.1.49.jar /usr/local/hive-2.3.7/lib
(2)创建和配置Hive元数据库
可以在MySQL的client端工具,如Navicat,执行如下SQL命令。
// 创建Hive元数据库,需要和前面hive-site.xml 配置文件中的连接保持一致
create database hive_2_3;
// 设置MySQL密码验证策略,简单一点
set global validate_password_policy=0;
set global validate_password_length=1;
// 将hive_2_3 数据库的所有表的所有权限赋给hive用户
grant all on hive_2_3.* to hive@'%' identified by 'hive';
上述命令简要说明:grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' identified by '用户密码',给用户hive分配权限。
// 刷新MySQL系统权限关系表
FLUSH PRIVILEGES;
五、初始化Hive数据库
Hive现在包含一个用于 Hive Metastore schema操作的工具,名为 schematool。此工具可用于初始化当前 Hive 版本的 Metastore schema。此外,其还可处理从较旧版本到新版本的架构升级。
重新初始化schema:
schematool -dbType mysql -initSchema
如图所示,显示metastore元数据初始化完成。
如果在初始化过程中出现类似如下的异常信息:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'hive'@'localhost
那是因为用户hive没有权限访问 hive_2_3 数据库。仔细检查前面的前面的SQL 脚本有没有正确执行。
可以通过Navicat工具,连接MySQL 服务器,查看初始化完成之后的元数据hive_2_3,如图所示。
六、启动Hive
(1)启动Hadoop
在启动Hive之前,先启动Hadoop,使用jps命令验证Hadoop的5个进程都已经成功启动。
start-all.sh 启动Hadoop进程;
jps -l 查看已经启动的Hadoop进程;
(2)启动Hive
现在可以hive了,如图所示。
最后一段输出信息:
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
大致意思:在Hive 2.0后在Mapreduce的框架上将不再支持,希望考虑使用其它的执行引擎(如tez, spark等)。
在hive交互式命令行,执行命令:
hive> set hive.execution.engine;
hive.execution.engine=mr
可以看到当前正在使用的计算引擎为MapReduce。
在hive交互式命令行中,输入show databases; 命令,查看hive中的数据库。
如果要退出Hive交互式执行环境,可以输入如下命令:【quit; 或者exit;】。
猜你喜欢
- 2024-10-12 大数据分析工具——hive入门 hive数据分析的一般流程是什么
- 2024-10-12 019Hive基本使用03 019Hive基本使用03 #liaoit
- 2024-10-12 手把手教你搭建Hive环境 搭建hive集群
- 2024-10-12 0474-如何使用SQL Developer访问Hive
- 2024-10-12 大数据之-HIVE入门(十四) php hive大数据处理
- 2024-10-12 Hive 迁移参考方案及测试(下) hive表迁移
- 2024-10-12 0263-Hive2.2.0如何与CDH集群中的Spark1.6集成
- 2024-10-12 如何在HUE上通过oozie调用Hive SQL工作流
- 2024-10-12 百度二面:你做过哪些Hive调优啊? hive调优与参数设置
- 2024-10-12 HiveSQL:如何从给定的日期中减去指定数量的天数?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)