StreamSets实战之路-21-实战篇- 如何使用StreamSets从MySQL增量更新数据到Hive
作者:互联网
1.文档编写目的
通过StreamSets实现数据采集,在实际生产中需要实时捕获MySQL、Oracle等其他数据源的变化数据(简称CDC)将变化数据实时的写入大数据平台的Hive、HDFS、HBase、Solr、Elasticserach等。本篇文章主要介绍如何使用使用StreamSets通过JDBC的方式实时抽取增量数据到Hive。
StreamSets实现的流程如下:
- 内容概述
1.环境准备
2.创建StreamSets的Pipeline流程
3.Pipeline流程测试
- 测试环境
1.StreamSets版本为3.1.2.0
2.CM和CDH版本为5.13.1
3.MariaDB版本为5.5.44
2.环境准备
1.准备测试表和数据
[root@cdh4 ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> use test;
MariaDB [test]> create table test_to_hive (s1 varchar(20),s2 varchar(20));
MariaDB [test]> insert into test_to_hive values ("1","aaa");
MariaDB [test]> insert into test_to_hive values ("2","bbb");
MariaDB [test]> select * from test_to_hive;
(可左右滑动)
3.创建StreamSets的Pipline
1.创建新的管道流
配置错误日志输入路径,这里配置到本地的/tmp/sdctest(需要自己创建)目录下
2.添加JDBC查询者
3.执行预览检查
查看结果如下
4.添加Hive Metadata
将JDBC 链接到 Hive Metadata 配置hive 的JDBC URL
配置数据库和要生成的表名,这里我们没有分区,删掉分区
选择Avro 格式
5.将Hive Metadata 输出到 HiveMetastore
将Hive Metadata的 Metadata 链接到Hive Metastore
修改配置
6.将Hive Metadata的data 输出到HDFS 上
将Hive Metadata的 data链接到Hadoop FS 1
7.统一选择包版本
这里测试环境是CDH 5.13
HiveMetadata
Hadoop FS
Hive Metastore
8.校验并执行
点击校验,返回成功后点击执行
执行后可以看到有2条数据输入和输出,这与我们测试数据库的数据相符合
去HUE 页面查看hive 表中的数据,发现已经更新进来
4.Pipeline流程测试
1.去mysql 中增加数据并查看
查看管道流信息发现输入输出数量变成了4
去HUE 中查看hive 表的数据,跟mysql 中同步,说明增量更新成功
5.常见问题
1.校验的时候找不到 hive.conf.HiveConf
出现如下异常,说明包不对,参考 2.8步骤重置配置
2.JDBC 链接不通
新建文件夹/opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR-3.0.0.0/sdc-extras,
并赋予给用户sdc
mkdir /opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR-3.0.0.0/sdc-extras
chown sdc:sdc /opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR-3.0.0.0/sdc-extras
(可左右滑动)
上传JDBC驱动
上传成功后如下:
在CM中配置StreamSets包的路径
export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/"
(可左右滑动)
如果存在权限问题还需要配置安全策略给该目录授权:
grant codebase "file:///opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/-" {
permission java.security.AllPermission;
};
(可左右滑动)
标签:实战篇,21,hive,Hive,sdc,test,StreamSets,Metadata 来源: https://blog.csdn.net/u013522009/article/details/123044037