前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用StreamSets从MySQL增量更新数据到Hive

如何使用StreamSets从MySQL增量更新数据到Hive

作者头像
Fayson
发布2018-04-18 10:33:25
14.8K3
发布2018-04-18 10:33:25
举报
文章被收录于专栏:Hadoop实操

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在前面Fayson介绍了《如何在CDH中安装和使用StreamSets》,通过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.准备测试表和数据

代码语言:javascript
复制
[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

代码语言:javascript
复制
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包的路径

代码语言:javascript
复制
export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/"

(可左右滑动)

如果存在权限问题还需要配置安全策略给该目录授权:

代码语言:javascript
复制
grant codebase "file:///opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/-" {
  permission java.security.AllPermission;
};

(可左右滑动)

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档