云服务器自己如何做大数据
‘壹’ 什么是云计算大数据
大数据的本质就是利用计算机集群来处理大批量的数据,大数据的技术关注点在于如何将数据分发给不同的计算机进行存储和处理。
云计算的本质就是将计算能力作为一种较小颗粒度的服务提供给用户,按需使用和付费,体现了:
经济性,不需要购买整个服务器
快捷性,即刻使用,不需要长时间的购买和安装部署
弹性,随着业务增长可以购买更多的计算资源,可以需要时购买几十台服务器的1个小时时间,运算完成就释放
自动化,不需要通过人来完成资源的分配和部署,通过API可以自动创建云主机等服务。
云计算的技术关注点在于如何在一套软硬件环境中,为不同的用户提供服务,使得不同的用户彼此不可见,并进行资源隔离,保障每个用户的服务质量。
在大数据和云计算的关系上,
两者都关注对资源的调度。
大数据处理可以基于云计算平台(如IaaS,容器)。
大数据处理也可以作为一种云计算的服务,如AWS的EMR(Amazon Elastic MapRece )阿里云的ODPS(Open Data ProcessingService)。
‘贰’ 云计算是怎么连接到大数据的
移动互联网,就是将移动通信和互联网二者结合起来,成为一体。是指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
大数据分析是指对规模巨大的数据进行分析。大数据可以概括为5个V, 数据量大(Volume)、速度快(Velocity)、类型多(Variety)、Value(价值)、真实性(Veracity)。大数据作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。
‘叁’ 如何搭建大数据云平台具备要素高并发
你好,您应该是景区或者文旅部门机构,这个问题深入展开不是一句两句能讲清楚地哈,简单说一下目前现状:目前全国范围内搭建的规范还没有,各地从金额来说几千万到几十万的方式都有,金额特别大的项目大概率是基建和装修及硬件采买。如果是一个基础设施完善的机构,基本是信息集成,包括票务、摄像、投诉、客流、停车场管理、广播通信(一般在应急平台上)、口碑等;如果基础设施落后,个人建议也没有必要花太多钱去搞基建,你建设的目的是为了应用,直接找相应的数据服务公司就好了,自己又不用培养数据方面的人才,直接使用数据服务很方便,每年付费也比一下投入大量资金用于基建只有一个空壳子要好,现在国内科技公司越来下沉行业,大量的案例应用服务基本满足大部分客户需求了,没必要自己照搬一套在自己本地。据我了解网络腾讯阿里都有文旅服务的部门,也有专注做文旅数据市场服务的,好像叫海鳗,他们海字辈的企业一堆,都针对不同行业。我作为文旅管委会的从业者,还是建议直接买服务,我们自己景区建的中心都没有数据,领导也走了,晾在那每人管了,太浪费了。
‘肆’ 怎样为云计算大数据Spark高手
所谓的大数据平台不是独立存在的,比如网络是依赖搜索引擎获得大数据并开展业务的,阿里是通过电子商务交易获得大数据并开展业务的,腾讯是通过社交获得大数据并开始业务的,所以说大数据平台不是独立存在的,重点是如何搜集和沉淀数据,如何分析数据并挖掘数据的价值。
我可能还不够资格回答这个问题,没有经历过一个公司大数据平台从无到有到复杂的过程。不过说说看法吧,也算是梳理一下想法找找喷。
这是个需求驱动的过程。
曾经听过spotify的分享,印象很深的是,他们分享说,他们的hadoop集群第一次故障是因为,机器放在靠窗的地方,太阳晒了当机了(笑)。从简单的没有机房放在自家窗前的集群到一直到现在复杂的数据平台,这是一个不断演进的过程。
对小公司来说,大概自己找一两台机器架个集群算算,也算是大数据平台了。在初创阶段,数据量会很小,不需要多大的规模。这时候组件选择也很随意,Hadoop一套,任务调度用脚本或者轻量的框架比如luigi之类的,数据分析可能hive还不如导入RMDB快。监控和部署也许都没时间整理,用脚本或者轻量的监控,大约是没有ganglia、nagios,puppet什么的。这个阶段也许算是技术积累,用传统手段还是真大数据平台都是两可的事情,但是为了今后的扩展性,这时候上Hadoop也许是不错的选择。
当进入高速发展期,也许扩容会跟不上计划,不少公司可能会迁移平台到云上,比如AWS阿里云什么的。小规模高速发展的平台,这种方式应该是经济实惠的,省了运维和管理的成本,扩容比较省心。要解决的是选择平台本身提供的服务,计算成本,打通数据出入的通道。整个数据平台本身如果走这条路,可能就已经基本成型了。走这条路的比较有名的应该是netflix。
也有一个阶段,你发现云服务的费用太高,虽然省了你很多事,但是花钱嗖嗖的。几个老板一合计,再玩下去下个月工资发布出来了。然后无奈之下公司开始往私有集群迁移。这时候你大概需要一群靠谱的运维,帮你监管机器,之前两三台机器登录上去看看状态换个磁盘什么的也许就不可能了,你面对的是成百上千台主机,有些关键服务必须保证稳定,有些是数据节点,磁盘三天两头损耗,网络可能被压得不堪重负。你需要一个靠谱的人设计网络布局,设计运维规范,架设监控,值班团队走起7*24小时随时准备出台。然后上面再有平台组真的大数据平台走起。
然后是选型,如果有技术实力,可以直接用社区的一整套,自己管起来,监控部署什么的自己走起。这个阶段部署监控和用户管理什么的都不可能像两三个节点那样人肉搞了,配置管理,部署管理都需要专门的平台和组件;定期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,一起互动其实是很提升公司影响力的实情。当然如果老板不理解,你就自求多福吧,招几个老司机,出了问题能马上带路才是正道。当然团队的技术积累不能不跟上,因为数据平台还是乱世,三天不跟进你就不知道世界是什么样了。任何一个新技术,都是坑啊坑啊修啊修啊才完善的。如果是关键业务换技术,那需要小心再小心
‘伍’ 如何使用云计算,做数据库
鄙人浅谈下,欢迎批评:
SAAS软件即服务;租赁商构建服务器集群,然后在服务器上虚拟化,构建服务模块,再把这麼服务模块租给企业使用,这样企业就可以省去购买和维护这些服务的成本;
鄙司现也在走这样的路线,就拿ERP系统服务举个例子
1.购买功能强大的服务器虚拟成N个子服务模块(数据库服务器,ERP服务器)--节约成本;
2.ERP服务器与数据库服务器直接交互,加快信息处理;
3.各user利用远端(web)的模式连接到服务器上操作,只需要维护服务器端即可,大大减少了维护成本
云计算的发展促进了企业无纸化操作的快速发展,同时作为计算机行业从业人员,工作危机也感受到了,呵呵
‘陆’ 自建大数据平台,服务器需要什么样子的性能配置谢谢!
最好是当前最好的配置,因为服务器更新换代也快,谁知道两年后的发展会多么快,当然这个也要结合自身实力来看,不过都自己做大数据平台了,应该不差钱吧,服务器越好,后面越省事,也更省钱。
‘柒’ 如何自建网络数据库服务器
服务器如何选择?服务器的选择大概分为以下几种情况:
一、个人网站或者入门级网站,这类网站由于网站内容和访问量都相对比较低,所以对服务器的要求也较低,选择入门级的服务器即可,而且价格会比较便宜。
二、如果是一般的企业网站,企业的产品数量有限,需要存储的内容也有限的话,一般1核、2G、1M的就够用。
三、如果是做开发游戏、数据分析、在线商城等业务或者有高网络包收发需求的企业,这类网站对访问速度、访问量、存储量、稳定性等的要求都比较高,所以建议考虑计算型服务器。
四、如果有大数据计算与存储分析需求,比如互联网行业、金融行业等,最好选择大数据型的服务器,这种服务器的优势是可以随意升降配置。在具体选择服务器的过程中,有几个重要参数是一定要慎重考虑的:
1、CPU:服务器的CPU代表了主机的运算能力,静态页面对CPU的消耗比较小,动态页面对CPU消耗比较大,所以如果是静态页面一般1核的CPU就够了,如果是动态页面则建议选择2核以上的CPU。
2、内存:服务器内存越大,网站打开速度越快。对有数据库运行需求的中小型网站来说最少选择1G以上内存,因为数据库运行也是比较消耗内存的。
3、硬盘:硬盘需要根据程序体量以及数据库大小来定了,此外系统本身会占用一部分硬盘空间,所以开通以后看到硬盘已经被使用了一部分空间。
4、带宽:如果选择VPS或者云服务器,他们对流量是没限制的,重点要考虑带宽。带宽越大访问网站时速度越快。所以可根据访问量大小及未来的发展规划选择带宽。
5、线路:大陆常用的线路一般是三大运营商的,移动、联通、电信;境外的有香港、美国的。可以根据业务面向用户市场区域选择。
‘捌’ 青云李威:在云上做大数据平台有什么独特的挑战
7月18日,"云用户生态发展论坛暨第三届中国云计算用户大会"在北京国家会议中心召开。在下午的会议中,青云QingCloud系统工程师及大数据平台负责人李威带来主题为“大数据云平台之最佳实践”的精彩演讲,以下是他的演讲实录:
李威:大家好,我是QingCloud青云的系统工程师李威。今天我讲的这个话题可能技术性有点强,可能需要大家费点脑子。分成几大块。第一,先说一下云计算和大数据的关系。第二,在云上做大数据平台有什么独特的挑战。第三,我们会讲一下大数据平台它有一个比较基本的,或者说通用的一个系统架构是什么样子。最后,分享一些我们自己的,包括和在客户那儿的一些跟大数据相关的最佳实践。
大数据的例子,我就不说太多了,说一些我们的一些企业客户的。比如说第一个是一个非常大型的一个跨国的一个互联网社交企业。然后他们会用我们在云上的大数据的一些平台,包括一些具体的技术,会做比如用户画像。就是你在社交网络里面,然后为什么推荐给你的朋友正好是你可能会认识的,然后为什么推荐给你的信息可能就是你感兴趣的。这个都是用户画像用大数据来做的。
第二,像一个非常大型的互联网的金融企业,它会用大数据做一些风控分析。因为在互联网金融,尤其是互联网金融行业里面,它之所以可以和传统金融PK,就是因为它在风控这方面可以用大数据技术把风险控制的非常小。大家可以想一想,在P2P平台上面,凭什么没有像以前传统银行各种人来调查你,没有什么抵押金,但是可以让你用钱。包括政府部门海量信息检索,比如它需要把全国的各种部门联合起来,然后我需要有一个犯罪嫌疑人他有没有可能在各个地方有一些其他数据,我可以搜索,可以挖掘,然后进行一些分析。
大数据很火,它跟云计算到底什么关系?其实我们认为大数据现在大家可能觉得到什么地方都听见大数据,其实很可能每个人说的不一样,也得人说的是大数据平台,有的人说的是大数据的某个产品,有的人可能说的是大数据的某个应用,比如Alpha Go。
尤其在企业里面,我们和客户谈的时候,客户第一个比较想不明白的就是大数据的产品和技术太多了,而且每个场景都区别不是那么明显。所以,在大数据这个技术里面,我们第一个要解决的就是到底怎么选择大数据的解决方案,怎么为企业做大数据解决方案。但是,每个企业需求变化又特别大,或者有很多企业,就是传统企业他们对大数据的需求不是非常明确,互联网企业他们需求变化非常快。按照传统的比如建一套大数据平台,可能花费很多成本,时间成本、人力成本,包括金钱。但是云平台,大家知道IaaS、PaaS、SaaS,最后所有东西都变成服务器。你要构建一个非常复杂方案的时候成本就低,因为你只需要按照服务构建的方式来做,而且这样非常灵活,如果你发现其中方案某一部分有问题,你可以很快的替换掉,因为很多都是平台上的服务。所以,它可以满足你的业务不确定性的需求,包括业务弹性的需求。因为大家知道现在变化太快了。
第二,云计算给大数据带来的好处是什么?比如它可以自动化运维,一些复杂系统的安装、部署、监控都不用你自己做,在界面上非常快的就可以,非常简单就能做完。然后还有一些包括稳定、性能,这个不多说了,云计算的好处大家肯定知道特别多,说几个有意思的。
比如,网络和存储,计算引擎的切换,这个比较有意思。也就是当你的平台足够复杂,足够大的时候,每块部分都是一个服务器,每一块变成一个服务器之后,可以非常灵活的替换掉它,把他换成别的产品实现,或者别的技术实现。后面就是Service Orchestration,就是比如你有一个界面,需要画各种图,或者工具也好,但是他们有一个非常致命的缺点,你画的那个图是不能执行的,就是是不能部署,不能执行的。Service Orchestration是给你一个大的拓扑图,这也是青云今年年初发布的一个产品,叫做资源编排。可以在云平台把一整套的架构部署出来,这是云上他们这些带来的一些好处。
云上大数据平台的挑战。很多企业做大数据平台在物理机上做,为什么没有在云上做?因为挑战非常多。第一,稳定性的挑战,比如高可用、灾备。第二,性能。一直被人垢病的,因为你是虚拟机,肯定没有网络机的硬盘快。在青云第一个IaaS层的稳定性已经运行好几年了,没有太多可说的。垢病性能这一块,我们去年做了软件定义网络的2.0,2.0出来之后,这个是为云计算,为大的IaaS平台专门研发的一套SDN,可以做到点对点之间的网络传输,可以达到物理网卡。第二,在硬盘这块一直被垢病的,我们容器技术,可以把硬盘的技术降的非常低。第三个好处就是迁移,迁移技术非常好,因为现在已经有一些比较成形的,比如关系型数据库和非关系型数据库。
我们说解决这些挑战之后,我们会有一个大数据的平台系统架构出来这个架构其实都是一个非常通用的架构。就是你可能在很多企业里面,不管京东、美团、亚马逊,可能看到的基本都是这样的样子。其实先从左开始看起,其实是一个数据的生命周期,就是数据从哪个地方收集,可能是日志,可能是传感器,收集过来到中间的核心平台,最下面一层就是IaaS,青云所有PaaS层的服务都是基于IaaS做的,就是都是在云上面的。然后到第一个就是存储。中间三个大块,第一个叫实时计算,叫Storm,当然Twitter现在出来的可能宣称比Storm更强。第二,就是Batch Processing,第三个就是Big SQL,包括像Kylim等。右边就是你做所有平台可能都会做的,包括它的数据管理、监控、安全,包括用来做分布式的配置中心的一项东西。
所有的数据经过存储、计算之后,你可能会通过一些,就是你想要一些非常好的用户友好的方式使用这些数据,我们一般可能会把数据提交到比如说像一些交互性比较好的技术组件里面,这样在最上层,不管报表还是可视化,像Hadoop生态圈里面比较流行的做可视化就比较方便。
我现在画的这个图里面,基本上就是在大数据的生命周期里面最核心的,或者说最主流的产品或者技术都涵盖在里面了,青云自己的大数据平台也是按照这个架构来做的。
接下来先说一下,我会按照这个架构,挨个的挨个的说。第一,先说一下计算。计算上面最经典的就是Hadoop,这个图不需要太多说。如果大家平时研究大数据,可以提一点,从2.0后之,它的HDFS有高可用,把之前的变成Yarn来支持,这样会提升很大的性能。第二个计算型的架构就是Spark,比如它上面有主流的一些功能。如果做实时计算,Storm肯定首选的。MapRece延迟非常高,但是吞吐量很大。MapRece的硬盘非常高,Spark Streaming由于它是硬盘计算,所以计算还好。如果之前有一些Hadoop生态圈的基础,可能选Spark比较好,如果不是要求非常实时,因为Spark平台非常强,它本身就是一个平台,现在的平台发展非常快,所以可能选Spark,对你要求非常高,现在我们碰见的客户都有。第二,Big SQL里面,提几个,一个是Phoenix,提供了SQ语言上包装的产品。第二种就是MPP的。
存储。最初就是HDFS,第一,一定是为大文件设计的,不是为海量小文件设计的。如果想处理海量小文件,在青云平台上有一个想象就是对象存储,我们当时设计的时候不管文件什么类型,不管文件什么大小,都可以用这个存储。HDFS为什么不能存海量小文件,原因很简单,像Linux里面所有数据都有一个索引,如果存海量小文件,索引的数据有一个特点,不管数据文件大还是小,索引的数据都是一样的大。存海量小文件的时候其实文件没有多大,它会非常影响性能,导致数据整个存储空间没有利用慢,但是性能已经不可用了。
第二个比较主流的存储就是Hbase,Hbase是架构在HDFS之上,它可以存非常宽的样表,也可以存非常高的样表,所有表的数据分布在每个节点上,其实它的架构比这个复杂多了。其实你可以看成对应一个表的概念。不知道大家有没有人看Hbase,可能刚开始看Hbase比较费解,因为它是列式的存储,和以前看到的数据库解的不一样。其实它的定义非常简单,就是最上面,第二行那句话,是一个稀疏的、分布式的、多维的、持久化的一个影射。稀疏的就是是一个单位格的比,Hbase在存储格式上已经解决了这个问题,可以存一个稀疏的表。第二,分布式的就不用解释了。这个图里面可以看到有一些时间戳的概念在里面,这是一个比如第一个是一个记录的Row Key,然后有一个Column Families,然后有一个版本号。
存储里面的选型,刚才说了几个,做存储选型怎么选?并不一定是一开始肯定会听到很多人说Hbase一定比HDFS快,这些说法都是不责任的,都是一定要在什么场景下。比如说Hadoop,这样的方式就是在做全局文件扫描的时候是快的,但是像Hbase做随机存储的时候是快的,所以也是分场景的。但是像中间这个KUDU,昨天一个客户说他们正在用一个KUDU,属于一个中间的方案,介于HDFS和Hbase之间的一个存储引擎,现在还没有看到大规模的生产应用。这个就是今年年初做的一个数据仓库,Greenplum Database,是去年开源的。之前Greenplum的核心就能工业他们自己出来,它最大的一个好处,我们觉得有几个,第一个是标准的SQL,你可能看到很多市面上的产品都说支持SQL,但是其实都不是标准的。不是标准的意味着什么?比如很多语法不一样,你以前像数据工程师,数据分析师,他们用的比较高级的用法都没法用。但是,Greenplum Database不一样,因为它的核心计算引擎我们觉得比MySQL更好,它还有很多别的特点。
我们说完计算的产品,说完存储的产品,接下来一些数据的传输。数据传输我们说一个最经典的Kafka,是分布式、可分区、多副本、低延迟的。低延迟什么意思?左右这两张图长的很像,其实就是Kafka相当于进入和留出的数据,Kafka就是领英开源的,因为我们平台提供了Kafka服务,他们现在也在用,这是他们是使用出来的一个产品。意思就是Kafka的延迟非常低,基本数据不落下来,直接就出去了。
为什么它可以这样?有两个非常本质的原因:第一,它在写数据的时候是直接写到PageCatch里面,往外发的时候直接通过Linux发出去的,所以它的吞吐量延时非常低,这是两个核心的原因。Kafka的架构非常简单,就是三个松偶合的,比如最上层是它的生产者,然后是一个集群,中间是一个服务器,Kafka的服务器,下面是它的消费者。它的生产者一个集群都可以往broker里面发数据,相当于broker把数据发到第一个Partition里面,第二个发到第二个Partition里面,Partition第一个主要概念就是你发布的消息是什么,你生产出的消息相对于在Kafka里面有几个队列,每个队列就是一个Partition。
第二个集群就是它的消费者,消费者可以提比较重要的一点,它有一个消费组的概念,这个组的概念非常重要。当你想把一个Topic的消息想多播出去,想被很多个消费者处理的时候,这个时候需要建多个消费组,这个消息才能被多个消费者来消费。如果只建了一个消费组,哪怕这个消费组有好几个消费者,每次都是由一个消费者处理的。第二个问题,就是消费组里面消费者的数量,这里面一个是两个,一个是四个,就是一个消息里面有四个Partition,如果有四个消费者,正好一对一,每个消费者消费一个Partition,如果只有一个消费者,有一个会消费两个Partition。这种情况比较好。有一种情况要避免,就是比如有5个消费者,你那个Topic只有4个队列,你就会浪费掉一个消费者。这个是需要注意的。
说完了计算,说完了存储,说完了传出,然后说一些我们碰到的问题。第一个大问题就是复制因子的问题,为什么原生的不用考虑,但是云上为什么要独特考虑呢?原因很简单,因为在云上面所有的服务都是基于IaaS做的,IaaS这一层本身有高可用,就是它的数据本身就是有副本的,如果你还照搬物理机上的做法,你就找三个副本,你想想2×3就是6个。所以,第一个就是要去副本,把它用两个副本,这是我们最开始想的方案,用两个副本就行了。但是,后来我们觉得两个副本还是2×2=4,还是空间浪费上会多一点。
后来我们想更高级的方案是什么?就是我们在IaaS这一层提供一种能力,让PaaS层可以选择,说我要几个副本,就是变成一个选项,这样比如像大数据这样,或者非常脆弱的应用,但是有时候比如不需要,有它自己的一个副本的策略,完全不需要IaaS层的副本,这个时候就根据你自己的配置,或者根据你自己的产品的需要可以配置IaaS层的副本策略,这样跟物理就是一样的了。
这个参数调优,比如像典型的大数据里面每个产品或者每个平台都有两三百个参数,这个太正常了,这个时候做调优第一个重要的步骤就是你应该知道我们应该尽量去知道这些调优的参数之间什么关系,他们之间到底什么关系,不能只知道每一个参数是干什么的,要不然调一个,影响另外一个,或者调按没有任何反应,那是因为你没有把这个关系搞清楚。像这样的图,可以把yarn里面的Node Manager都弄的比它小,然后是yarn里面分配的内存,这个之间的关系嘎明白,在做性能调优的时候是很重要的。
最后一个比较重要的最佳实践就是在数据格式上,这个肯定很多人都会忽略。但是在大数据里面非常重要,为什么?因为数据很大,数据量非常大的时候,如果不注重数据格式就会导致这几个问题。比如可能性能会下降,然后你的空间反而浪费了很多,成倍的上升。
其实数据格式比较注意的项非常多。我们挑出两个比较重要的准则,第一这个数据格式要可分隔。可分隔支持的格式有这些,比较多的像Avro、Parquet Lzop+index、SequenceFile,不支持的就是XML、JSON文件。
然后可块压缩的,支持的就是Avro、Parquet、Lzop+index、SequenceFile,不支持的就是CSV、JSON记录。大家可以想一下,我们在大数据平台里面计算都是并行计算,它所有的数据都是分开来计算的,然后每一个分片对它进行计算,所以,第二个是可块压缩的。其实还有很多点,比如数据格式是不是支持眼镜的,像Avro就支持,就是数据格式的老版本和新版本还是可以兼容的。包括像SequenceFile,可伸缩,可压缩,但是它只在Hadoop这个生态系统,不像Avro和Parquet。我们7月28号在北京饭店有一个青云自己的用户大会,我们只负责服务,上面都是各个行业的精英讲他们自己技术的干货,产品的干货,我们是这样形式做的。
‘玖’ 如何创建一个大数据平台
所谓的大数据平台不是独立存在的,比如网络是依赖搜索引擎获得大数据并开展业务的,阿里是通过电子商务交易获得大数据并开展业务的,腾讯是通过社交获得大数据并开始业务的,所以说大数据平台不是独立存在的,重点是如何搜集和沉淀数据,如何分析数据并挖掘数据的价值。
我可能还不够资格回答这个问题,没有经历过一个公司大数据平台从无到有到复杂的过程。不过说说看法吧,也算是梳理一下想法找找喷。
这是个需求驱动的过程。
曾经听过spotify的分享,印象很深的是,他们分享说,他们的hadoop集群第一次故障是因为,机器放在靠窗的地方,太阳晒了当机了(笑)。从简单的没有机房放在自家窗前的集群到一直到现在复杂的数据平台,这是一个不断演进的过程。
对小公司来说,大概自己找一两台机器架个集群算算,也算是大数据平台了。在初创阶段,数据量会很小,不需要多大的规模。这时候组件选择也很随意,Hadoop一套,任务调度用脚本或者轻量的框架比如luigi之类的,数据分析可能hive还不如导入RMDB快。监控和部署也许都没时间整理,用脚本或者轻量的监控,大约是没有ganglia、nagios,puppet什么的。这个阶段也许算是技术积累,用传统手段还是真大数据平台都是两可的事情,但是为了今后的扩展性,这时候上Hadoop也许是不错的选择。
当进入高速发展期,也许扩容会跟不上计划,不少公司可能会迁移平台到云上,比如AWS阿里云什么的。小规模高速发展的平台,这种方式应该是经济实惠的,省了运维和管理的成本,扩容比较省心。要解决的是选择平台本身提供的服务,计算成本,打通数据出入的通道。整个数据平台本身如果走这条路,可能就已经基本成型了。走这条路的比较有名的应该是netflix。
也有一个阶段,你发现云服务的费用太高,虽然省了你很多事,但是花钱嗖嗖的。几个老板一合计,再玩下去下个月工资发布出来了。然后无奈之下公司开始往私有集群迁移。这时候你大概需要一群靠谱的运维,帮你监管机器,之前两三台机器登录上去看看状态换个磁盘什么的也许就不可能了,你面对的是成百上千台主机,有些关键服务必须保证稳定,有些是数据节点,磁盘三天两头损耗,网络可能被压得不堪重负。你需要一个靠谱的人设计网络布局,设计运维规范,架设监控,值班团队走起7*24小时随时准备出台。然后上面再有平台组真的大数据平台走起。
然后是选型,如果有技术实力,可以直接用社区的一整套,自己管起来,监控部署什么的自己走起。这个阶段部署监控和用户管理什么的都不可能像两三个节点那样人肉搞了,配置管理,部署管理都需要专门的平台和组件;定期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,一起互动其实是很提升公司影响力的实情。当然如果老板不理解,你就自求多福吧,招几个老司机,出了问题能马上带路才是正道。当然团队的技术积累不能不跟上,因为数据平台还是乱世,三天不跟进你就不知道世界是什么样了。任何一个新技术,都是坑啊坑啊修啊修啊才完善的。如果是关键业务换技术,那需要小心再小心,技术主管也要有足够的积累,能够驾驭,知道收益和风险。
‘拾’ 请结合实际应用论述云存储怎样面向应用以及在管理空间大数据方面的方法组网方
摘要 摘要:云存储将大量不同类型的存储设备通过软件集合起来协同工作,共同对外提供数据存储服务。以—种云存储典型应用——云备份为例,探讨云备份的软件架构,云存储的出现解决了即时存储和分享的难题,用户可以自己指定分享权限、对象,随时随地通过不同种类的终端获取信息,既高效又便捷。