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

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

标签(空格分隔): 大数据平台构建


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

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

1.1: StreamSet 简介

StreamSets由Informatica前首席产品官Girish Pancha和Cloudera前开发团队负责人Arvind Prabhakar于2014年创立。他们成立该公司主要是应对来自动态数据(data in motion)的挑战 - 包括数据源,数据处理和数据本身,这是一个称为“数据漂移“(https://streamsets.com/reports/data-drift/)的问题。StreamSets设想从头开始管理数据流,避免已有产品和工具的缺陷,并启用一种管理动态数据(data in motion)的新方法。

最新的产品StreamSets Dataflow Performance Manager,也叫DPM,主要用于构建端到端的数据流。DPM是一个运行控制中心,可以让你映射(数据流),内置的测量和监测确保持续的数据传输和控制动态数据(data in motion)的性能。首先,它将你不同的数据流映射到支持你的每个关键业务流程的拓扑中。然后监测这些拓扑的日常运行情况,根据掌握的性能情况,以满足应用的SLA为目标,确保你始终提供及时和可信的数据。

StreamSet的架构处理数据流程

image_1cfoqtd5r887cgm1m7n62nuojm.png-224.7kB

二:安装软件准备

2.1:下载StreamSets

下载:StreamSet

 https://archives.streamsets.com/index.html

 下载文件:
 STREAMSETS-3.0.0.0.jar
 STREAMSETS_DATACOLLECTOR-3.0.0.0-el7.parcel
 manifest.json

image_1ct27llquh5adhboeb1n4e1uio9.png-317.5kB

2.2: 配置httpd-server

yum install -y httpd* 

service httpd start 

chkconfig httpd on 

mkdir -p /var/×××w/html/streamsets

cp -p STREAMSETS-3.0.0.jar /opt/cloudera/csd/

chown cloudera-scm:cloudrea-scm -R /opt/cloudera/csd/

mv manifest.json /var/×××w/html/streamset/

mv STREAMSETS_DATACOLLECTOR-3.3.0-el7.parcel /var/×××w/html/streamset/

从启cdh的CM 服务器

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

重启cloudera-scm-server 
cd /etc/init.d/
./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

默认用户名:admin
     密码:admin

image_1ct2aq2jp5i4osb1jepaoe135690.png-306.9kB

4.2 下载官网测试数据

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

image_1ct2as01c93ccnp1o31oqg13ic9d.png-708.5kB

创建测试目录并赋予权限:

mkdir -p /flyfish/test_stream
mkdir /flyfish/test_stream/data
mkdir /flyfish/test_stream/error
mkdir /flyfish/test_stream/out
chmod -R 777 /flyfish/test_stream

image_1ct2at0ehksh15vq1g38137c14659q.png-215.3kB

将测试数据拷贝到 /flyfish/test_stream/data 目录下

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

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

image_1ct2bek8i1vjp1qdhn3usje17p32g.png-370.7kB

image_1ct2bi0gmegfhvcvr0lbnphd2t.png-352.5kB

image_1ct2bik7i1e7o1kb11tnu59cp6s3a.png-368.3kB

预览文件

image_1ct2bkm6m134r1mu04pe3hp1du444.png-413.2kB

image_1ct2blo74cpc3jpn0ivtmvm4h.png-357.7kB

image_1ct2bnpti1prd1abt11uf8sj184664.png-534.1kB

添加流选择器

    ${record:value('/payment_type') == 'CRD'}

image_1ct2broca1sj1337102m5g291a6h.png-538kB

脚本放在 Jython >configuration>Jython>Script 中
try: 
  for record in records:
    cc = record.value['credit_card']
    if cc == '':
      error.write(record, "Payment type was CRD, but credit card was null")
      continue
    cc_type = ''
    if cc.startswith('4'):
      cc_type = 'Visa'
    elif cc.startswith(('51','52','53','54','55')):
      cc_type = 'MasterCard'
    elif cc.startswith(('34','37')):
      cc_type = 'AMEX'
    elif cc.startswith(('300','301','302','303','304','305','36','38')):
      cc_type = 'Diners Club'
    elif cc.startswith(('6011','65')):
      cc_type = 'Discover'
    elif cc.startswith(('2131','1800','35')):
      cc_type = 'JCB'
    else:
      cc_type = 'Other'
    record.value['credit_card_type'] = cc_type
    output.write(record)
except Exception as e:
  error.write(record, e.message)

image_1ct2c12juhra1sd9plh1i4asc6u.png-199.6kB

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

image_1ct2cifqo12ar1t40upmfn635p7b.png-600.8kB

配置写入目的地

image_1ct2cng0t1l9e16gu1rfnenl1mpc7o.png-496.6kB

image_1ct2cp18h177u1ttt14mjkq0rf58l.png-496.7kB

流程预览测试

image_1ct2crllg166119tksau164714ph9.png-615.4kB

image_1ct2csm1glh71dt31m1a1lnulo9m.png-676.1kB

添加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

编辑流运行与输出

image_1ct2dut16dum1sqn1bpb13up16us80.png-300kB

image_1ct2do02q1p2ov7d1el7hkdm2u6d.png-937.8kB

猜你喜欢

转载自blog.51cto.com/flyfish225/2321515