SPARK全栈 全流程 大数据实战 之 技术选型篇

###一、技术选型,环境搭建安装及生产部署

####1.大数据研发调研和需求分析

如果 你已经或正在尝试搭建一套大数据环境或生产环境做研发和测试部署的话,如APACHE原生包或CDH和其它三方集成包,建议你先读读我的一次kylin安装测试经历《渣外有渣大数据OLAP平台之KYLIN起死回生篇》,可以帮助你了解HADOOP序列的安装使用的各种复杂烦锁配置和版本兼容问题以及各种坑,而且全在LINUX下操作,这无疑是你走进大数据领域的一个最大拌脚石和拦路虎;或是在一些所谓的云计算平台上操作,目前来说大多数都还处在比较基础功能集成和简单的工具封装,还需要太多的手动配置和其它模块集成等操作,才能完成和实现你的一个完整数据开发需求,要不就像databricks和IBM的bluemix一样需要付费。而你不想重复这个痛苦的过程,需要先了解一下大数据研发环境需要如下几方面需求:

  1. 数据支撑平台:大数据的基础存储(HDFS,S3,或是其它分步式存储平台或对象存储产品等),计算框架(MAPREDUCE,SPARK)集成平台,加基本的监控运维安全支持(如CDH或其它三方平台集成的监控管理平台,或是云平台)

  2. 研发测试工具链:一套数据开发测试各阶段的工具链的集成整合(ETL采集中间件及辅助处理工具:sqoop,flume,fluent,kafka,kettle,infomatica等;仓库工具:HIVE,SPARK SQL;实时流计算框架:storm,spark streaming,structured streaming;OLAP 平台cube技术: kylin等;BI工具:sas,spas,mahout,spark mlib,r,python,tableaue),还不包括研发过程管理和到生产发布环境的自动化部署管理

  3. 应用层输出整合:一序列数据输出(如数据集市:hbase,cassandra,parquet,mogodb;),报表生成(如smartBI,cravel),应用展现可视化等(如R,Python,还有html5的各种js框架)应用层工具框架

大数据本身是一个多行业融合的化身和产物,需要的的确不只是跨专业(计算机,互联网,信息处理,视觉处理,数理统计,机器学习,深度学习,人工智能)的人才,光从技术实现上技术框架工具整合集成管理都 是一复杂的工程。而刚入门的童鞋,如果说还在纠结使用哪种技术或开始学习哪种技术来实现大数据的话,那可能你对这个行业或这个体系还不了解,它绝对 不是 一种技术或一个框架就能解决 的问题。当然也有给大数据做行业或技术细分的,如做ETL的,做DW DM ,做OLAP,ODS,这些都是传统数仓技术学HADOOP+hive就好了;做在线处理或实时交易的,使用storm或spark streaming就可以搞定;而往往这些技术只能解决其中一部分主要问题,你不能说你做数仓就不展现不输出不分析,没有意义或只给word,pdf方案,价值不是太大,效率也不是太高;而你又不能说做线上处理实时交易,而不管理离线积累;或是你只做数据算法,分析工具,普通用户也用不了;所以人们和市场的需求往往是多样性的,需要的是全套采集存储计算分析管理一体化DMP系统,不仅傻瓜操作而且要能轻松易懂多样化的展现,要么就是要做完整据于行业和企业特点的个性化的BI商业应用,或是做像家电一样买回来,打开按下启动键或是说声HI,就可以使用和提供服务的AI产品.

####2.技术选型及测试

** docker镜像+云计算存储平台+sparkNotebook,使你直面需求和业务逻辑,迅速进入正式开发测试和生产部署阶段**

  • 「目前现状」多数大数据生产环境部署使用三方的像CDH这样的集成平台,一是提供稳定的版本集成,定制和功能扩展及加强外,甚至是多计算框架集成,在线配置统一管理等 ,还提供简单安装过程,集群技术部署监控管理,还有好用的web辅助操作平台HUE。基本上是基础输入出存储平台,集群监控管理,到开发测试工具集成,甚至包含一些简单展现工具方便分析调试处理结果,多数需求都 有了。唯一的缺点是只是对现有各种技术 的集成封装,如要据线上需求调整参数或架构那这一套还是要做大量的管理,hadoop序列产品的特点就是不是一家的,数据格式不兼容统一不说,版本兼容复杂配置还是逃不了,而且因为这点一些新版本和技术优化特性没发使用,版本往往靠后,瓶颈很容易出现,而hadoop本身的发展就不快,这也是阻碍它发展的主要拌脚石。

  • 而这里提供的「方案思路」是存储系统包含输入出系统如dw dm ods cube加速等与计算系统或其它系统如web应用,可视化,爬虫等分别隔离,独立出来。好处依次是系统和服务分解,基本的拆分思路解决大而难的复杂问题,其次分治,方便管理扩充维护,再次是专业的需求专业问题教给专业的技术和人资源来解决回答到更优的方案,也体现了现在流行的微服务理念。

  • 而「存储系统」建议直接使用线上成熟产品,如S3,云存储,db等,主要监控运维工作都交给云平台处理,而且自搭数据平台资源限制,要真实环境使用往往也需要线上平台做为扩充,而且真实环境这些基本运维管理可能根本达不到要求,安全,容错,备份,容灾,恢复,升迁不是一件简单的事;存储平台的自搭需求只有在自有敏感数据做预处理或脱敏时有必要,而且这块完全是一个内部研发级系统就可以了,要求不需要太高

  • 其次是「计算系统」直接用spark平台,数据采集预处理(各种数据结构api,dataframe,dataset,spark sql都可以做为数据处理工具) 实时(spark streaming可以处理各种高级或低级数据源)离线(可以对接各种数据库,日志,文件或不同格式的数据进行直接对接操作)计算 分析 统计(spark sql mlib graph x还有扩展的r python) 研发(scala python node.js)一站式解决,而且的他的集群管理,运维监控都有好的方案,管理相对容易。而这一切正是在受了一代数据平台多年发展的苦后,人们急切呼吁,市场急需变革而产生的新一代产物,重点是spark据于自身的优点和社区版本不断跌代和互联网计算机信息行业发展特点技术创新技术引导18月理论等渐渐偶合,它的性能吞吐量易用性易实施管理和多样需求至多技术栈隔合,数据格式统一等也越来越完善和被肯定。而有一些大公司现在开始加入和推进HADOOP体序的升级,也正是印证了在这个行业不发展不改变面对结果将是直接被人们忽略掉的特点,且再不发展推进可能现有平台的维护都可能后继无人了,而如今还有人一在用hadoop体序的惟一原因是一些大公司有些数据积累,一直沿用这套平台(有的还在沿用1.x的版本),而且大规模部署甚至在此基础 上建云平台和上层设施,而这一切变革意味着不仅是全套技术积累的废弃而且有利益的隔舍。而你挡不住历史的齿轮,这一切终将会到来!而还有些人说是因为JAVA语言的特点在使用hadoop,人员好找,这句话根本站不脚,真正用起hadoop系统的都 是用脚本做业务处理,没人会为做一步etl写一大堆java程序,而java对分步式数据集的处理并不善长,其次,从学习难度上来说,学java+hadoop一序列的框架,还有发展缺点和天花板,而学同样一门JVM语言scala,一个spark框架 就能解决一序列的问题,且发展前境无限,结果显然若见:1+n>1+1

  • 「其它子系统」如如web应用,可视化,爬虫等常见数据开发辅助平台这里就略了,据自己的实际场境如业务相关性,服务相关性和具体集群环境做选择和架构调整

  • 这里值得一提的是「自动化管理」使用docker技术做研发测试生产部署的隔离,跌代,集成管理,研发过程管理或线上服务治理 ,自动化管理 ,和架构演进,加云平台的一站式支持,这也是新一代CI,CD,DEVOS,微服务理念的趋势,说到云平台除国际知名AWS ALIYUN对容器不断支持外,还有databricks,bluemix等知名数据服务商,国内容器云优秀的也有不少,像时速云等产品做的就不错,思路和本地化方面做的非常好,是个不错的选择

  • 还有今天的主角儿新一代「大数据开发环境」spark notebook,与其它在线平台比如databricks,bluemix等开源免费不说,和hue及python notebook开源产品比,除支持在线编辑sql,脚本执行,调试和日志收集回显,markdown集成,各种页面快捷等(这已经是传统开发工具无法做到的,在线集群上调试运行代码,免去分步式程序和算法模型,需打包发布提交集群,测试参数优化和算法改进后再打包发布等常见过程),而且直接集成SBT包管理,cell里命令管理linux系统,这还是辅助的,重点各种数据可视化组件直接调用还可以cell里自定义,(不仅不用回linux界面,连可视化都不需要学r,python,html5框架整合了),还有spark各个模块的用例直接操作运行查看效果,还有多种内核版本集成,可在一平台管理不同版本下的代码和数据测试,而且有scala脚本md pdf等导出和运行进程及集群简单状况管理,还有运行job状态,errlog,和chat room(这个偶然发现还没试用过),惟一发现好像代码提示不是太好用,不知是不是我的离线操作原因,还有如果再加脑图,建模,制图工具在集成的话这个就是一个简洁版的dmp平台了,呵呵

  • 关于部署和安装请参照官网spark-notebook.io,提供多种集成版本选择和tar,zip,gz和docker下载。如果你和我一样是使用docker直接在官网里直接选好版本,一条docker run 命令bulild运行的话(官网说的是docker pull ,docker run 两条命令5秒钟搞定,you known 使用一条即可,实际情况可能国内网络环境问题我下了三四次),后通过自带各模块的例子按几下shift+enter,直接看到结果,文档都无需查看直接上手,上面都是一时间试用总结。文档也许在源码包里吧,官网也没有看到,只有版本选择下载和提示他们在招人加入,好像还是个国内人主持开发或发启参与 的,非常 不错。在我的使用和体验中非常流畅,相比其它产品有过之而无不极。至此如果说HUE和它集成监控还是你觉得在hadoop体序下值得留念和赞赏的话,此刻你可以说spark已经在各方面全面超越,好了,为了不让多数人灰心和失望和引发无谓口水战,加一句「个人观点,仅供参考」!此博文的编写及后续实战都直接在spark notebook上实现,运行调试结果,日志输出和展现效果都将借助他一目了然全然成显,然 后在makedown导出原样转贴至blog。

    如果 在这里使你感觉所帮助 或表示赞同的话,欢迎打赏,也欢迎留言回贴收藏转载支持和指正,3Q。

转载于:https://my.oschina.net/hblt147/blog/817324

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值