快速上手Hive,安装到使用的流程介绍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速上手Hive,安装到使用的流程介绍

hive(数据仓库):用来做数据(海量数据处理)统计、分析

1ecd1b2606ed46e9956a89f231c9802c.png

hive的功能解释

web日志集群每天产生大量的log日志会被采集到HDFS文件系统上,文件内容都是一条条的记录,每条记录中包含很多字段,hive可以像mysql那样建表存储数据,不同的是hive可以把文件中每条记录的内容与表中的字段进行映射,并且hive有自己的mapreduce程序,可以用来统计计算。对于日志中内容的统计、分析,只需要在终端输入sql语句,hive会进行解析并组装一个MR job 提交到yarn上计算给出结果。


使用hive的基础是,有Hadoop集群和MySQL服务。(MySQL数据库用来存储元数据,即hive创建表的定义信息)

hive安装

1.首先在Hadoop集群上的任一节点安装MySQL,设置远程登录MySQL参考

启动MySQL:

service mysqld start

登录MySQL:

sudo mysql -u root  -p

2.在任一节点安装hive(2.0版本以上的底层运算引擎是spark,我安装的是1.2.2,底层运算引擎是mapreduce)

3.修改hive的配置文件:进入安装目录下的conf,vi hive-site.xml

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hdp2:3306/hive?createDatabaseIfNotExist=true</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>root</value>
</property>
</configuration>

参数说明:

参数1:hive与MySQL建立连接,只需更改MySQL安装的位置(hdp2),建立连接后会在MySQL中建一个hive库

参数2:连接驱动使用jdbc驱动

参数3、4:MySQL的用户名和密码

4.在hive安装目录下的lib中放入一个jdbc驱动包(mysql-connector-java.jar)

5.配置Hadoop_HOME和hive_HOME到系统环境变量中 :vi /etc/profile

1ecd1b2606ed46e9956a89f231c9802c.png

生效:source  /etc/profile

hive启动

启动hive之前先启动hdfs和yarn

hive 的三种启动方式

1.hive单机程序(shell交互界面)

启动hive

cd 安装目录/bin  命令: ./hive
cd 安装目录  命令: bin/hive
在任何地方 hive (配置了path)

在hive中建库建表,hdfs上就会生成默认的表目录:/user/hive/warehouse/库名.db或表名

直接在hive中 create table 表名(字段)来创建表要求与之映射的文件中字段是用 ^A (crtl+v,crtl+A)字符来分割的,例(001^A小明^A18^A男)

小tip:

设置hive交互界面时正在使用的库显示和查询时结果显示字段名

vi .hiverc

set hive.cli.print.header=true;
set hive.cli.print.current.db=true;

例:

1ecd1b2606ed46e9956a89f231c9802c.png

2.hive作为服务器启动

a.选择一个节点作为hive服务器(安装hive、更改配置文件)

前台启动命令:

bin/hiveserver2

后台启动命令:

nohup bin/hiveserver2 1>/dev/null 2>&1 &

hive服务示意图:

1ecd1b2606ed46e9956a89f231c9802c.png

服务开启后可查看到其监听的端口,命令:

netstat -nltp

补充:查看某个进程的命令

ps -ef |grep  进程名

b.启动一个hive客户端去连接服务端

启动客户端的两种方式

1.启动: bin/beeline  
  连接服务:!connect jdbc:hive2://hdp1(服务端所在位置):10000
  用户名:root
  密码:跳过
2.bin/beeline -u jdbc:hive2://hdp1:10000 -n root

退出客户端:

!quit

3.hive的脚本化运行

a.编辑文件vi etl.sh

#!/bin/bash
hive -e "sql语句1"
hive -e "sql语句2"

运行脚本:sh  etl.sh

b.编辑文件 vi test.hql——文件内容直接是sql语句

运行脚本:hive -f test.hql

hive的基本操作

建库、建表(常规操作):

hive的基本操作

建库、建表(常规操作):

create table 表名(字段1,字段2,字段3...) 
row format delimited fields terminated by ','; --指定表数据中的字段分隔符为','

删表:drop table  表名;

hive表分为内部表和外部表

内部表:常规操作建表,表数据默认存储在hdfs上的/user/hive/warehouse/....下,删除内部表,hdfs上的目录也会被删,内部表的创建一般用来查询生成新表


外部表:关键字——external,与接采集到hdfs上的原始数据目录对接,删除外部表,hdfs上的数据目录还存在

create external table 表名(字段)
location 'hdfs上的目录(采集目录)'  -- location :关联目录
row format delimited fields terminated by ',';

分区表:

表目录里含有子目录,注:分区字段不能是表定义中的已存在字段

create table 表名(字段1,字段2,字段3...) 
partitioned by (某个新字段)  --例 partitioned by (day string)
row format delimited fields terminated by ',';

按照某个字段创建好表后,导入相应的数据(分别导入):

load data local inpath '/root/hivetest/pv.log.20201210(本地存放文件的路径)'
into table 表名 partition (day='20201210');  --在hdfs上的表目录中有一个名为 day='20201210'的文件

将数据导入hive的表有三种方式:

方式1:上述方法

方式2:去掉local,换成文件真正存放的节点名

方式3:手动hdfs命令将文件放入表目录

创建表的其他方式

create table 表名1 like 表名2 --创建一个表结构相同的表
create table 表名1 as select 字段1,字段2... from 表名2 --查询出原始表中某些字段的数据作为一个新表
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
Mac下安装hive
Mac下安装hive
200 0
|
16小时前
|
SQL HIVE
Hive的安装
Hive的安装
19 1
|
15小时前
|
SQL 分布式计算 关系型数据库
Ubuntu上安装MySQL以及hive
Ubuntu上安装MySQL以及hive
11 1
|
16小时前
|
SQL 分布式计算 Java
linux安装Hive详细步骤
【1月更文挑战第2天】linux安装Hive详细步骤
156 0
|
9月前
|
SQL 分布式计算 Ubuntu
基于Hadoop的数据仓库Hive安装
基于Hadoop的数据仓库Hive安装
215 0
|
9月前
|
SQL 存储 分布式计算
Hive学习---1、Hive入门、Hive 安装(二)
Hive学习---1、Hive入门、Hive 安装(二)
|
16小时前
|
SQL 分布式计算 关系型数据库
Hive安装
Hive安装
52 1
|
16小时前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
113 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
6月前
|
SQL 分布式计算 关系型数据库
Hive教程(02)- Hive安装
Hive教程(02)- Hive安装
58 0
|
7月前
|
SQL 分布式计算 关系型数据库
Hive-安装与配置(1)
Hive-安装与配置(1)
171 0

热门文章

最新文章