如何创建一个大数据平台
所谓的大数据平台不是独立存在的,比如百度是依赖搜索引擎获得大数据并开展业务的,阿里是通过电子商务交易获得大数据并开展业务的,腾讯是通过社交获得大数据并开始业务的,所以说大数据平台不是独立存在的,重点是如何搜集和沉淀数据,如何分析数据并挖掘数据的价值。
我可能还不够资格回答这个问题,没有经历过一个公司大数据平台从无到有到复杂的过程。不过说说看法吧,也算是梳理一下想法找找喷。
这是个需求驱动的过程。
曾经听过spotify的分享,印象很深的是,他们分享说,他们的hadoop集群第一次故障是因为,机器放在靠窗的地方,太阳晒了当机了(笑)。从简单的没有机房放在自家窗前的集群到一直到现在复杂的数据平台,这是一个不断演进的过程。
对小公司来说,大概自己找一两台机器架个集群算算,也算是大数据平台了。在初创阶段,数据量会很小,不需要多大的规模。这时候组件选择也很随意,Hadoop一套,任务调度用脚本或者轻量的框架比如luigi之类的,数据分析可能hive还不如导入RMDB快。监控和部署也许都没时间整理,用脚本或者轻量的监控,大约是没有ganglia、nagios,puppet什么的。这个阶段也许算是技术积累,用传统手段还是真大数据平台都是两可的事情,但是为了今后的扩展性,这时候上Hadoop也许是不错的选择。
当进入高速发展期,也许扩容会跟不上计划,不少公司可能会迁移平台到云上,比如AWS阿里云什么的。小规模高速发展的平台,这种方式应该是经济实惠的,省了运维和管理的成本,扩容比较省心。要解决的是选择平台本身提供的服务,计算成本,打通数据出入的通道。整个数据平台本身如果走这条路,可能就已经基本成型了。走这条路的比较有名的应该是netflix。
也有一个阶段,你发现云服务的费用太高,虽然省了你很多事,但是花钱嗖嗖的。几个老板一合计,再玩下去下个月工资发布出来了。然后无奈之下公司开始往私有集群迁移。这时候你大概需要一群靠谱的运维,帮你监管机器,之前两三台机器登录上去看看状态换个磁盘什么的也许就不可能了,你面对的是成百上千台主机,有些关键服务必须保证稳定,有些是数据节点,磁盘三天两头损耗,网络可能被压得不堪重负。你需要一个靠谱的人设计网络布局,设计运维规范,架设监控,值班团队走起724小时随时准备出台。然后上面再有平台组真的大数据平台走起。
然后是选型,如果有技术实力,可以直接用社区的一整套,自己管起来,监控部署什么的自己走起。这个阶段部署监控和用户管理什么的都不可能像两三个节点那样人肉搞了,配置管理,部署管理都需要专门的平台和组件;定期Review用户的作业和使用情况,决定是否扩容,清理数据等等。否则等机器和业务进一步增加,团队可能会死的很惨,疲于奔命,每天事故不断,进入恶性循环。
当然有金钱实力的大户可以找Cloudera,Hortonworks,国内可以找华为星环,会省不少事,适合非互联网土豪。当然互联网公司也有用这些东西的,比如Ebay。
接下去你可能需要一些重量的组件帮你做一些事情。
比如你的数据接入,之前可能找个定时脚本或者爬log发包找个服务器接收写入HDFS,现在可能不行了,这些大概没有高性能,没有异常保障,你需要更强壮的解决方案,比如Flume之类的。
你的业务不断壮大,老板需要看的报表越来越多,需要训练的数据也需要清洗,你就需要任务调度,比如oozie或者azkaban之类的,这些系统帮你管理关键任务的调度和监控。
数据分析人员的数据大概可能渐渐从RDBMS搬迁到集群了,因为传统数据库已经完全hold不住了,但他们不会写代码,所以你上马了Hive。然后很多用户用了Hive觉得太慢,你就又上马交互分析系统,比如Presto,Impala或者SparkSQL。
你的数据科学家需要写ML代码,他们跟你说你需要Mahout或者Spark MLLib,于是你也部署了这些。
至此可能数据平台已经是工程师的日常工作场所了,大多数业务都会迁移过来。这时候你可能面临很多不同的问题。
比如各个业务线数据各种数据表多的一塌糊涂,不管是你还是写数据的人大概都不知道数据从哪儿来,接下去到哪儿去。你就自己搞了一套元数据管理的系统。
你分析性能,发现你们的数据都是上百Column,各种复杂的Query,裸存的Text格式即便压缩了也还是慢的要死,于是你主推用户都使用列存,Parquet,ORC之类的。
又或者你发现你们的ETL很长,中间生成好多临时数据,于是你下狠心把pipeline改写成Spark了。
再接下来也许你会想到花时间去维护一个门户,把这些零散的组件都整合到一起,提供统一的用户体验,比如一键就能把数据从数据库chua一下拉到HDFS导入Hive,也能一键就chua一下再搞回去;点几下就能设定一个定时任务,每天跑了给老板自动推送报表;或者点一下就能起一个Storm的topology;或者界面上写几个Query就能查询Hbase的数据。这时候你的数据平台算是成型了。
当然,磕磕碰碰免不了。每天你都有新的问题和挑战,否则你就要失业了不是?
你发现社区不断在解决你遇到过的问题,于是你们架构师每天分出很多时间去看社区的进展,有了什么新工具,有什么公司发布了什么项目解决了什么问题,兴许你就能用上。
上了这些乱七八糟的东西,你以为就安生了?Hadoop平台的一个大特点就是坑多。尤其是新做的功能新起的项目。对于平台组的人,老板如果知道这是天然坑多的平台,那他也许会很高兴,因为跟进社区,帮忙修bug,一起互动其实是很提升公司影响力的实情。当然如果老板不理解,你就自求多福吧,招几个老司机,出了问题能马上带路才是正道。当然团队的技术积累不能不跟上,因为数据平台还是乱世,三天不跟进你就不知道世界是什么样了。任何一个新技术,都是坑啊坑啊修啊修啊才完善的。如果是关键业务换技术,那需要小心再小心,技术主管也要有足够的积累,能够驾驭,知道收益和风险。
就我卖过给医院的服务器,设备选择,直接拨打服务器厂家客服,会有专门的客户经理为你选型定制,至于大数据构建,由软件决定,就我见过的,一般统计,医院一段时间内就诊人数,哪一科看病人数最多,什么年龄段,那种病情看病人数多,有些会显示实时人数,比如医护人员有多少人,病床住院有多少人,现在医院进出多少人,及整个医院总人数,
选择数据库服务器的原则:
1、高性能原则:保证所选购的服务器,不仅能够满足运营系统的运行和业务处理的需要,而且能够满足一定时期业务量的增长。一般可以根据经验公式计算出所需的服务器TpmC值(Tpmc是衡量计算机系统的事务处理能力的程序)。
后比较各服务器厂商和TPC组织公布的TpmC值,选择相应的机型。同时,用服务器的市场价/报价除去计算出来的TpmC值得出单位TpmC值的价格,进而选择高性能价格比的服务器。
2、可靠性原则:可靠性原则是所有选择设备和系统中首要考虑的,尤其是在大型的、有大量处理要求的、需要长期运行的系统上。考虑服务器系统的可靠性,不仅要考虑服务器单个节点的可靠性或稳定性,而且要考虑服务器与相关辅助系统之间连接的整体可靠性。
扩展资料:
优点:
1、编程量减少
数据库服务器提供了用于数据操纵的标准接口API(Application Programming Interface,应用程序编程接 口)。
2、数据库安全高
数据库服务器提供监控性能、并发控制等工具。由DBA(Database Administrator,数据库管理员)统一负 责授权访问数据库及网络管理。
3、数据可靠性管理
数据库服务器提供统一的数据库备份/恢复、启动/停止数据库的管理工具。
4、计算机资源利用充分
数据库服务器把数据管理及处理工作从客户机上分离出来,使网络中各计算机资源能灵活分配、各尽其用。
-数据库服务器
华为云提供的大数据MRS服务可以提供租户完全可控的企业级大数据集群云服务,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件。当前性价比很高,最小规格集群已经低至199元/小时,还有买10个月送2个月的活动。
在华为云社区找到了一个介绍MRS服务的云图说,可以MRS云图说。也可以到华为云MRS官方介绍页去看看。
服务器如何选择?服务器的选择大概分为以下几种情况:
一、个人网站或者入门级网站,这类网站由于网站内容和访问量都相对比较低,所以对服务器的要求也较低,选择入门级的服务器即可,而且价格会比较便宜。
二、如果是一般的企业网站,企业的产品数量有限,需要存储的内容也有限的话,一般1核、2G、1M的就够用。
三、如果是做开发游戏、数据分析、在线商城等业务或者有高网络包收发需求的企业,这类网站对访问速度、访问量、存储量、稳定性等的要求都比较高,所以建议考虑计算型服务器。
四、如果有大数据计算与存储分析需求,比如互联网行业、金融行业等,最好选择大数据型的服务器,这种服务器的优势是可以随意升降配置。在具体选择服务器的过程中,有几个重要参数是一定要慎重考虑的:
1、CPU:服务器的CPU代表了主机的运算能力,静态页面对CPU的消耗比较小,动态页面对CPU消耗比较大,所以如果是静态页面一般1核的CPU就够了,如果是动态页面则建议选择2核以上的CPU。
2、内存:服务器内存越大,网站打开速度越快。对有数据库运行需求的中小型网站来说最少选择1G以上内存,因为数据库运行也是比较消耗内存的。
3、硬盘:硬盘需要根据程序体量以及数据库大小来定了,此外系统本身会占用一部分硬盘空间,所以开通以后看到硬盘已经被使用了一部分空间。
4、带宽:如果选择VPS或者云服务器,他们对流量是没限制的,重点要考虑带宽。带宽越大访问网站时速度越快。所以可根据访问量大小及未来的发展规划选择带宽。
5、线路:大陆常用的线路一般是三大运营商的,移动、联通、电信;境外的有香港、美国的。可以根据业务面向用户市场区域选择。
大数据运维工程师需要处理公司大数据平台各类异常和故障,确保系统平台的稳定运行。下面是我为您精心整理的大数据运维工程师的基本职责。
大数据运维工程师的基本职责1
职责:
1、技术保障各底层支撑系统的可靠性与稳定性;
2、负责车辆网平台的运行监控的解决方案编制、实施与二次功能开发;
3、负责技术文档手册编写,更新,经验总结沉淀,培训分享;
4、负责对新技术和方案进行调研,评估和引进,用技术去提升运维生产效率
任职资格:
1、熟悉常见的应用服务部署和调优(Nginx、MySQL、Redis、MongoDB、ELK,Hadoop等),熟悉高可用集群、负载均衡集群的规划与搭建;
2、熟练使用Linux、TCP/IP网络协议栈,了解常用的Troubleshooting手段和常见性能指标
3、具有车联网平台运维的经验,精于容量规划、架构设计、性能优化;
4、熟悉主流PaaS云产品的使用,具有运维平台开发经验者、参与过开源产品的开发者优先;
5、优秀的沟通能力,出色的学习与钻研能力,良好的问题分析与解决能力;
6、对行业技术敏感度高且细致,善于思考,乐于发现,对解决具有挑战性问题充满激情。
大数据运维工程师的基本职责2
职责:
1、负责维护服务器的运行,包括巡检、故障排除、数据备份等业务,保证服务器高质量、高效率运行状态;
2、负责服务器漏洞整改及补丁升级;
3、负责hadoop运维相关工作;
4、负责大数据平台的日常部署、升级、扩容、迁移;
5、负责高并发,大存储和实时流的Hadoop/spark大数据平台规划,运维,监控和优化工作。
任职资格:
1、2年左右服务器运维经验;
2、对linux基础运维命令熟悉,shell,python至少精通一种,如会scala语言可优先考虑;
3、熟悉Linux的维护和管理,熟悉bat及Shell脚本开发,能看懂Python/Scala优先;
4、做过大规模hadoop集群优先;
5、大数据项目:包括不限于hadoop、hive、kafka、hbase、spark、Kudu、Impala等大数据生态的平台搭建,监控,运维,调优、生产环境hadoop集群trouble shooting 、hadoop版本升级管理及优化支持。
大数据运维工程师的基本职责3
职责:
1、负责Hadoop平台搭建,运维,管理,故障处理。
2、负责保障大数据平台的高效运转、提升系统稳定性和安全性。
3、对平台的Hadoop,Hbase,Kafka,Hive等进行优化。
4、建立Hadoop集群管理和维护规范,包括版本管理和变更记录等。
岗位要求:
1、有丰富的Hadoop生态系统的运维经验,了解Hadoop、Storm、Spark、Kafka这些组件的原理,具备部署、实施、维护hadoop 及相关组件的能力;
2、至少精通 Perl/Python/Shell脚本语言中的一种;
3、掌握Linux操作系统的配置,管理、优化以及各种常用命令,能够独立排查及解决操作系统层的各类问题;
4、分析问题能力优秀,善于从各种系统、应用日志中寻找出问题的原因。
5、有独立分析问题和解决问题的能力,能出差。
大数据运维工程师的基本职责4
职责:
1负责Hadoop、spark、hbase、oozie、hive等平台运营和优化工作,保障平台服务运行稳定、高效。
2负责大数据方案架构及方案落地;
3开发Hadoop大数据管理平台与监控建设;
3负责hadoop平台部署、维护;生产问题、告警、故障处理及服务器维护、日常值班;
4负责集群网络架构、机器管理等。
任职资格:
1 全日制本科以上学历,三年以上后台系统运营工作经验;
2 熟悉hadoop原理,具有Hadoop平台应用及管理经验,熟悉hadoop、hive、spark、hbase、oozie、druid、kylin、flink等开源项目及部署、维护、调优;
3 熟悉linux操作系统及调优;熟悉sql编程,熟悉Shell/Python/Java/Perl语言的一种或多种,有开发经验优先, 熟悉nagios,cacti,ganglia,zabbix,zenoss优先;
4 对大数据和自动化运维开发有浓厚兴趣,有大规模hadoop运维经验者优先;有hadoop/hbase/spark/hive 开发经验者优先。
大数据运维工程师的基本职责5
职责:
1 负责大数据平台的稳定性和性能优化;
2 负责大数据项目的运维工作;
3 针对业务需求制定统一的运维解决方案;
4 完善自动监控报警系统,对业务层面关键指标进行监控与报警通知;
任职要求:
1、熟练掌握hadoop平台搭建、维护,有平台优化经验;
2、熟悉HDFS、Hive、Spark、HBbase、Kafka、Flume等组件的原理,有阅读源码能力者优先;
3、熟悉腾讯云产品,有腾讯云EMR使用经验者优先考虑;
0条评论