request.post 200无数据_数据交换(client)

一.项目简介

exchange是要打造一个轻量级,高扩展性的数据交换平台,支持对结构化及无结构化的异构数据源之间的数据传输,在应用层上具有数据权限管控、节点服务高可用和多租户资源隔离等业务特性,而在数据层上又具有传输架构多样化、模块插件化和组件低耦合等架构特点。

exchange的传输能力依赖于Apache Beam链路计算的能力,再由事件模型扩展并发能力,最后处理成DAG应用,可以分发到不同的引擎上。

URL

项目地址:kd-parent

客户端

类似与Sqoop操作,核心功能导入/导出,把每个操作基于事件模型并发处理,根据Beam计算模型生成DAG应用。

服务端

可视化操作,传输交换能力依赖于其底层聚合的传输引擎,其顶层对各类数据源定义统一的参数模型,每种传输引擎对参数模型进行映射配置,转化为引擎的输入模型,可视化操作。(尚未开源)

核心特点

•I/O 高效扩展性(根据Beam规范,扩展)。•数据源管理,目前支持Mysql,Oracle,Hive,Neo4j,Elasticsearch,Gbase,File。•多传输引擎支持(扩展引擎),目前支持Java,Spark,Flink引擎。•近实时任务管控•支持无结构化传输•任务状态自检•各个源根据事件互通传输 教程

Beam官网[1]

Apache Beam 大数据处理一站式分析[2]

二.编译部署

2.1 客户端

环境准备

JDK (1.8.0_141) 必选

Spark (2.x) 可选

Flink (1.6.x) 可选

Hadoop 2.7以上

Hive 1.2.1以上

若需要 oralce 把pom注释打开

若需要 gbase 把pom注释打开

如不满足,可以修改pom文件,重新编译

编译

当前项目环境下编译

示例:D:\exchange-parent> mvn clean package

执行文件

kd-process-0.1.0-shaded.jar

三.快速使用

3.1 客户端

具体参数含义,请看开发规范

spark2-submit  --driver-memory 2G --executor-memory 5G --executor-cores 3 --num-executors 3  --conf spark.default.parallelism=200 --conf spark.sql.shuffle.partitions=200  --class com.knowlegene.parent.process.SwapSparkApplication  --master yarn   /mnt/jars/kd-process-0.1.0-shaded.jar  --fromName=mysql --toName=hive --hiveClass=org.apache.hive.jdbc.HiveDriver --hiveUrl=jdbc:hive2://192.168.200.117:10000/linkis_db  --hiveUsername=hdfs --hivePassword=hdfs --hiveTableName=per_test1 --hiveTableEmpty=true  --url=jdbc:mysql://192.168.100.101:3306/dt?useSSL=false --tableName=companykeyrate --driverClass=com.mysql.jdbc.Driver --username=dt --password=Dt@654321  --runner=SparkRunner  --sparkMaster=yarn

四.底层已支持计算存储引擎

4.1 客户端

Spark

com.knowlegene.parent.process.SwapSparkApplication 这个时入口程序,

--runner=SparkRunner --sparkMaster=yarn 这两个Beam参数必传写留言,具体用Spark的yarn,local,standalone 看需求。具体操作规范请看Beam(https://beam.apache.org/documentation/)。

spark2-submit  --driver-memory 2G --executor-memory 5G --executor-cores 3 --num-executors 3  --conf spark.default.parallelism=200 --conf spark.sql.shuffle.partitions=200  --class com.knowlegene.parent.process.SwapSparkApplication  --master yarn   /mnt/jars/kd-process-0.1.0-shaded.jar  --fromName=mysql --toName=hive --hiveClass=org.apache.hive.jdbc.HiveDriver --hiveUrl=jdbc:hive2://192.168.200.117:10000/linkis_db  --hiveUsername=hdfs --hivePassword=hdfs --hiveTableName=per_test1 --hiveTableEmpty=true  --url=jdbc:mysql://192.168.100.101:3306/dt?useSSL=false --tableName=companykeyrate --driverClass=com.mysql.jdbc.Driver --username=dt --password=Dt@654321  --runner=SparkRunner  --sparkMaster=yarn

Java

com.knowlegene.parent.process.SwapDirectApplication 这个时入口程序,

根据java -cp 传参运行,具体操作规范请看Beam(https://beam.apache.org/documentation/)

Flink

com.knowlegene.parent.process.SwapFlinkApplication 这个时入口程序,

mvn exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \    -Pflink-runner \    -Dexec.args="--runner=FlinkRunner \      --inputFile=/path/to/pom.xml \      --output=/path/to/counts \      --flinkMaster= \      --filesToStage=target/word-count-beam-bundled-0.1.jar"

具体操作规范请看Beam(https://beam.apache.org/documentation/)

五.架构

客户端

ca66900aaa789a1642b6bee75edf6568.png

支持数据源

1a66de0626919835928d5366d50f52f3.png

六.开发规范

6.1 客户端传参规范

入口

参数含义
fromName起始数据源(hive,oracle,mysql,es,file,gbase,neo4j)
toName目标数据源(hive,oracle,mysql,es,file,gbase,neo4j)
runner引擎名称(SparkRunner,FlinkRunner)

更多引擎参数

FlinkPipelineOptions

SparkPipelineOptions

Hive

参数含义
hiveClassorg.apache.hive.jdbc.HiveDriver
hiveUrlhive jdbc url
hiveUsername用户名
hivePassword密码
hiveTableName表名称
hiveDatabase库名称
hiveTableEmpty是否清空目标表数据,默认不清空(false)
hiveSQLhive sql
hiveColumn起始,目标,元数据的列字段
hMetastoreHostHcatalog host
hMetastorePortHcatalog port
hiveFilterHcatalog 过滤条件
hivePartition分区,json ,示例({“time”:"2019"})
hiveUrls起始源和目标源都是Hive,url数组
hiveUsernames起始源和目标源都是Hive,用户数组
hivePasswords起始源和目标源都是Hive,密码数组
hiveTableNames起始源和目标源都是Hive,表名称数组
hiveDatabases起始源和目标源都是Hive,库名称数组
hMetastoreHosts起始源和目标源都是Hive,Hcatalog host数组
hMetastorePorts起始源和目标源都是Hive,Hcatalog port数组

Mysql

参数含义
urljdbc url
tableName表名称
username用户名称
password密码
driverClassdriver class
dbSQLsql
dbColumn起始,目标,元数据的列字段
driverClasss起始源和目标源都是db
urls起始源和目标源都是db
tableNames起始源和目标源都是db
usernames起始源和目标源都是db
passwords起始源和目标源都是db

Elasticsearch

参数含义
esAddrses 地址
esIndex索引
esType类型,7版本必须_doc
esQuery查询
esIdFn根据字段赋值_id
esAddrsFrom起始源和目标源都是es
esAddrsTo起始源和目标源都是es
esIndexs起始源和目标源都是es
esTypes起始源和目标源都是es
nestingKeysName嵌套名称
nestingKeys根据key嵌套
nestingValues嵌套数组中value

Neo4j

参数含义
cyphercypher
neoUrlurl
neoUsername用户名称
neoPassword密码
neoFormat导出模板,具体看测试用例
neoType类型,起始数据源为Neo4j,节点(node)/关系(relate)
cyphers起始源和目标源都是neo4j
neoUrls起始源和目标源都是neo4j
neoUsernames起始源和目标源都是neo4j
neoPasswords起始源和目标源都是neo4j

Oracle

参数含义
urljdbc url
tableName表名称
username用户名称
password密码
driverClassdriver class
dbSQLsql
dbColumn起始,目标,元数据的列字段
driverClasss起始源和目标源都是db
urls起始源和目标源都是db
tableNames起始源和目标源都是db
usernames起始源和目标源都是db
passwords起始源和目标源都是db

Gbase

参数含义
urljdbc url
tableName表名称
username用户名称
password密码
driverClassdriver class
dbSQLsql
dbColumn起始,目标,元数据的列字段
driverClasss起始源和目标源都是db
urls起始源和目标源都是db
tableNames起始源和目标源都是db
usernames起始源和目标源都是db
passwords起始源和目标源都是db

File

参数含义
filePath文件路径
fieldDelim文件分隔符
fieldTitle文件字段名称
filePaths起始源和目标源都是file
fieldDelims起始源和目标源都是file

6.2 测试用例

参考

com.knowlegene.parent.process 里面包括所有源测试用例

七.问题

1.Hive版本1.2以上,不然只能使用jdbc,无法使用HCatalog

2.Neo4j 多Type用模板方式导出,否则建议用cypher,具体情况,看测试用例

3.Gbase,Oracle jar 自行引入,pom中注释了

4.Neo4j 模板方式导出,id:ID(Node) 固定,node表示节点名称。

5.es的嵌套当前版本只支持一个。

6.有的引擎若用不到自行删除。

7.推荐HCatalog。

8.Hive jdbc 性能不好,不建议用java引擎,用Spark/Flink。

9.关于Beam教程https://gitbook.cn/gitchat/activity/5dad728e7c3fea79dbc619a4

References

[1] Beam官网: [https://beam.apache.org/](https://beam.apache.org/)[2] Apache Beam 大数据处理一站式分析: [https://gitbook.cn/gitchat/activity/5dad728e7c3fea79dbc619a4](https://gitbook.cn/gitchat/activity/5dad728e7c3fea79dbc619a4)

2041d77837a5ac41b8ad480c4f4f4bfb.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值