您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

HIVE的安装与配置

时间:2020-08-21 10:39:50  来源:  作者:

1 Hive安装部署

1.1 环境准备

(1)安装hive的前提是要配置好hadoop集群,启动hive之前要先启动hadoop集群。

(2)hive官网地址:http://hive.Apache.org/

(3)hive下载地址:http://archive.apache.org/dist/hive/

(4)我的hive版本是下载的apache-hive-1.2.1-bin.tar.gz

(5)MySQL版本:MySQL-5.5.60-1.el6.x86_64.rpm-bundle.tar

(6)配置yum运用的镜像文件:centos-7-x86_64-DVD-1708.iso


1.2 Hive 安装及配置

(1)将apache-hive-1.2.1-bin.tar.gz 上传到hadoop111的/opt/software 目录下

(2)解压apache-hive-1.2.1-bin.tar.gz 到/opt/module/目录下面

[root@hadoop111 software]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/

(3)修改 apache-hive-1.2.1-bin.tar.gz 的名称为 hive

[root@hadoop111 module]# mv apache-hive-1.2.1-bin/ hive

(4)修改/opt/module/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh

[root@hadoop111 conf]# mv hive-env.sh.template hive-env.sh

(5)配置 hive-env.sh 文件

(a)配置 HADOOP_HOME 路径

export HADOOP_HOME=/opt/module/hadoop-2.7.5

(b)配置 HIVE_CONF_DIR 路径 export HIVE_CONF_DIR=/opt/module/hive/conf


1.3 Hadoop 集群配置

(1)必须启动 hdfs 和 yarn

HIVE的安装与配置

启动hadoop安全分布式集群

(2)在 HDFS 上创建/tmp 和/user/hive/warehouse 两个目录并修改它们同组权限可写

[root@hadoop111 hadoop-2.7.5]# bin/hadoop fs -mkdir /tmp

[root@hadoop111 hadoop-2.7.5]# bin/hadoop fs -mkdir -p /user/hive/warehouse [root@hadoop111 hadoop-2.7.5]# bin/hadoop fs -chmod g+w /tmp

[root@hadoop111 hadoop-2.7.5]# bin/hadoop fs -chmod g+w /user/hive/warehouse


1.4 启动hive遇到报错问题

再打开一个客户端窗口启动 hive,会产生 JAVA.sql.SQLException 异常。

HIVE的安装与配置

抛出异常

原因:Metastore 默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore。

HIVE的安装与配置

在mysql数据库中查看derby数据库


2 配置虚拟机的yum源

2.1 yum简介

我在安装mysql的过程中遇到了各种依赖性包未被安装的问题,所以想到可不可以像云计算课程那样也安装yum源,能方便迅速的下载软件包及相关指令,于是就去搜索怎么配置虚拟机的yum源,在连通外网的情况下,也可以直接获取网址地址下载相关软件包。

yum的主要功能是更方便的添加/删除/更新RPM 包,自动解决包的依赖性问题,便于管理大量系统的更新问题。

yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。


2.2 配置yum源步骤

(1)用xftp软件将镜像文件CentOS-7-x86_64-DVD-1708.iso上传至/opt/目录下

(2)在/opt/目录下创建centos文件夹

[root@hadoop111 ~]# mkdir /opt/centos

(3)将镜像文件挂载到centos目录下

[root@hadoop111 ~]# mount -o loop /opt/CentOS-7-x86_64-DVD-1708.iso /opt/centos/
mount: /dev/loop0 写保护,将以只读方式挂载

(4)查看centos目录的内容

[root@hadoop111 ~]# ll /opt/centos

(5)删除原有的yum源配置文件

[root@hadoop111 ~]# rm -rf /etc/yum.repos.d/*

(6)手工创建yum源配置文件local.repo

[root@hadoop111 ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0

(7)确认yum源是否配置成功

[root@hadoop111 ~]# yum list

2.3 检查虚拟机能否连接外网

HIVE的安装与配置

随便输入百度、谷歌等网址,ping一下看是否ping通


3 安装MySQL数据库

3.1 更新mysql版本

(1)下载mysql的rpm文件:mysql57-community-release-el6-8.noarch.rpm,但只需要其中三个包(MySQL-server-5.5.60-1.el6.x86_64.rpm、MySQL-client-5.5.60-1.el6.x86_64.rpm、mysql-connector-java-5.1.27),最后把文件压缩之后再将不要的包全部删掉。

(2)安装rpm包,更新yum源的mysql版本

[root@hadoop111 hive]# rpm -Uvh /opt/software/mysql57-community-release-el6-8.noarch.rpm

(3)查看yum源的mysql

[root@hadoop111 hive]# cd /etc/yum.repos.d

(4)修改mysql-community.repo和mysql-community-source.repo文件

在两个文件中,将mysql5.7中的enabled改为0,将MySQL5.6中的enabled改为1。这样yum安装时就安装mysql5.6版本了。

(5)yum安装mysql客户端

[root@hadoop111 yum.repos.d]# yum -y install mysql-community-server

3.2 mysql设置

3.2.1 启动mysql

(1)查看mysql状态:

[root@hadoop111 yum.repos.d]# service mysql status或者systemctl status mysql
SUCCESS! MySQL running (1088)

(2)启动mysql:

[root@hadoop111 yum.repos.d]# service mysqld start

3.2.2 mysql安全性设置

(1)安装完成后,默认root用户是没有密码的,有一些匿名用户,查看用户可以用以下命令。

用root用户登录mysql: [root@hadoop111 yum.repos.d]# mysql -uroot
切换到mysql库:mysql -> use mysql;
查看user表:mysql -> select host,user from user;

(2)用脚本初始化权限(注:这种初始化方式只适合于MySQL5.6版本)

[root@hadoop111 yum.repos.d]# mysql_secure_installation

提示输入当前root密码,当前密码为空:Enter current password for root (enter for none):

提示是否设置root密码: Set root password? [Y/n] y

提示是否移除匿名用户:Remove anonymous users? [Y/n] y

提示是否禁用root远程登录:Disallow root login remotely? [Y/n] n

提示是否移除test数据库:Remove test database and access to it? [Y/n] n

提示是否重新加载权限:Reload privilege tables now? [Y/n] y

(3)再次查看用户信息

用root和密码登录:[root@hadoop111 yum.repos.d]# mysql -uroot -p000000
切换到mysql库:mysql -> use mysql;

查看用户信息,已经有了密码,并且匿名用户已经被删除了:

mysql -> select host,user from user;

(4)给root设置所有权限

mysql> grant all privileges on *.* to 'root'@'%' identified by '000000'with grant option;

(5)刷新权限

mysql> flush privileges;

(6)退出

mysql>quit;

4 Hive元数据配置到MySQL

4.1 驱动拷贝

1.在/opt/software/ 目录下解压mysql57-community-release-el6-8.noarch.rpm

[root@hadoop111 software]# rpm2cpio mysql57-community-release-el6-8.noarch.rpm | cpio -div

2.将mysql57-community-release-el6-8.noarch重命名为mysql

[root@hadoop111 software]# mv mysql57-community-release-el6-8.noarch mysql

3.拷贝 mysql目录mysql-connector-java-5.1.27-bin.jar 到hive的lib目录下

[root@hadoop111 mysql]# cp
/opt/software/mysql/mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/

4.2 配置 Metastore 到 MySQL

1.在/opt/module/hive/conf 目录下创建一个 hive-site.xml[root@hadoop111 conf]# touch hive-site.xml

[root@hadoop111 conf]# vi hive-site.xml

2.根据官方文档配置参数,拷贝数据到 hive-site.xml 文件中

HIVE的安装与配置

根据hive官方文档提示,编写hive-site.xml

3.配置完毕后,如果启动 hive 异常,可以重新启动虚拟机。(重启后,别忘了重启动 hadoop 集群)


4.3 多窗口启动Hive测试

1、先启动MySQL

HIVE的安装与配置

启动mysql数据库

2、再次打开多个窗口,分别启动 hive

HIVE的安装与配置

分别复制多个窗口,测试启动hive是否异常

3.启动 hive 后,回到 MySQL 窗口查看数据库,显示增加了 metastore 数据库

HIVE的安装与配置

查看metastore数据库


5 Hive 常见属性配置

5.1 Hive 数据仓库位置配置

(1)默认数据仓库的最原始位置是在 hdfs 上的:/user/hive/warehouse 路径下。

(2)在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default数据库,直接在数据仓库目录下创建一个文件夹。

(3)修改默认数据仓库原始位置(将 hive-default.xml.template 如下配置信息拷贝到hive-site.xml 文件中)。

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

(4)配置同组用户有执行权限

bin/hdfs dfs -chmod g+w /user/hive/warehouse

5.2 查询后信息显示配置

(1)在 hive-site.xml 文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。

<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>

(2)重新启动 hive,对比配置前后差异。

(a)配置前:

HIVE的安装与配置

配置前的hive储存数据

(b)配置后:

HIVE的安装与配置

配置后的hive储存数据


5.3 Hive运行日志信息配置

1、Hive 的 log 默认存放在/tmp/root/hive.log 目录下(当前用户名下)

2、修改 hive 的 log 存放日志到/opt/module/hive/logs

(1)修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为hive-log4j.properties

[root@hadoop111 conf]# pwd
/opt/module/hive/conf
[root@hadoop111 conf]# mv hive-log4j.properties.template hive-log4j.properties 

(2)在 hive-log4j.properties 文件中修改 log 存放位置

hive.log.dir=/opt/module/hive/logs

注:一旦hive的运行程序报错或抛出异常,就可以快速查找日志信息,就其根源寻找问题。


6 HiveJDBC访问

6.1 HiveServer2定义

HiveServer2是一个能使客户端针对hive执行查询的一种服务,与HiverServer1比较,它能够支持多个客户端的并发请求和授权的;

HiveCLI 和 hive –e的方式比较单一,HS2允许远程客户端使用多种语言诸如Java,Python等向Hive提交请求,然后取回结果。

HS2对于TCP 模式使用ThreadPoolServer,对于HTTP模式使用JettyServer.

ThreadPoolServer为每一个TCP连接分配一个工作者线程,每一个线程总是和一个连接关联,即使该连接是空闲的,所以这儿有个潜在的性能问题:如果有很多连接,将会导致大量的线程。以后可能会换成ThreadedSelectorServer对于HTTP模式,在客户端和服务器之间需要一个代理,主要是负载均衡或者其他原因,比如HAProxy。


6.2 启动 hiveserver2 服务

HIVE的安装与配置

hiveserver2启动

启动这个服务,需要卡住一段时间,起初我还以为是网络原因不好或者是配置出错,结果上网查问题,是由于进程已经在后台运行,所以只需要在复制一个虚拟机窗口就可以。


6.3 启动beeline

HIVE的安装与配置

启动beeline


6.3 访问hive的web页面

HIVE的安装与配置

启动hive的web页面


HIVE的安装与配置

查看网址


7 小结

在安装hive的过程中遇到了很多问题,主要的错误和解决办法如下:

1、 mysql不能正确安装,原因是没有相关依赖包或者某路径下没有相关插件,所以考虑搭建yum源,采用yum源在连接外网的情况下安装mysql。

2、 连接不上hiveserver2,在bin/hiveserver2启动时等待了很长时间,一直没响应,所以百度了一下,原因是后台已经在执行路径运行了,只需要用Xshell复制一个窗口hadoop111执行bin/beeline就可以连接到beeline了。

3、 拒绝访问hive的jdbc:即beeline> !connect jdbc:hive2://192.168.200.111:10000这里失败,没有在/opt/module/hadoop-2.7.5/etc/hadoop/core-site.xml设置超级用户,添加如下配置即可.

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

4、 报错:jdbc.HiveConnection: Failed to connect to 192.168.200.111:10000 Error: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.200.111:10000/default: java.net.ConnectException: Connection refused (state=08S01,code=0)

(1)至少你连接是成功的,不然不会出现让你验证username和password的问题。

(2)第二个,你的链接有问题。有可能是你现在连接的并不是hive2,而是启动的服务hiveserver。这个和hiveserver2有很大的版本区别,具体可以百度。

(3)当连接的是hive2,但还是拒绝的时候,可能问题出在你配置上面,如下:

<property>
<name>hive.server2.transport.mode</name>
<value>binary</value>
<description> Expects one of [binary, http]. Transport mode of HiveServer2. </description>
</property>

切记,当你这里设置为http的时候,此时服务器只提供端口10001的服务,即HTTP方式访问。 这时候10000端口是不开启的!

我就是在这个地方卡了好几天。因此你要用java通过jdbc访问,一定要选择binary。



Tags:HIVE   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  Tags: HIVE  点击:(9)  评论:(0)  加入收藏
1)、编辑hive启停shell脚本,脚本如下(说明:脚本别忘记了用户需要执行权限)#!/bin/shif [ $# -ne 2 ] ;then echo "please input two params,first is (metastore|hiveserver2)...【详细内容】
2021-07-28  Tags: HIVE  点击:(121)  评论:(0)  加入收藏
关于在hive任务中number of reducers的探讨:1.在默认情况下(set mapreduce.job.reduces=-1),实际运行计算过程中reducer的数量会由所读取文件的大小来决定。文件默认大小是256...【详细内容】
2021-06-09  Tags: HIVE  点击:(168)  评论:(0)  加入收藏
在大数据相关行业的面试中,经常会被问到这个问题:Redis、传统数据库、HBase以及Hive的区别。 本文将针对这个面试问题,做以下分析:1.问题分析面试官考核的是你对不同数据存储技...【详细内容】
2021-02-23  Tags: HIVE  点击:(337)  评论:(0)  加入收藏
一、Hive基础简介1、基础描述Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件,Hive数据...【详细内容】
2021-01-05  Tags: HIVE  点击:(132)  评论:(0)  加入收藏
将 MySQL 的数据导入到 HDFS 中/usr/local/service/sqoop/bin/sqoop-import \--connect jdbc:mysql://$mysqlIP/test \--username root \-P --table sqoop_test \-m 4 \--...【详细内容】
2020-10-21  Tags: HIVE  点击:(162)  评论:(0)  加入收藏
1 Hive安装部署1.1 环境准备(1)安装hive的前提是要配置好hadoop集群,启动hive之前要先启动hadoop集群。(2)hive官网地址:http://hive.apache.org/(3)hive下载地址:http://archive.apa...【详细内容】
2020-08-21  Tags: HIVE  点击:(63)  评论:(0)  加入收藏
作者 | 胡梦宇,知乎数据架构平台开发工程师责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)背景ApacheHive 是基于 Apache Hadoop 的一个数据仓库工具,可以将结...【详细内容】
2020-07-09  Tags: HIVE  点击:(81)  评论:(0)  加入收藏
> Photo by Mr Cup / Fabien Barral on Unsplash 随着技术的快速变化,越来越多的数据一直在生成。据最新的全球数据领域估计,到2025年,全世界产生的数据量将增长到175 ZB。公...【详细内容】
2020-05-21  Tags: HIVE  点击:(119)  评论:(0)  加入收藏
之前学习 HBase 就有疑惑,HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。不过,Hive...【详细内容】
2020-04-24  Tags: HIVE  点击:(106)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的&emsp;&emsp;程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条