2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
全网最详细的Hive文章系列,强烈建议收藏加关注!
后面更新文章都会列出历史文章目录,帮助大家回顾知识重点。
目录
系列历史文章
前言
Hive的三种安装模式和MySQL搭配使用
一、Hive的安装方式
1、内嵌模式
2、本地模式
3、远程模式
二、Hive的安装
1、准备工作
2、安装mysql数据库
3、安装Hive
三、Hive的交互方式
第一种交互方式:bin/hive
第二种交互方式:使用sql语句或者sql脚本进行交互
第三种交互方式:Beeline Client
四、Hive一键启动脚本
1、安装expect
2、创建脚本
3、修改脚本权限
4、启动beeline
系列历史文章
2021年大数据Hive(十二):Hive综合案例!!!
2021年大数据Hive(十一):Hive调优
2021年大数据Hive(十):Hive的数据存储格式
2021年大数据Hive(九):Hive的数据压缩
2021年大数据Hive(八):Hive自定义函数
2021年大数据Hive(七):Hive的开窗函数
2021年大数据Hive(六):Hive的表生成函数
2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
2021年大数据Hive(四):Hive查询语法
2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
2021年大数据Hive(一):Hive基本概念
前言
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习。
有对大数据感兴趣的可以关注微信公众号:三帮大数据
Hive的三种安装模式和MySQL搭配使用
一、Hive的安装方式
hive的安装一共有三种方式:内嵌模式、本地模式、远程模式
元数据服务(metastore)作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
1、内嵌模式
内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。数据库和Metastore服务都嵌入在主Hive Server进程中。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。
解压hive安装包 bin/hive 启动即可使用
缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享。
2、本地模式
本地模式采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这里我们使用MySQL。
本地模式不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。也就是说当你启动一个hive 服务,里面默认会帮我们启动一个metastore服务。
hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式。
缺点是:每启动一次hive服务,都内置启动了一个metastore。
3、远程模式
远程模式下,需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程模式的metastore服务和hive运行在不同的进程里。
在生产环境中,建议用远程模式来配置Hive Metastore。
在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。
远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务。
hiveserver2是Hive启动了一个server,客户端可以使用JDBC协议,通过IP+ Port的方式对其进行访问,达到并发访问的目的。
二、Hive的安装
我们在此处选择第三台机器node3作为我们hive的安装机器,安装方式使用远程方式。
1、准备工作
1、下载hive的安装包,这里我们选用hive的版本是2.1.0,软件包为:apache-hive-2.1.0-bin.tar.gz
Hive下载地址:http://archive.apache.org/dist/hive/
2、下载mysql的安装包,我们使用的mysql版本是5.7.29,软件包为:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
下载地址:https://downloads.mysql.com/archives/community/
3、将apache-hive-2.1.0-bin.tar.gz上传到/export/software目录
4、将mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz上传到/export/software目录
2、安装mysql数据库
在这里,我们使用mysql数据库作为Hive的元数据存储,所以在安装Hive之前,必须安装好mysql
注意!!!!!,在安装Mysql之前,给虚拟机保存一个快照,一旦安装失败,可以恢复快照,重新安装!
1、解压mysql安装包
#将MySQL的安装包提前上传到Linux的/export/software目录
cd /export/software
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /export/server/
2、重命名
cd /export/server
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql-5.7.29
3、添加用户组与用户
groupadd mysql
useradd -r -g mysql mysql
4、修改目录权限
chown -R mysql:mysql /export/server/mysql-5.7.29/
5、配置mysql服务
cp /export/server/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysql
6、修改mysql配置文件
1)修改/etc/init.d/mysql文件
vim /etc/init.d/mysql
将该文件的basedir和datadir路径修改为以下内容
basedir=/export/server/mysql-5.7.29
datadir=/export/server/mysql-5.7.29/data
2)修改配置文件my.cnf
修改/etc/my.cnf文件
vim /etc/my.cnf
将/etc/my.cnf原来的内容全部删除,然后将以下内容复制进去.
[client]port=3306default-character-set=utf8[mysqld]basedir=/export/server/mysql-5.7.29datadir=/export/server/mysql-5.7.29/dataport=3306character-set-server=utf8default_storage_engine=InnoDB
7、初始化mysql
/export/server/mysql-5.7.29/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/export/server/mysql-5.7.29 --datadir=/export/server/mysql-5.7.29/data
执行该命令之后,会生成一个mysql的临时密码,这个密码后边要使用。
8、启动服务
service mysql start
9、登录mysql
使用第7步生成的临时密码
/export/server/mysql-5.7.29/bin/mysql -uroot -p临时密码
请注意,如果回车之后临时密码报错,则可以执行以下指令,然后手动输入临时密码:
/export/server/mysql-5.7.29/bin/mysql -uroot -p
10、修改密码
注意这条命令是在登录mysql之后执行
set password=password('123456');
11、开启远程访问权限
注意这条命令是在登录mysql之后执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; flush privileges;
12、修改环境变量
退出mysql,然后修改Linux的/etc/profile文件
vim /etc/profile
在该文件末尾最后添加以下内容
export MYSQL_HOME=/export/server/mysql-5.7.29
export PATH=$PATH:$MYSQL_HOME/bin
保存修改之后,让该文件的修改生效
source /etc/profile
13、将mysql设置为开机启动
chkconfig --add mysql #mysql服务到自启服务
chkconfig mysql on #设置自启
3、安装Hive
1、解压Hive安装包并重命名
cd /export/software
tar -zxvf apache-hive-2.1.0-bin.tar.gz -C /export/server
cd /export/server
mv apache-hive-2.1.0-bin hive-2.1.0
2、修改hive的配置文件
hive-env.sh
添加我们的hadoop的环境变量
cd /export/server/hive-2.1.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
修改内容如下:
HADOOP_HOME=/export/server/hadoop-2.7.5
export HIVE_CONF_DIR=/export/server/hive-2.1.0/conf
3、修改hive-site.xml
cd /export/server/hive-2.1.0/conf
vim hive-site.xml
在该文件中添加以下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property><property><name>hive.server2.thrift.bind.host</name><value>node3</value></property></configuration>
4、上传mysql的lib驱动包
将mysql的lib驱动包上传到hive的lib目录下
cd /export/server/hive-2.1.0/lib
将mysql-connector-java-5.1.41-bin.jar 上传到这个目录下
5、拷贝相关jar包
将hive-2.1.0/jdbc/目录下的hive-jdbc-2.1.0-standalone.jar 拷贝到hive-2.1.0/lib/目录
cp /export/server/hive-2.1.0/jdbc/hive-jdbc-2.1.0-standalone.jar /export/server/hive-2.1.0/lib/
6、配置hive的环境变量
node03服务器执行以下命令配置hive的环境变量
vim /etc/profile
添加以下内容:
export HIVE_HOME=/export/server/hive-2.1.0
export PATH=:$HIVE_HOME/bin:$PATH
三、Hive的交互方式
第一种交互方式:bin/hive
cd /export/server/hive-2.1.0/#初始化元数据bin/schematool -dbType mysql -initSchemabin/hive
创建一个数据库
create database mytest;
show databases;
第二种交互方式:使用sql语句或者sql脚本进行交互
不进入hive的客户端直接执行hive的hql语句
cd /export/server/hive-2.1.0/
bin/hive -e "create database mytest2"
或者我们可以将我们的hql语句写成一个sql脚本然后执行
cd /export/server
vim hive.sql
脚本内容如下:
create database mytest3;
use mytest3;
create table stu(id int,name string);
通过hive -f 来执行我们的sql脚本
bin/hive -f /export/server/hive.sql
第三种交互方式:Beeline Client
hive经过发展,推出了第二代客户端beeline,但是beeline客户端不是直接访问metastore服务的,而是需要单独启动hiveserver2服务。
1)在node1的/export/server/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>
将修改好的core-site.xml文件分发到node2和node3,然后重启Hadoop(stop-all.sh start-all.sh)
2)在hive运行的服务器上,首先启动metastore服务,然后启动hiveserver2服务。
nohup /export/server/hive-2.1.0/bin/hive --service metastore &
nohup /export/server/hive-2.1.0/bin/hive --service hiveserver2 &
nohup 和 & 表示后台启动
3)在node3上使用beeline客户端进行连接访问。
/export/server/hive-2.1.0/bin/beeline
根据提醒进行以下操作:
[root@node3 ~]# /export/server/hive-2.1.0/bin/beeline
which: no hbase in (:/export/server/hive-2.1.0/bin::/export/server/hadoop-2.7.5/bin:/export/data/hadoop-2.7.5/sbin::/export/server/jdk1.8.0_241/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/export/server/mysql-5.7.29/bin:/root/bin)
Beeline version 2.1.0 by Apache Hive
beeline> !connect jdbc:hive2://node3:10000
Connecting to jdbc:hive2://node3:10000
Enter username for jdbc:hive2://node3:10000: root
Enter password for jdbc:hive2://node3:10000:123456
连接成功之后,出现以下内容,可以在提示符后边输入hive sql命令
四、Hive一键启动脚本
这里,我们写一个expect脚本,可以一键启动beenline,并登录到hive。expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信。
1、安装expect
yum -y install expect
2、创建脚本
cd /export/server/ hive-2.1.0
vim beenline.exp
添加以下内容:
#!/bin/expect
spawn beeline
set timeout 5
expect "beeline>"
send "!connect jdbc:hive2://node3:10000\r"
expect "Enter username for jdbc:hive2://node3:10000:"
send "root\r"
expect "Enter password for jdbc:hive2://node3:10000:"
send "123456\r"
interact
3、修改脚本权限
chmod 777 beenline.exp
4、启动beeline
expect beenline.exp
-
2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用相关推荐
- 大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
文章目录 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方式 1.内嵌模式 2.本地模式
- 2021年大数据ELK(八):Elasticsearch安装IK分词器插件
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 安装IK分词器 一.下载Elasticsearch IK分词器 ...
- 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)
目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...
- 大数据变现,这里有9种商业模式,你走的哪条路?
在大数据成为趋势,成为国家战略的今天,如何最大限度发挥大数据的价值成为人们思考的问题.无论是对于互联网企业.电信运营商还是数量众多的初创企业而言,大数据的变现显得尤为重要.谁最先一步找到密码,谁就能够 ...
- 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...
- 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数
目录 隐式转换和隐式参数 隐式转换 自动导入隐式转换方法 隐式转换的时机 隐式参数 隐式转换和隐式参数 隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能.我们可以很 ...
- 2021年大数据常用语言Scala(三十六):scala高级用法 泛型
目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...
- 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...
- 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)
目录 提取器(Extractor) 定义提取器 提取器(Extractor) 我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量.例如: // ...
最新文章
- SIGTERM等信号含义【转】
- php 累,php 记录进行累结果
- 数据权限设计(原创)
- 买了一个 站立式办公 桌子。
- 单机:Oracle单机数据库一键安装(11GR2/12C/18C/19C/21C)
- Maya动画2:刚体+重力模拟小球掉落
- xp计算机关闭139端口,关闭139端口,小编告诉你如何关闭139端口
- 勤快的程序猿都没啥前途的,赶紧改掉你的坏毛病吧!
- 三星j7出现android,三星J7配置曝光 配骁龙625/运行安卓7.0
- 目前国内常用的无纸化会议系统——迅控无纸化
- SHT30使用的学习过程1SHT30工作模式介绍
- 前端多页面的代码压缩和混淆
- 有关channel的相关知识(2)
- ASCII - 美国标准信息交换代码
- GAppProxy-2.0.0安装使用手册
- generate详解
- java的双亲委派模型-附源码分析
- 【2022.7.11】HTML基础介绍语法常用标签超文本链接锚点定位
- html5中英文翻译论文,毕业论文外文翻译--使用JavaScript设计网页(适用于毕业论文外文翻译+中英文对照).doc...
- 认识LoRa以及LoRaWAN
热门文章
- 大数据Hive(二):Hive的三种安装模式和MySQL搭配使用