Hive 安装与使用

Hive 3.1.2

1. 简介

Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和JDBC驱动程序以将用户连接到Hive。

2. 安装

安装 Hadoop 3.1.2

Hive 官网下载
使用hadoop账号,解压压缩包,再添加环境变量

vi ~/.bashrc
export HIVE_HOME=/home/hadoop/softwares/hive/apache-hive-3.1.2-bin
export HADOOP_HOME=/home/hadoop/softwares/hadoop/hadoop-3.1.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

让环境变量立即生效

source ~/.bashrc

在文件夹conf下新增hive-site.xml,里面包含了hive元数据库信息。这里将Hive的元数据库改为MySQL

<?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://192.168.110.40:3306/hive?useSSL=false</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>

在MySQL数据库中创建用户hive

create database hive character set utf8;
set global validate_password_policy=0;
set global validate_password_length=1;
create user 'hive'@'%' identified by 'hive';
grant all privileges on hive.* to 'hive'@'%';
flush privileges;

在文件夹lib中添加MySQL的驱动,然后在安装目录下运行,初始化MySQL中的表

./bin/schematool -dbType mysql -initSchema

先启动Hadoop,再启动Hive。

2.1 Hive CLI

使用Hive CLI

./bin/hive

创建数据库,再创建表

show databases;
create database hive;
use hive;
create table user_info(id int comment 'id',name string comment 'name');

hive cli

2.2 HiveServer2 和 Beeline

关掉Hadoop,修改Hadoop的core-site.xml,指定用户hadoop可被代理。修改完再启动Hadoop

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

运行HiveServer2

./bin/hiveserver2

使用Beeline连接,会报错连不上。然后等一会儿,就可以连上了。

./bin/beeline -n hadoop -u jdbc:hive2://192.168.110.40:10000

-u:指定JDBC连接串;
-n:指定用户,否则创建表命令是没有HDFS的权限。

3. 测试WordCount

use hive;
create table word_count_input(name string);
load data inpath 'hdfs:/browerTest/input' overwrite into table word_count_input;

word_count_input

create table word_count_output as 
select word, count(1) as count from
(select explode(split(name,' '))as word from word_count_input) w
group by word
order by word;

yarn
word_count_output

参考:
Hive 官方文档 - 入门
Hive3.1.2安装指南
Hiveserver2 failed to open new session in beeline

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值