一.kettle与Hive整合
1、从虚拟机下载Hadoop的jar包
/export/servers/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
2、把jar包放置在\data-integration\lib目录下
3、重启kettle,重新加载生效
关掉之前打开的kettle重新启动!!
数据准备
1、连接hive
2、创建并切换数据库
create database test;
use test;
3、创建表
create table a(
a int,
b int
)
row format delimited fields terminated by ',' stored as TEXTFILE;
show tables;
4、创建数据文件
vim a.txt
1,11
2,22
3,33
5、 从文件加载数据到表
load data local inpath '/export/servers/hive/a.txt' into table a;
6、查询表
select * from a;
从hive中读取数据
hive数据库是通过jdbc来进行连接,可以通过表输入控件来获取数据。
需求:
从hive数据库的test库的a表中获取数据,并把数据保存到Excel中。
实现步骤:
1、设计一下kettle组件结构
选择输入文件夹内的表输入组件:
2、配置表输入组件
3.配置excel输出组件
4.执行文件!
把数据保存到hive数据库
hive数据库是通过jdbc来进行连接,可以通过表输出控件来保存数据。
需求:
从file_user.xls中读取数据,把数据保存在hive数据库的test数据库的t_user表。
1、设计如下kettle组件结构
2、配置 Excel输入组件
2、配置表输出组件
执行验证
执行Hive的HiveSQL语句
Kettle中可以执行Hive的HiveSQL语句,使用作业的SQL脚本。
需求:
聚合查询weblogs表(以IP和年月分组统计的PV数据),同时建立一个新表保存查询数据。
准备hive表
在hive的test数据库下创建weblogs表:
CREATE TABLE `weblogs`(
`client_ip` string,
`full_request_date` string,
`day` string,
`month` string,
`month_num` int,
`year` string,
`hour` string,
`minute` string,
`second` string,
`timezone` string,
`http_verb` string,
`uri` string,
`http_status_code` string,
`bytes_returned` string,
`referrer` string,
`user_agent` string)
row format delimited fields terminated by '\t' stored as textfile;
导入hive-weblogs下的数据
load data local inpath '/export/servers/hive/weblogs_parse.txt' into table weblogs;
验证数据
select * from test.weblogs limit 5;
实现步骤:
1、设计如下作业组件结构
2、配置SQL组件
3、测试数据是否生成