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

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

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.准备测试表和数据

[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;
};

(可左右滑动)

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

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

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

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛肉圆粉不加葱

【容错篇】Spark Streaming的还原药水——Checkpoint

一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成...

8620
来自专栏星汉技术

原 Spark的架构

33650
来自专栏简单聊聊Spark

Mapreduce实现原理总结

一.首先,我们从客户端,JobTracker,TaskTracker这个层面来分析整个mapreduce过程

25210
来自专栏闵开慧

job监控与hadoop权限管理

监测Hadoop控制中心及作业运行状况 MapReduce框架由一个单独的Master JobTracker和集群节点上的Slave TaskTracker共...

417120
来自专栏Jed的技术阶梯

Spark性能调优01-资源调优

在开发完Spark作业之后,就该为作业配置合适的资源了。 Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。

13520
来自专栏Hadoop实操

如何使用StreamSets实时采集Kafka中嵌套JSON数据并写入Hive表

50640
来自专栏实用工具入门教程

如何部署 Hadoop 集群

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。...

46320
来自专栏我是攻城师

如何管理Spark Streaming消费Kafka的偏移量(一)

78370
来自专栏个人分享

Hadoop on Yarn 各组件详细原理

  运行在独立的节点上的ResourceManager和NodeManager一起组成了yarn的核心,构建了整个平台。ApplicationMaster和相应...

15810
来自专栏Hadoop实操

如何使用StreamSets实时采集Kafka数据并写入Hive表

91420

扫码关注云+社区

领取腾讯云代金券