您现在的位置是: 首页 > 网站建设 网站建设

数据平台_数据平台搭建

zmhk 2024-04-29 人已围观

简介数据平台_数据平台搭建       最近有些忙碌,今天终于有时间和大家聊一聊“数据平台”的话题。如果你对这个话题还比较陌生,那么这篇文章就是为你而写的,让我们一起来探索其中的奥秘吧。1.大数据技术平台有哪些?2.大数据平台有哪些架构3.有哪些好的数据来源或者大

数据平台_数据平台搭建

       最近有些忙碌,今天终于有时间和大家聊一聊“数据平台”的话题。如果你对这个话题还比较陌生,那么这篇文章就是为你而写的,让我们一起来探索其中的奥秘吧。

1.大数据技术平台有哪些?

2.大数据平台有哪些架构

3.有哪些好的数据来源或者大数据平台

4.什么是基础数据信息平台

数据平台_数据平台搭建

大数据技术平台有哪些?

       Java?:只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据。基础

       Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

       好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。

       Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

       记住学到这里可以作为你学大数据的一个节点。

       Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

       Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么程度,你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。

       Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。

       Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变得很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。

       Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。

       Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。

       Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰溜溜的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接收方(比如Kafka)的。

       Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。

大数据平台有哪些架构

       1.数据超市

       一款基于云平台的大数据计算、分析系统。拥有丰富高质量的数据资源,通过自身渠道资源获取了百余款拥有版权的大数据资源,所有数据都经过审核,保证数据的高可用性。

       2. Rapid Miner

       数据科学软件平台,为数据准备、机器学习、深度学习、文本挖掘和预测分析提供一种集成环境。

       3. Oracle Data Mining

       它是Oracle高级分析数据库的代表。市场领先的公司用它最大限度地发掘数据的潜力,做出准确的预测。

       4. IBM SPSS Modeler

       适合大规模项目。在这个建模器中,文本分析及其最先进的可视化界面极具价值。它有助于生成数据挖掘算法,基本上不需要编程。

       5. KNIME

       开源数据分析平台。你可以迅速在其中部署、扩展和熟悉数据。

       6. Python

       一种免费的开源语言。

       关于有哪些好用的大数据采集平台,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。

有哪些好的数据来源或者大数据平台

       01

       传统大数据架构

       之所以叫传统大数据架构,是因为其定位是为了解决传统BI的问题。

       优点:

       简单,易懂,对于BI系统来说,基本思想没有发生变化,变化的仅仅是技术选型,用大数据架构替换掉BI的组件。

       缺点:

       对于大数据来说,没有BI下完备的Cube架构,对业务支撑的灵活度不够,所以对于存在大量报表,或者复杂的钻取的场景,需要太多的手工定制化,同时该架构依旧以批处理为主,缺乏实时的支撑。

       适用场景:

       数据分析需求依旧以BI场景为主,但是因为数据量、性能等问题无法满足日常使用。

       02

       流式架构

       在传统大数据架构的基础上,直接拔掉了批处理,数据全程以流的形式处理,所以在数据接入端没有了ETL,转而替换为数据通道。

       优点:

       没有臃肿的ETL过程,数据的实效性非常高。

       缺点:

       流式架构不存在批处理,对于数据的重播和历史统计无法很好的支撑。对于离线分析仅仅支撑窗口之内的分析。

       适用场景:

       预警,监控,对数据有有效期要求的情况。

       03

       Lambda架构

       大多数架构基本都是Lambda架构或者基于其变种的架构。Lambda的数据通道分为两条分支:实时流和离线。

       优点:

       既有实时又有离线,对于数据分析场景涵盖的非常到位。

       缺点:

       离线层和实时流虽然面临的场景不相同,但是其内部处理的逻辑却是相同,因此有大量荣誉和重复的模块存在。

       适用场景:

       同时存在实时和离线需求的情况。

       04

       Kappa架构

       在Lambda 的基础上进行了优化,将实时和流部分进行了合并,将数据通道以消息队列进行替代。

       优点:

       解决了Lambda架构里面的冗余部分,以数据可重播的思想进行了设计,整个架构非常简洁。

       缺点:

       虽然Kappa架构看起来简洁,但实施难度相对较高,尤其是对于数据重播部分。

       适用场景:

       和Lambda类似,改架构是针对Lambda的优化。

       05

       Unifield架构

       以上的种种架构都围绕海量数据处理为主,Unifield架构则将机器学习和数据处理揉为一体,在流处理层新增了机器学习层。

       优点:

       提供了一套数据分析和机器学习结合的架构方案,解决了机器学习如何与数据平台进行结合的问题。

       缺点:

       实施复杂度更高,对于机器学习架构来说,从软件包到硬件部署都和数据分析平台有着非常大的差别,因此在实施过程中的难度系数更高。

       适用场景:

       有着大量数据需要分析,同时对机器学习方便又有着非常大的需求或者有规划。

       大数据时代各种技术日新月异,想要保持竞争力就必须得不断地学习。写这些文章的目的是希望能帮到一些人了解学习大数据相关知识 。加米谷大数据,大数据人才培养机构,喜欢的同学可关注下,每天花一点时间学习,长期积累总是会有收获的。

什么是基础数据信息平台

       推荐BIT超级数据分析平台,它整合了淘宝、京东、阿里云、鹰眼数据等外部数据应用,大大节省了数据收集的时间,而且操作简单,还有很多免费的行业模板可以使用。这是我在上面使用的一组模板,就是分析店铺会员的,你可以参考一下。

       一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。

       先大概列一下互联网行业数据仓库、数据平台的用途:

       整合公司所有业务数据,建立统一的数据中心;

       提供各种报表,有给高层的,有给各个业务的;

       为网站运营提供运营上的数据支持,就是通过数据,让运营及时了解网站和产品的运营效果;

       为各个业务提供线上或线下的数据支持,成为公司统一的数据交换与提供平台;

       分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;比如广告定向精准投放、用户个性化推荐等;

       开发数据产品,直接或间接为公司盈利;

       建设开放数据平台,开放公司数据;

       。。。。。。

       上面列出的内容看上去和传统行业数据仓库用途差不多,并且都要求数据仓库/数据平台有很好的稳定性、可靠性;但在互联网行业,除了数据量大之外,越来越多的业务要求时效性,甚至很多是要求实时的 ,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业务很快能融入数据仓库中来,老的下线的业务,能很方便的从现有的数据仓库中下线;

       其实,互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务;

       建设敏捷数据仓库,除了对架构技术上的要求之外,还有一个很重要的方面,就是数据建模,如果一上来就想着建立一套能兼容所有数据和业务的数据模型,那就又回到传统数据仓库的建设上了,很难满足对业务变化的快速响应。应对这种情况,一般是先将核心的持久化的业务进行深度建模(比如:基于网站日志建立的网站统计分析模型和用户浏览轨迹模型;基于公司核心用户数据建立的用户模型),其它的业务一般都采用维度+宽表的方式来建立数据模型。这块是后话。

       整体架构下面的图是我们目前使用的数据平台架构图,其实大多公司应该都差不多:

       请点击输入描述

       逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。可能叫法有所不同,本质上的角色都大同小异。

       我们从下往上看:

       数据采集数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。

       数据源的种类比较多:

       网站日志:

       作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,

       一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上;

       业务数据库:

       业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案(可参考文章 《异构数据源海量数据交换工具-Taobao DataX 下载和使用》),有资源的话,可以基于DataX之上做二次开发,就能非常好的解决,我们目前使用的DataHub也是。

       当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS。

       来自于Ftp/Http的数据源:

       有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求;

       其他数据源:

       比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成;

       数据存储与分析毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。

       离线数据分析与计算,也就是对实时性要求不高的部分,在我看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;

       当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群,关于Spark On Yarn的相关文章,可参考:《Spark On Yarn系列文章》

       实时计算部分,后面单独说。

       数据共享这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;

       前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据;?和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。

       另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。

       数据应用

       业务产品

       业务产品所使用的数据,已经存在于数据共享层,他们直接从数据共享层访问即可;

       报表

       同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;

       即席查询

       即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;

       这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。

       即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,目前我的解决方案是SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。

       当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。

       OLAP

       目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;

       这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;

       比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。

       其它数据接口

       这种接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。

       实时计算现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。

       我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。

       做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。

       任务调度与监控在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;

       这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始;?这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。

       前面有写过文章,《大数据平台中的任务调度与监控》,这里不再累赘。

       总结在我看来架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。目前在我们的数据平台中,开发更多的是关注业务,而不是技术,他们把业务和需求搞清楚了,基本上只需要做简单的SQL开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。

       请点击输入描述

       好了,今天关于“数据平台”的话题就到这里了。希望大家能够通过我的讲解对“数据平台”有更全面、深入的了解,并且能够在今后的生活中更好地运用所学知识。