1、大数据平台目前业界也没有统一的定义,但一般情况下,使用了Hadoop、Spark、Storm、Flink等这些分布式的实时或者离线计算框架,建立计算集群,并在上面运行各种计算任务,这就是通常理解上的大数据平台。
2、至于一家企业什么时候需要大数据平台,这取决于这么几方面:
业务需求:业务需求引导是必须的,不能光为了建平台而建平台,建立平台的最终目的是为了服务业务,让业务发展的更好。企业内大数据平台一般是信息管理部门、IT部门承建并承接一些数据需求,业务部门其实不关心你是不是用大数据平台还是用Oracle数据库计算出来的,那么这怎么评估呢?其实主要还是数据量,比如业务部门是不是偶尔会提“去年全年的XX怎么样?”、“去年全年的销售按照渠道、产品类别几个维度进行细分”、“需要用户行为数据、订单数据结合来做用户画像”、“需要给用户打标签”、“设备传感器的数据都有了,需要做实时的故障预测”等等,在承接各种业务需求的时候,是不是偶尔会出现任务运行很久的情况?会不会出现有些需求根本难以实现,因为计算量太大的问题?这就说明,业务上已经有大数据的诉求了,技术上并没有满足。
说到业务需求,企业内的信息管理部门也要注意,自己不能光承担需求,更重要的是要深入业务,理解业务,本部门对技术了解,如果对业务也多了解一下,就能够利用技术优势做到“想业务部门所未想”,实现比业务部门能提出更好的需求,并且能用大数据技术实现这个需求,这时候,信息管理部门的价值就更突出了,在企业内就再也不是一个承接需求或者背锅的部门了。
数据量与计算量:涉及到数据量的评估,也包括2方面:
现有的情况:现在有多少数据?都存储在哪里?业务部门提的各种指标需求,每天需要多长时间计算完成?每天什么时候完成昨天经营情况的数据更新?
增长的情况:每天、每周、每个月的数据增量有多少?按照这个增速,现有的配置还能满足多长时间的需求?
以上2个方面需要综合评估,现有数据量较多或者增长较快,那就需要做大数据平台的打算了。
先进性:本企业在技术上的布局是否需要一定前瞻性?需要早在数据量不太大的时候就进行技术探索?亦或是未来会上马新项目,新项目会产生大量数据。
公有云与私有云的选择:如果企业对公有云比较接受,其实可以考虑直接数据上公有云,公有云在国内主要就是阿里云、腾讯云、百度云等,其中阿里云的技术最为成熟,此外还有亚马逊的AWS等,但这里说的是搭建自己的大数据平台,就不深入展开了。
3、如何搭建大数据平台
建设一个大数据平台不是一朝一夕能完成的,不是下载安装几个开源组件那么简单。
涉及到:
技术层面:如何进行系统架构设计?集群资源如何评估?需要哪些组件?Hadoop、Spark、Tez、Storm、Flink,这些组件有什么区别?它们之间如何有机的组合起来?
团队层面:现有的技术团队配比如何?有没有人力搭建并且运维这个平台?有没有能力运营好这个平台?
对于非常重视主营业务的传统企业,信息技术部门的团队规模一般比较有限,建设一个大数据平台的成本是很高的,这个成本不仅是经济成本,还包括人才投入的成本、时间消耗的成本等等,如何能快速满足企业的大数据平台需求。这时候就可以考虑直接采购商用的大数据平台。
商用的大数据平台,市场上也有很多可以选择,比如星环、华为,此外还有袋鼠云数栈。
数栈的目标是通过产品化的方式,帮助企业构建数据共享能力中心。数栈不仅仅是一个大数据平台,同时附加各类数据处理工具,包括:
开发套件:一站式大数据开发平台,帮助企业快速完全数据中台搭建
数据质量: 对过程数据和结果数据进行质量校验,帮助企业及时发现数据质量问题
数据地图: 可视化的数据资产中心,帮助企业全盘掌控数据资产情况和数据的来源去向
数据模型: 使企业数据标准化,模型化,帮助企业实现数据管理规范化
数据API: 快速生成数据API、统一管理API服务,帮助企业提高数据开放效率
主要特点有:
1.一站式。一站式数据开发产品体系,满足企业建设数据中台过程中的多样复杂需求。
2.兼容性强。支持对接多种计算引擎,兼容离线&实时任务开发。
3.开箱即用。基于Web的图形化操作界面,开箱即用,快速上手。
4.性价比高。满足中小企业数据中台建设需求,降低企业投入成本。
有了数栈,企业搭建数据平台就不再是什么问题,核心需求也就会从搭建数据平台转为满足更多的业务诉求,实现真正的企业数据共享能力中心
首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
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的。
大数据平台:
是指以处理海量数据存储、计算及不间断流数据实时计算等场景为主的一套基础设施。典型的包括Hadoop系列、Spark、Storm、Flink以及Flume/Kafka等集群。
大数据平台是为了满足企业对于数据的各种要求而产生的。
搭建大数据平台的一般性步骤:
1、Linux系统安装
2、分布式计算平台/组件安装
当前分布式系统的大多使用的是Hadoop系列开源系统
3、数据导入
数据导入的工具是Sqoop
4、数据分析
数据预处理这个过程可能会用到Hive SQL,Spark QL和Impala。
数据建模分析最好用的是Spark。网页链接
大数据平bai台:
是指以处理海量数据存储、计算及du不间断流数据实时计算等场景为主zhi的一套基础设施。典型的包dao括Hadoop系列、Spark、Storm、Flink以及Flume/Kafka等集群。
大数据平台是为了满足企业对于数据的各种要求而产生的。
搭建大数据平台的一般性步骤:
1、Linux系统安装
2、分布式计算平台/组件安装
当前分布式系统的大多使用的是Hadoop系列开源系统
3、数据导入
数据导入的工具是Sqoop
4、数据分析
数据预处理这个过程可能会用到Hive SQL,Spark QL和Impala。
数据建模分析最好用的是Spark
10_spark体系之分布式计算课程_Spark WordC
1、大数据平台目前业界也没有统一的定义,但一般情况下,使用了Hadoop、Spark、Storm、Flink等这些分布式的实时或者离线计算框架,建立计算集群,并在上面运行各种计算任务,这就是通常理解上的大数据平台。