[关闭]
@zhangyy 2018-11-24T17:31:34.000000Z 字数 2475 阅读 206

在CDH5.14.4 中安装StreamSets与案例运行

大数据平台构建


  • 一: Streamset 简介与系统环境介绍
  • 二: 安装软件准备
  • 三: 在CDH5.14.4 集成使用StreamSets
  • 四: streamsets 基本使用案例运行

一: Streamset 简介与系统环境介绍

1.1: StreamSet 简介

  1. StreamSetsInformatica前首席产品官Girish PanchaCloudera前开发团队负责人Arvind Prabhakar2014年创立。他们成立该公司主要是应对来自动态数据(data in motion)的挑战 - 包括数据源,数据处理和数据本身,这是一个称为“数据漂移“(https://streamsets.com/reports/data-drift/)的问题。StreamSets设想从头开始管理数据流,避免已有产品和工具的缺陷,并启用一种管理动态数据(data in motion)的新方法。
  2. 最新的产品StreamSets Dataflow Performance Manager,也叫DPM,主要用于构建端到端的数据流。DPM是一个运行控制中心,可以让你映射(数据流),内置的测量和监测确保持续的数据传输和控制动态数据(data in motion)的性能。首先,它将你不同的数据流映射到支持你的每个关键业务流程的拓扑中。然后监测这些拓扑的日常运行情况,根据掌握的性能情况,以满足应用的SLA为目标,确保你始终提供及时和可信的数据。
  3. StreamSet的架构处理数据流程

image_1cfoqtd5r887cgm1m7n62nuojm.png-224.7kB

二:安装软件准备

2.1:下载StreamSets

  1. 下载:StreamSet
  2. https://archives.streamsets.com/index.html
  3. 下载文件:
  4. STREAMSETS-3.0.0.0.jar
  5. STREAMSETS_DATACOLLECTOR-3.0.0.0-el7.parcel
  6. manifest.json

image_1ct27llquh5adhboeb1n4e1uio9.png-317.5kB

2.2: 配置httpd-server

  1. yum install -y httpd*
  2. service httpd start
  3. chkconfig httpd on
  4. mkdir -p /var/www/html/streamsets
  5. cp -p STREAMSETS-3.0.0.jar /opt/cloudera/csd/
  6. chown cloudera-scm:cloudrea-scm -R /opt/cloudera/csd/
  7. mv manifest.json /var/www/html/streamset/
  8. mv STREAMSETS_DATACOLLECTOR-3.3.0-el7.parcel /var/www/html/streamset/
  9. 从启cdhCM 服务器
  10. service cloudera-scm-server restart

image_1ct27tgck1sho1movaj3116i1k2im.png-1081.2kB

1.png-335.6kB

2.png-796.1kB

三:在CDH5.14.4 集成使用StreamSets

3.1 分发,配置,激活StreamSets

3.png-408kB

4.png-420.3kB

image_1ct28a2f115csskf1go8or21de3l.png-461.1kB

image_1ct28bfcs1k031c7b1hl21li81uck12.png-700.8kB

image_1ct28e7lf118fne41mj1ejlp4k9.png-652.1kB

image_1ct28hoq5gsgueqk5f1r95o45m.png-629.2kB

image_1ct29krrm1c381555bbe1gh81c0s13.png-609.3kB

image_1ct29m66s7om193e2hv1jiegm21g.png-272.5kB

image_1ct29q2goo876ma1mbt1rs11cdh1t.png-421.7kB

3.2 安装 StreamSets

  1. 重启cloudera-scm-server
  2. cd /etc/init.d/
  3. ./cloudera-scm-server restart

image_1ct29ul10978u8h1uv2rmo1tgr2a.png-313.2kB


image_1ct2aatja2b232gb7lkl81hnr2n.png-614.8kB

image_1ct2abl891tv8k5krvp13sv15ce34.png-721.2kB

image_1ct2acirc1ued19m11u0k1176goj3h.png-770.4kB

image_1ct2adc951ndbcna6c8dji16023u.png-277.6kB

image_1ct2ae09e1c6l1euevco1enq7374b.png-464.6kB

image_1ct2aeosp1sjs7n81uj5112j67r4o.png-340.4kB

image_1ct2afv7qoa92ce2e81pkg1enu55.png-300.6kB

image_1ct2ajggfc80649l671ni118te5i.png-350.6kB

image_1ct2ak001fi41nnbok82hia4n5v.png-286.8kB

image_1ct2akquuq351a3jdkg1otoj6c.png-575.1kB


四: streamsets 基本使用

4.1 登录到streamsets

image_1ct2amtg8127pqfs1nj4ike6hj6p.png-572.5kB

image_1ct2ao02a1cfi1fvvk6id81e7v7m.png-397.9kB

image_1ct2aoic3ibv156dm5r1cdn1hbp83.png-278.1kB

  1. 默认用户名:admin
  2. 密码:admin

image_1ct2aq2jp5i4osb1jepaoe135690.png-306.9kB

4.2 下载官网测试数据

  1. 准备工作:
  2. 从官网下载测试数据
  3. https://www.streamsets.com/documentation/datacollector/sample_data/tutorial/nyc_taxi_data.csv

image_1ct2as01c93ccnp1o31oqg13ic9d.png-708.5kB

  1. 创建测试目录并赋予权限:
  2. mkdir -p /flyfish/test_stream
  3. mkdir /flyfish/test_stream/data
  4. mkdir /flyfish/test_stream/error
  5. mkdir /flyfish/test_stream/out
  6. chmod -R 777 /flyfish/test_stream

image_1ct2at0ehksh15vq1g38137c14659q.png-215.3kB

  1. 将测试数据拷贝到 /flyfish/test_stream/data 目录下
  2. cp -p nyc_taxi_data.csv /flyfish/test_stream/data

image_1ct2av2dfna3uauejq17ef1frla7.png-548.6kB

4.3.创建第一个Pipelines

image_1ct2b1b63jol1gik1l271lfn1unl9.png-268.6kB

image_1ct2b33nht7pr8e1k1ifrsq4fp.png-265.8kB

image_1ct2b4v8ve101o0dabk1hbr1jle16.png-547.6kB

image_1ct2bc44aaeamq61bg18sac9b1j.png-380.9kB

  1. 点击dataFormat 标签,修改选择如下选择

image_1ct2bek8i1vjp1qdhn3usje17p32g.png-370.7kB

image_1ct2bi0gmegfhvcvr0lbnphd2t.png-352.5kB

image_1ct2bik7i1e7o1kb11tnu59cp6s3a.png-368.3kB

  1. 预览文件

image_1ct2bkm6m134r1mu04pe3hp1du444.png-413.2kB

image_1ct2blo74cpc3jpn0ivtmvm4h.png-357.7kB

image_1ct2bnpti1prd1abt11uf8sj184664.png-534.1kB

  1. 添加流选择器
  2. ${record:value('/payment_type') == 'CRD'}

image_1ct2broca1sj1337102m5g291a6h.png-538kB

  1. 脚本放在 Jython >configuration>Jython>Script
  1. try:
  2. for record in records:
  3. cc = record.value['credit_card']
  4. if cc == '':
  5. error.write(record, "Payment type was CRD, but credit card was null")
  6. continue
  7. cc_type = ''
  8. if cc.startswith('4'):
  9. cc_type = 'Visa'
  10. elif cc.startswith(('51','52','53','54','55')):
  11. cc_type = 'MasterCard'
  12. elif cc.startswith(('34','37')):
  13. cc_type = 'AMEX'
  14. elif cc.startswith(('300','301','302','303','304','305','36','38')):
  15. cc_type = 'Diners Club'
  16. elif cc.startswith(('6011','65')):
  17. cc_type = 'Discover'
  18. elif cc.startswith(('2131','1800','35')):
  19. cc_type = 'JCB'
  20. else:
  21. cc_type = 'Other'
  22. record.value['credit_card_type'] = cc_type
  23. output.write(record)
  24. except Exception as e:
  25. error.write(record, e.message)

image_1ct2c12juhra1sd9plh1i4asc6u.png-199.6kB

  1. 使用Field Masker来屏蔽信用卡的信息

image_1ct2cifqo12ar1t40upmfn635p7b.png-600.8kB

  1. 配置写入目的地

image_1ct2cng0t1l9e16gu1rfnenl1mpc7o.png-496.6kB

image_1ct2cp18h177u1ttt14mjkq0rf58l.png-496.7kB

  1. 流程预览测试

image_1ct2crllg166119tksau164714ph9.png-615.4kB

image_1ct2csm1glh71dt31m1a1lnulo9m.png-676.1kB

  1. 添加Expression Evaluator处理器

image_1ct2d2h0a18s51s56fluaupfk013.png-590.2kB

image_1ct2d4fbl1h9a1dmu1h0f1k9e1sh120.png-497.9kB

image_1ct2df92b6na1jn819c41dghla52t.png-491.2kB

image_1ct2dg6in154foveb934k8cmq3a.png-528.2kB

image_1ct2dh43o10v31v46142a10a514an3n.png-613.1kB

image_1ct2di39239q1bka1at1qvq2aj44.png-588.5kB

image_1ct2div561piga6d1lbid53qm24h.png-591.8kB

image_1ct2djlsv1gl71mci1p5n133t1il14u.png-605.9kB

  1. 编辑流运行与输出

image_1ct2dut16dum1sqn1bpb13up16us80.png-300kB

image_1ct2do02q1p2ov7d1el7hkdm2u6d.png-937.8kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注