A. 大数据平台是什么什么时候需要大数据平台如何建立大数据平台

首先我们要了解java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

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

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

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

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

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

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

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

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

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

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

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

B. 大数据有哪些常用的平台

大数据平台:是指以处理海量数据存储、计算和不间断流数据实时计算等场景为主的一套基础设施。
典型的包括Hadoop系列、Spark、Storm、Flink以及Flume/Kafka等集群。

C. 什么是大数据平台

我们在搜索引擎中每一次搜索的记录、在电子商城中每一次的商品浏览和购买记录、每一次电子支付的数据...这些看似不相干的庞杂数据,汇总在一起,经过分析提炼,即可描绘出你这个人的行为习惯概况,对你未来可能采取的行为做出概率相当高的预测,这些数据我们可以把它统称为顾客大数据。
移动互联网兴起之时,大家都在抢占线上流量、线上数据,但中国互联网,你懂的,基本上庞大的消费顾客大数据都是掌握在BAT手上的,小互联网公司很难获取核心数据。但是随着线下消费升级的发展,越来越多的人开始看到线下顾客大数据的重要性了,毕竟,线下店铺才是顾客消费的主战场,而且流量也未被BAT这样的巨头企业瓜分完,可以算是充满商机的蓝海了。
蓝海归蓝海,但也存在一个问题,就是线下顾客大数据太庞大,太分散,除了星巴克麦当劳这种大企业有能力收集之外,一般店铺难以建立自己的大数据平台,更不用谈大数据的智能化处理了。
在这方面,目前就我所知,有家专门服务线下店铺市场的智慧店铺企业,名叫掌贝。这是家店铺Marketing Tech智能营销公司,它依托融合业务入口所沉淀的店铺大数据,帮助商户搭建自己的顾客大数据平台,实现自动化的精准营销,从而带动老客回流、新客引流。可谓是正好切中线下顾客大数据市场的要害啦,有兴趣的人可以去了解下。

D. mysql 将数据迁移到大数据平台分布式文件系统,用什么工具合适

在我看来,一个完整的大数据平台应该提供离线计算、即席查询、实时计算、实时查询这几个方面的功能。
hadoop、spark、storm 无论哪一个,单独不可能完成上面的所有功能。
hadoop+spark+hive是一个很不错的选择.hadoop的HDFS毋庸置疑是分布式文件系统的解决方案,解决存储问题;hadoop maprece、hive、spark application、sparkSQL解决的是离线计算和即席查询的问题;spark streaming解决的是实时计算问题;另外,还需要HBase或者Redis等NOSQL技术来解决实时查询的问题;
除了这些,大数据平台中必不可少的需要任务调度系统和数据交换工具;
任务调度系统解决所有大数据平台中的任务调度与监控;数据交换工具解决其他数据源与HDFS之间的数据传输,比如:数据库到HDFS、HDFS到数据库等等。

E. 在大数据处理环境下,哪一种分布式系统更合适,为什么

1)集中式数据处理 集中式计算机网络由一个大型的中央系统,其终端是客户机,数据全部存储在中央系统,由数据库管理系统进行管理,所有的处理都由该大型系统完成,终端只是用来输入和输出。终端自己不作任何处理,所有任务都在主机上进行处理。 集中式数据存储的主要特点是能把所有数据保存在一个地方,各地办公室的远程终端通过电缆同中央计算机(主机)相联,保证了每个终端使用的都是同一信息。备份数据容易,因为他们都存储在服务器上,而服务器是唯一需要备份的系统。这还意味这服务器是唯一需要安全保护的系统,终端没有任何数据。银行的自动提款机(ATM)采用的就是集中式计算机网络。另外所有的事务都在主机上进行处理,终端也不需要软驱,所以网络感染病毒的可能性很低。这种类型的网络总费用比较低,因为主机拥有大量存储空间、功能强大的系统,而使终端可以使用功能简单而便宜的微机和其他终端设备。 这类网络不利的一面是来自所有终端的计算都由主机完成,这类网络处理速度可能有些慢。另外,如果用户有各种不同的需要,在集中式计算机网络上满足这些需要可能是十分困难的,因为每个用户的应用程序和资源都必须单独设置,而让这些应用程序和资源都在同一台集中式计算机上操作,使得系统效率不高。还有,因为所有用户都必须连接到一台中央计算机,集中连接可能成为集中式网络的一个大问题。由于这些限制,如今的大多数网络都采用了分布式和协作式网络计算模型。 2)分布式数据处理 由于个人计算机的性能得到极大的提高及其使用的普及,使处理能力分布到网络上的所有计算机成为可能。分布式计算是和集中式计算相对立的概念,分布式计算的数据可以分布在很大区域。 分布式网络中,数据的存储和处理都是在本地工作站上进行的。数据输出可以打印,也可保存在软盘上。通过网络主要是得到更快、更便捷的数据访问。因为每台计算机都能够存储和处理数据,所以不要求服务器功能十分强大,其价格也就不必过于昂贵。这种类型的网络可以适应用户的各种需要,同时允许他们共享网络的数据、资源和服务。在分布式网络中使用的计算机既能够作为独立的系统使用,也可以把它们连接在一起得到更强的网络功能。 分布式计算的优点是可以快速访问、多用户使用。每台计算机可以访问系统内其他计算机的信息文件;系统设计上具有更大的灵活性,既可为独立的计算机的地区用户的特殊需求服务,也可为联网的企业需求服务,实现系统内不同计算机之间的通信;每台计算机都可以拥有和保持所需要的最大数据和文件;减少了数据传输的成本和风险。为分散地区和中心办公室双方提供更迅速的信息通信和处理方式,为每个分散的数据库提供作用域,数据存储于许多存储单元中,但任何用户都可以进行全局访问,使故障的不利影响最小化,以较低的成本来满足企业的特定要求。 分布式计算的缺点是:对病毒比较敏感,任何用户都可能引入被病毒感染的文件,并将病毒扩散到整个网络。备份困难,如果用户将数据存储在各自的系统上,而不是将他们存储在中央系统中,难于制定一项有效的备份计划。这种情况还可能导致用户使用同一文件的不同版本。为了运行程序要求性能更好的PC机;要求使用适当的程序;不同计算机的文件数据需要复制;对某些PC机要求有足够的存储容量,形成不必要的存储成本;管理和维护比较复杂;设备必须要互相兼容。 3)协作式数据处理 协作式数据处理系统内的计算机能够联合处理数据,处理既可集中实施,也可分区实施。协作式计算允许各个客户计算机合作处理一项共同的任务,采用这种方法,任务完成的速度要快于仅在一个客户计算机运行。协作式计算允许计算机在整个网络内共享处理能力,可以使用其它计算机上的处理能力完成任务。除了具有在多个计算机系统上处理任务的能力,该类型的网络在共享资源方面类似于分布式计算。 协作式计算和分布式计算具有相似的优缺点。例如协作式网络上可以容纳各种不同的客户,协作式计算的优点是处理能力强,允许多用户使用。缺点是病毒可迅速扩散到整个网络。因为数据能够在整个网络内存储,形成多个副本,文件同步困难。并且也使得备份所有的重要数据比较困难。

F. 如何打造高性能大数据分析平台

大数据分析系统作为一个关键性的系统在各个公司迅速崛起。但是这种海量规模的数据带来了前所未有的性能挑战。同时,如果大数据分析系统无法在第一时间为运营决策提供关键数据,那么这样的大数据分析系统一文不值。本文将从技术无关的角度讨论一些提高性能的方法。下面我们将讨论一些能够应用在大数据分析系统不同阶段的技巧和准则(例如数据提取,数据清洗,处理,存储,以及介绍)。本文应作为一个通用准则,以确保最终的大数据分析平台能满足性能要求。

1. 大数据是什么?

大数据是最近IT界最常用的术语之一。然而对大数据的定义也不尽相同,所有已知的论点例如结构化的和非结构化、大规模的数据等等都不够完整。大数据系统通常被认为具有数据的五个主要特征,通常称为数据的5 Vs。分别是大规模,多样性,高效性、准确性和价值性。
互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提供最详细的报价,如果真的想做,可以来这里,这个手技的开始数字是一八七中间的是三儿零最后的是一四二五零,按照顺序组合起来就可以找到,想说的是,除非想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了。

据Gartner称,大规模可以被定义为“在本(地)机数据采集和处理技术能力不足以为用户带来商业价值。当现有的技术能够针对性的进行改造后来处理这种规模的数据就可以说是一个成功的大数据解决方案。

这种大规模的数据没将不仅仅是来自于现有的数据源,同时也会来自于一些新兴的数据源,例如常规(手持、工业)设备,日志,汽车等,当然包括结构化的和非结构化的数据。

据Gartner称,多样性可以定义如下:“高度变异的信息资产,在生产和消费时不进行严格定义的包括多种形式、类型和结构的组合。同时还包括以前的历史数据,由于技术的变革历史数据同样也成为多样性数据之一 “。

高效性可以被定义为来自不同源的数据到达的速度。从各种设备,传感器和其他有组织和无组织的数据流都在不断进入IT系统。由此,实时分析和对于该数据的解释(展示)的能力也应该随之增加。

根据Gartner,高效性可以被定义如下:“高速的数据流I/O(生产和消费),但主要聚焦在一个数据集内或多个数据集之间的数据生产的速率可变上”。

准确性,或真实性或叫做精度是数据的另一个重要组成方面。要做出正确的商业决策,当务之急是在数据上进行的所有分析必须是正确和准确(精确)的。

大数据系统可以提供巨大的商业价值。像电信,金融,电子商务,社交媒体等,已经认识到他们的数据是一个潜在的巨大的商机。他们可以预测用户行为,并推荐相关产品,提供危险交易预警服务,等等。

与其他IT系统一样,性能是大数据系统获得成功的关键。本文的中心主旨是要说明如何让大数据系统保证其性能。

2. 大数据系统应包含的功能模块

大数据系统应该包含的功能模块,首先是能够从多种数据源获取数据的功能,数据的预处理(例如,清洗,验证等),存储数据,数据处理、数据分析等(例如做预测分析??,生成在线使用建议等等),最后呈现和可视化的总结、汇总结果。

下图描述了大数据系统的这些高层次的组件

描述本节的其余部分简要说明了每个组分,如图1。

2.1 各种各样的数据源当今的IT生态系统,需要对各种不同种类来源的数据进行分析。这些来源可能是从在线Web应用程序,批量上传或feed,流媒体直播数据,来自工业、手持、家居传感的任何东西等等。

显然从不同数据源获取的数据具有不同的格式、使用不同的协议。例如,在线的Web应用程序可能会使用SOAP / XML格式通过HTTP发送数据,feed可能会来自于CSV文件,其他设备则可能使用MQTT通信协议。

由于这些单独的系统的性能是不在大数据系统的控制范围之内,并且通常这些系统都是外部应用程序,由第三方供应商或团队提供并维护,所以本文将不会在深入到这些系统的性能分析中去。

2.2 数据采集第一步,获取数据。这个过程包括分析,验证,清洗,转换,去重,然后存到适合你们公司的一个持久化设备中(硬盘、存储、云等)。

在下面的章节中,本文将重点介绍一些关于如何获取数据方面的非常重要的技巧。请注意,本文将不讨论各种数据采集技术的优缺点。

2.3 存储数据第二步,一旦数据进入大数据系统,清洗,并转化为所需格式时,这些过程都将在数据存储到一个合适的持久化层中进行。

在下面的章节中,本文将介绍一些存储方面的最佳实践(包括逻辑上和物理上)。在本文结尾也会讨论一部分涉及数据安全方面的问题。

2.4 数据处理和分析第三步,在这一阶段中的一部分干净数据是去规范化的,包括对一些相关的数据集的数据进行一些排序,在规定的时间间隔内进行数据结果归集,执行机器学习算法,预测分析等。

在下面的章节中,本文将针对大数据系统性能优化介绍一些进行数据处理和分析的最佳实践。

2.5 数据的可视化和数据展示最后一个步骤,展示经过各个不同分析算法处理过的数据结果。该步骤包括从预先计算汇总的结果(或其他类似数据集)中的读取和用一种友好界面或者表格(图表等等)的形式展示出来。这样便于对于数据分析结果的理解。

3. 数据采集中的性能技巧

数据采集是各种来自不同数据源的数据进入大数据系统的第一步。这个步骤的性能将会直接决定在一个给定的时间段内大数据系统能够处理的数据量的能力。

数据采集??过程基于对该系统的个性化需求,但一些常用执行的步骤是 - 解析传入数据,做必要的验证,数据清晰,例如数据去重,转换格式,并将其存储到某种持久层。

涉及数据采集过程的逻辑步骤示如下图所示:

下面是一些性能方面的技巧:

来自不同数据源的传输应该是异步的。可以使用文件来传输、或者使用面向消息的(MoM)中间件来实现。由于数据异步传输,所以数据采集过程的吞吐量可以大大高于大数据系统的处理能力。 异步数据传输同样可以在大数据系统和不同的数据源之间进行解耦。大数据基础架构设计使得其很容易进行动态伸缩,数据采集的峰值流量对于大数据系统来说算是安全的。

如果数据是直接从一些外部数据库中抽取的,确保拉取数据是使用批量的方式。

如果数据是从feed file解析,请务必使用合适的解析器。例如,如果从一个XML文件中读取也有不同的解析器像JDOM,SAX,DOM等。类似地,对于CSV,JSON和其它这样的格式,多个解析器和API是可供选择。选择能够符合需求的性能最好的。

优先使用内置的验证解决方案。大多数解析/验证工作流程的通常运行在服务器环境(ESB /应用服务器)中。大部分的场景基本上都有现成的标准校验工具。在大多数的情况下,这些标准的现成的工具一般来说要比你自己开发的工具性能要好很多。

类似地,如果数据XML格式的,优先使用XML(XSD)用于验证。

即使解析器或者校等流程使用自定义的脚本来完成,例如使用java优先还是应该使用内置的函数库或者开发框架。在大多数的情况下通常会比你开发任何自定义代码快得多。

尽量提前滤掉无效数据,以便后续的处理流程都不用在无效数据上浪费过多的计算能力。

大多数系统处理无效数据的做法通常是存放在一个专门的表中,请在系统建设之初考虑这部分的数据库存储和其他额外的存储开销。

如果来自数据源的数据需要清洗,例如去掉一些不需要的信息,尽量保持所有数据源的抽取程序版本一致,确保一次处理的是一个大批量的数据,而不是一条记录一条记录的来处理。一般来说数据清洗需要进行表关联。数据清洗中需要用到的静态数据关联一次,并且一次处理一个很大的批量就能够大幅提高数据处理效率。

数据去重非常重要这个过程决定了主键的是由哪些字段构成。通常主键都是时间戳或者id等可以追加的类型。一般情况下,每条记录都可能根据主键进行索引来更新,所以最好能够让主键简单一些,以保证在更新的时候检索的性能。

来自多个源接收的数据可以是不同的格式。有时,需要进行数据移植,使接收到的数据从多种格式转化成一种或一组标准格式。

和解析过程一样,我们建议使用内置的工具,相比于你自己从零开发的工具性能会提高很多。

数据移植的过程一般是数据处理过程中最复杂、最紧急、消耗资源最多的一步。因此,确保在这一过程中尽可能多的使用并行计算。

一旦所有的数据采集的上述活动完成后,转换后的数据通常存储在某些持久层,以便以后分析处理,综述,聚合等使用。

多种技术解决方案的存在是为了处理这种持久(RDBMS,NoSQL的分布式文件系统,如Hadoop和等)。

谨慎选择一个能够最大限度的满足需求的解决方案。

4. 数据存储中的性能技巧

一旦所有的数据采集步骤完成后,数据将进入持久层。

在本节中将讨论一些与数据数据存储性能相关的技巧包括物理存储优化和逻辑存储结构(数据模型)。这些技巧适用于所有的数据处理过程,无论是一些解析函数生的或最终输出的数据还是预计算的汇总数据等。

首先选择数据范式。您对数据的建模方式对性能有直接的影响,例如像数据冗余,磁盘存储容量等方面。对于一些简单的文件导入数据库中的场景,你也许需要保持数据原始的格式,对于另外一些场景,如执行一些分析计算聚集等,你可能不需要将数据范式化。

大多数的大数据系统使用NoSQL数据库替代RDBMS处理数据。

不同的NoSQL数据库适用不同的场景,一部分在select时性能更好,有些是在插入或者更新性能更好。

数据库分为行存储和列存储。

具体的数据库选型依赖于你的具体需求(例如,你的应用程序的数据库读写比)。

同样每个数据库都会根据不同的配置从而控制这些数据库用于数据库复制备份或者严格保持数据一致性?这些设置会直接影响数据库性能。在数据库技术选型前一定要注意。

压缩率、缓冲池、超时的大小,和缓存的对于不同的NoSQL数据库来说配置都是不同的,同时对数据库性能的影响也是不一样的。

数据Sharding和分区是这些数据库的另一个非常重要的功能。数据Sharding的方式能够对系统的性能产生巨大的影响,所以在数据Sharding和分区时请谨慎选择。

并非所有的NoSQL数据库都内置了支持连接,排序,汇总,过滤器,索引等。

如果有需要还是建议使用内置的类似功能,因为自己开发的还是不灵。

NoSQLs内置了压缩、编解码器和数据移植工具。如果这些可以满足您的部分需求,那么优先选择使用这些内置的功能。这些工具可以执行各种各样的任务,如格式转换、压缩数据等,使用内置的工具不仅能够带来更好的性能还可以降低网络的使用率。

许多NoSQL数据库支持多种类型的文件系统。其中包括本地文件系统,分布式文件系统,甚至基于云的存储解决方案。

如果在交互式需求上有严格的要求,否则还是尽量尝试使用NoSQL本地(内置)文件系统(例如HBase 使用HDFS)。

这是因为,如果使用一些外部文件系统/格式,则需要对数据进行相应的编解码/数据移植。它将在整个读/写过程中增加原本不必要的冗余处理。

大数据系统的数据模型一般来说需要根据需求用例来综合设计。与此形成鲜明对比的是RDMBS数据建模技术基本都是设计成为一个通用的模型,用外键和表之间的关系用来描述数据实体与现实世界之间的交互。

在硬件一级,本地RAID模式也许不太适用。请考虑使用SAN存储。

5. 数据处理分析中的性能技巧

数据处理和分析是一个大数据系统的核心。像聚合,预测,聚集,和其它这样的逻辑操作都需要在这一步完成。

本节讨论一些数据处理性能方面的技巧。需要注意的是大数据系统架构有两个组成部分,实时数据流处理和批量数据处理。本节涵盖数据处理的各个方面。

在细节评估和数据格式和模型后选择适当的数据处理框架。

其中一些框架适用于批量数据处理,而另外一些适用于实时数据处理。

同样一些框架使用内存模式,另外一些是基于磁盘io处理模式。

有些框架擅长高度并行计算,这样能够大大提高数据效率。

基于内存的框架性能明显优于基于磁盘io的框架,但是同时成本也可想而知。

概括地说,当务之急是选择一个能够满足需求的框架。否则就有可能既无法满足功能需求也无法满足非功能需求,当然也包括性能需求。

一些这些框架将数据划分成较小的块。这些小数据块由各个作业独立处理。协调器管理所有这些独立的子作业?在数据分块是需要当心。

该数据快越小,就会产生越多的作业,这样就会增加系统初始化作业和清理作业的负担。

如果数据快太大,数据传输可能需要很长时间才能完成。这也可能导致资源利用不均衡,长时间在一台服务器上运行一个大作业,而其他服务器就会等待。

不要忘了查看一个任务的作业总数。在必要时调整这个参数。

最好实时监控数据块的传输。在本机机型io的效率会更高,这么做也会带来一个副作用就是需要将数据块的冗余参数提高(一般hadoop默认是3份)这样又会反作用使得系统性能下降。

此外,实时数据流需要与批量数据处理的结果进行合并。设计系统时尽量减少对其他作业的影响。

大多数情况下同一数据集需要经过多次计算。这种情况可能是由于数据抓取等初始步骤就有报错,或者某些业务流程发生变化,值得一提的是旧数据也是如此。设计系统时需要注意这个地方的容错。

这意味着你可能需要存储原始数据的时间较长,因此需要更多的存储。

数据结果输出后应该保存成用户期望看到的格式。例如,如果最终的结果是用户要求按照每周的时间序列汇总输出,那么你就要将结果以周为单位进行汇总保存。

为了达到这个目标,大数据系统的数据库建模就要在满足用例的前提下进行。例如,大数据系统经常会输出一些结构化的数据表,这样在展示输出上就有很大的优势。

更常见的是,这可能会这将会让用户感觉到性能问题。例如用户只需要上周的数据汇总结果,如果在数据规模较大的时候按照每周来汇总数据,这样就会大大降低数据处理能力。

一些框架提供了大数据查询懒评价功能。在数据没有在其他地方被使用时效果不错。

实时监控系统的性能,这样能够帮助你预估作业的完成时间。

6. 数据可视化和展示中的性能技巧

精心设计的高性能大数据系统通过对数据的深入分析,能够提供有价值战略指导。这就是可视化的用武之地。良好的可视化帮助用户获取数据的多维度透视视图。

需要注意的是传统的BI和报告工具,或用于构建自定义报表系统无法大规模扩展满足大数据系统的可视化需求。同时,许多COTS可视化工具现已上市。

本文将不会对这些个别工具如何进行调节,而是聚焦在一些通用的技术,帮助您能打造可视化层。

确保可视化层显示的数据都是从最后的汇总输出表中取得的数据。这些总结表可以根据时间短进行汇总,建议使用分类或者用例进行汇总。这么做可以避免直接从可视化层读取整个原始数据。

这不仅最大限度地减少数据传输,而且当用户在线查看在报告时还有助于避免性能卡顿问题。

重分利用大化可视化工具的缓存。缓存可以对可视化层的整体性能产生非常不错的影响。

物化视图是可以提高性能的另一个重要的技术。

大部分可视化工具允许通过增加线程数来提高请求响应的速度。如果资源足够、访问量较大那么这是提高系统性能的好办法。

尽量提前将数据进行预处理,如果一些数据必须在运行时计算请将运行时计算简化到最小。

可视化工具可以按照各种各样的展示方法对应不同的读取策略。其中一些是离线模式、提取模式或者在线连接模式。每种服务模式都是针对不同场景设计的。

同样,一些工具可以进行增量数据同步。这最大限度地减少了数据传输,并将整个可视化过程固化下来。

保持像图形,图表等使用最小的尺寸。

大多数可视化框架和工具的使用可缩放矢量图形(SVG)。使用SVG复杂的布局可能会产生严重的性能影响。

7. 数据安全以及对于性能的影响

像任何IT系统一样安全性要求也对大数据系统的性能有很大的影响。在本节中,我们讨论一下安全对大数据平台性能的影响。

- 首先确保所有的数据源都是经过认证的。即使所有的数据源都是安全的,并且没有针对安全方面的需求,那么你可以灵活设计一个安全模块来配置实现。

- 数据进过一次认证,那么就不要进行二次认证。如果实在需要进行二次认证,那么使用一些类似于token的技术保存下来以便后续继续使用。这将节省数据一遍遍认证的开销。

- 您可能需要支持其他的认证方式,例如基于PKI解决方案或Kerberos。每一个都有不同的性能指标,在最终方案确定前需要将其考虑进去。

- 通常情况下数据压缩后进入大数据处理系统。这么做好处非常明显不细说。

- 针对不同算法的效率、对cpu的使用量你需要进行比较来选出一个传输量、cpu使用量等方面均衡的压缩算法。

- 同样,评估加密逻辑和算法,然后再选择。

- 明智的做法是敏感信息始终进行限制。

- 在审计跟踪表或登录时您可能需要维护记录或类似的访问,更新等不同的活动记录。这可能需要根据不同的监管策略和用户需求个性化的进行设计和修改。

- 注意,这种需求不仅增加了数据处理的复杂度,但会增加存储成本。

- 尽量使用下层提供的安全技术,例如操作系统、数据库等。这些安全解决方案会比你自己设计开发性能要好很多。

8. 总结

本文介绍了各种性能方面的技巧,这些技术性的知道可以作为打造大数据分析平台的一般准则。大数据分析平台非常复杂,为了满足这种类型系统的性能需求,需要我们从开始建设的时候进行考量。

本文介绍的技术准则可以用在大数据平台建设的各个不同阶段,包括安全如何影响大数据分析平台的性能。

G. 如何搭建基于Hadoop的大数据平台

Hadoop: 一个开源的分布式存储、分布式计算平台.(基于Apache)

Hadoop的组成:
HDFS:分布式文件系统,存储海量的数据。
MapRece:并行处理框架,实现任务分解和调度。
Hadoop的用处:
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
比如搜索引擎、网页的数据处理,各种商业智能、风险评估、预警,还有一些日志的分析、数据挖掘的任务。
Hadoop优势:高扩展、低成本、成熟的生态圈(Hadoop Ecosystem Map)

Hadoop开源工具:
Hive:将SQL语句转换成一个hadoop任务去执行,降低了使用Hadoop的门槛。
HBase:存储结构化数据的分布式数据库,habase提供数据的随机读写和实时访问,实现 对表数据的读写功能。
zookeeper:就像动物管理员一样,监控hadoop集群里面每个节点的状态,管理整个集群 的配置,维护节点针之间数据的一次性等等。
hadoop的版本尽量选稳定版本,即较老版本。
===============================================
Hadoop的安装与配置:
1)在Linux中安装JDK,并设置环境变量
安装jdk: >> sudo apt-get install openjdk-7-jdk
设置环境变量:
>> vim /etc/profile

>> :wq
2)下载Hadoop,并设置Hadoop环境变量
下载hadoop解压缩:
>> cd /opt/hadoop-1.2.1/
>> ls
>> vim /etc/profile

>>:wq

3)修改4个配置文件
(a)修改hadoop-env.sh,设置JAVA_HOME
(b)修改core-site.xml,设置hadoop.tmp.dir, dfs.name.dir, fs.default.name
(c)修改mapred-site.xml, 设置mapred.job.tracker
(d)修改hdfs-site.xml,设置dfs.data.dir
>> cd conf
>> ls

>> vim mapred-site.xml

>> :wq
>> vim core-site.xml
第一部分

第二部分

>> :wq
>> vim hdfs-site.xml

>> :wq
>> vim hadoop-env.sh

>> :wq
# hadoop格式化
>> hadoop namenode -format
# hadoop启动
>> start-all.sh
# 通过jps命令查看当前运行进程
>> jps
看见以下进程即说明hadoop安装成功

H. 大数据集群

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
魔方(大数据模型平台)
大数据模型平台是一款基于服务总线与分布式云计算两大技术架构的一款数据分析、挖掘的工具平台,其采用分布式文件系统对数据进行存储,支持海量数据的处理。采用多种的数据采集技术,支持结构化数据及非结构化数据的采集。通过图形化的模型搭建工具,支持流程化的模型配置。通过第三方插件技术,很容易将其他工具及服务集成到平台中去。数据分析研判平台就是海量信息的采集,数据模型的搭建,数据的挖掘、分析最后形成知识服务于实战、服务于决策的过程,平台主要包括数据采集部分,模型配置部分,模型执行部分及成果展示部分等。
大数据平台数据抽取工具
大数据平台数据抽取工具实现db到hdfs数据导入功能,借助Hadoop提供高效的集群分布式并行处理能力,可以采用数据库分区、按字段分区、分页方式并行批处理抽取db数据到hdfs文件系统中,能有效解决大数据传统抽取导致的作业负载过大抽取时间过长的问题,为大数据仓库提供传输管道。数据处理服务器为每个作业分配独立的作业任务处理工作线程和任务执行队列,作业之间互不干扰灵活的作业任务处理模式:可以增量方式执行作业任务,可配置的任务处理时间策略,根据不同需求定制。采用异步事件驱动模式来管理和分发作业指令、采集作业状态数据。通过管理监控端,可以实时监控作业在各个数据处理节点作业任务的实时运行状态,查看作业的历史执行状态,方便地实现提交新的作业、重新执行作业、停止正在执行的作业等操作。
互联网数据采集工具
网络信息雷达是一款网络信息定向采集产品,它能够对用户设置的网站进行数据采集和更新,实现灵活的网络数据采集目标,为互联网数据分析提供基础。
未至·云(互联网推送服务平台)
云计算数据中心以先进的中文数据处理和海量数据支撑为技术基础,并在各个环节辅以人工服务,使得数据中心能够安全、高效运行。根据云计算数据中心的不同环节,我们专门配备了系统管理和维护人员、数据加工和编撰人员、数据采集维护人员、平台系统管理员、机构管理员、舆情监测和分析人员等,满足各个环节的需要。面向用户我们提供面向政府和面向企业的解决方案。
显微镜(大数据文本挖掘工具)
文本挖掘是指从文本数据中抽取有价值的信息和知识的计算机处理技术, 包括文本分类、文本聚类、信息抽取、实体识别、关键词标引、摘要等。基于Hadoop MapRece的文本挖掘软件能够实现海量文本的挖掘分析。CKM的一个重要应用领域为智能比对, 在专利新颖性评价、科技查新、文档查重、版权保护、稿件溯源等领域都有着广泛的应用。
数据立方(可视化关系挖掘)
大数据可视化关系挖掘的展现方式包括关系图、时间轴、分析图表、列表等多种表达方式,为使用者提供全方位的信息展现方式。

I. 大数据分析系统平台方案有哪些

目前常用的大数据解决方案包括以下几类
一、Hadoop。Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
二、HPCC。HPCC,High Performance Computing and Communications(高性能计算与通信)的缩写。HPCC主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆 比特网络技术,扩展研究和教育机构及网络连接能力。

三、Storm。Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。 Storm支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来
四、Apache Drill。为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在Android Market上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。

J. 如何实现企业数据 大数据平台 分布式存放

Hadoop在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台。本文主要介绍一种基于Hadoop平台的多维分析和数据挖掘平台架构。作为一家互联网数据分析公司,我们在海量数据的分析领域那真是被“逼上梁山”。多年来在严苛的业务需求和数据压力下,我们几乎尝试了所有可能的大数据分析方法,最终落地于Hadoop平台之上。
1. 大数据分析大分类
Hadoop平台对业务的针对性较强,为了让你明确它是否符合你的业务,现粗略地从几个角度将大数据分析的业务需求分类,针对不同的具体需求,应采用不同的数据分析架构。
按照数据分析的实时性,分为实时数据分析和离线数据分析两种。
实时数据分析一般用于金融、移动和互联网B2C等产品,往往要求在数秒内返回上亿行数据的分析,从而达到不影响用户体验的目的。要满足这样的需求,可以采用精心设计的传统关系型数据库组成并行处理集群,或者采用一些内存计算平台,或者采用HDD的架构,这些无疑都需要比较高的软硬件成本。目前比较新的海量数据实时分析工具有EMC的Greenplum、SAP的HANA等。
对于大多数反馈时间要求不是那么严苛的应用,比如离线统计分析、机器学习、搜索引擎的反向索引计算、推荐引擎的计算等,应采用离线分析的方式,通过数据采集工具将日志数据导入专用的分析平台。但面对海量数据,传统的ETL工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook开源的Scribe、LinkedIn开源的Kafka、淘宝开源的Timetunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求,并将这些数据上载到Hadoop中央系统上。
按照大数据的数据量,分为内存级别、BI级别、海量级别三种。
这里的内存级别指的是数据量不超过集群的内存最大值。不要小看今天内存的容量,Facebook缓存在内存的Memcached中的数据高达320TB,而目前的PC服务器,内存也可以超过百GB。因此可以采用一些内存数据库,将热点数据常驻内存之中,从而取得非常快速的分析能力,非常适合实时分析业务。图1是一种实际可行的MongoDB分析架构。

图1 用于实时分析的MongoDB架构
MongoDB大集群目前存在一些稳定性问题,会发生周期性的写堵塞和主从同步失效,但仍不失为一种潜力十足的可以用于高速数据分析的NoSQL。
此外,目前大多数服务厂商都已经推出了带4GB以上SSD的解决方案,利用内存+SSD,也可以轻易达到内存分析的性能。随着SSD的发展,内存数据分析必然能得到更加广泛的应用。
BI级别指的是那些对于内存来说太大的数据量,但一般可以将其放入传统的BI产品和专门设计的BI数据库之中进行分析。目前主流的BI产品都有支持TB级以上的数据分析方案。种类繁多,就不具体列举了。
海量级别指的是对于数据库和BI产品已经完全失效或者成本过高的数据量。海量数据级别的优秀企业级产品也有很多,但基于软硬件的成本原因,目前大多数互联网企业采用Hadoop的HDFS分布式文件系统来存储数据,并使用MapRece进行分析。本文稍后将主要介绍Hadoop上基于MapRece的一个多维数据分析平台。
数据分析的算法复杂度
根据不同的业务需求,数据分析的算法也差异巨大,而数据分析的算法复杂度和架构是紧密关联的。举个例子,Redis是一个性能非常高的内存Key-Value NoSQL,它支持List和Set、SortedSet等简单集合,如果你的数据分析需求简单地通过排序,链表就可以解决,同时总的数据量不大于内存(准确地说是内存加上虚拟内存再除以2),那么无疑使用Redis会达到非常惊人的分析性能。
还有很多易并行问题(Embarrassingly Parallel),计算可以分解成完全独立的部分,或者很简单地就能改造出分布式算法,比如大规模脸部识别、图形渲染等,这样的问题自然是使用并行处理集群比较适合。
而大多数统计分析,机器学习问题可以用MapRece算法改写。MapRece目前最擅长的计算领域有流量统计、推荐引擎、趋势分析、用户行为分析、数据挖掘分类器、分布式索引等。
2. 面对大数据OLAP大一些问题

OLAP分析需要进行大量的数据分组和表间关联,而这些显然不是NoSQL和传统数据库的强项,往往必须使用特定的针对BI优化的数据库。比如绝大多数针对BI优化的数据库采用了列存储或混合存储、压缩、延迟加载、对存储数据块的预统计、分片索引等技术。

Hadoop平台上的OLAP分析,同样存在这个问题,Facebook针对Hive开发的RCFile数据格式,就是采用了上述的一些优化技术,从而达到了较好的数据分析性能。如图2所示。
然而,对于Hadoop平台来说,单单通过使用Hive模仿出SQL,对于数据分析来说远远不够,首先Hive虽然将HiveQL翻译MapRece的时候进行了优化,但依然效率低下。多维分析时依然要做事实表和维度表的关联,维度一多性能必然大幅下降。其次,RCFile的行列混合存储模式,事实上限制死了数据格式,也就是说数据格式是针对特定分析预先设计好的,一旦分析的业务模型有所改动,海量数据转换格式的代价是极其巨大的。最后,HiveQL对OLAP业务分析人员依然是非常不友善的,维度和度量才是直接针对业务人员的分析语言。
而且目前OLAP存在的最大问题是:业务灵活多变,必然导致业务模型随之经常发生变化,而业务维度和度量一旦发生变化,技术人员需要把整个Cube(多维立方体)重新定义并重新生成,业务人员只能在此Cube上进行多维分析,这样就限制了业务人员快速改变问题分析的角度,从而使所谓的BI系统成为死板的日常报表系统。
使用Hadoop进行多维分析,首先能解决上述维度难以改变的问题,利用Hadoop中数据非结构化的特征,采集来的数据本身就是包含大量冗余信息的。同时也可以将大量冗余的维度信息整合到事实表中,这样可以在冗余维度下灵活地改变问题分析的角度。其次利用Hadoop MapRece强大的并行化处理能力,无论OLAP分析中的维度增加多少,开销并不显著增长。换言之,Hadoop可以支持一个巨大无比的Cube,包含了无数你想到或者想不到的维度,而且每次多维分析,都可以支持成千上百个维度,并不会显著影响分析的性能。


而且目前OLAP存在的最大问题是:业务灵活多变,必然导致业务模型随之经常发生变化,而业务维度和度量一旦发生变化,技术人员需要把整个Cube(多维立方体)重新定义并重新生成,业务人员只能在此Cube上进行多维分析,这样就限制了业务人员快速改变问题分析的角度,从而使所谓的BI系统成为死板的日常报表系统。
3. 一种Hadoop多维分析平台的架构
整个架构由四大部分组成:数据采集模块、数据冗余模块、维度定义模块、并行分 析模块。

数据采集模块采用了Cloudera的Flume,将海量的小日志文件进行高速传输和合并,并能够确保数据的传输安全性。单个collector宕机之后,数据也不会丢失,并能将agent数据自动转移到其他的colllecter处理,不会影响整个采集系统的运行。如图5所示。

数据冗余模块不是必须的,但如果日志数据中没有足够的维度信息,或者需要比较频繁地增加维度,则需要定义数据冗余模块。通过冗余维度定义器定义需要冗余的维度信息和来源(数据库、文件、内存等),并指定扩展方式,将信息写入数据日志中。在海量数据下,数据冗余模块往往成为整个系统的瓶颈,建议使用一些比较快的内存NoSQL来冗余原始数据,并采用尽可能多的节点进行并行冗余;或者也完全可以在Hadoop中执行批量Map,进行数据格式的转化。

维度定义模块是面向业务用户的前端模块,用户通过可视化的定义器从数据日志中定义维度和度量,并能自动生成一种多维分析语言,同时可以使用可视化的分析器通过GUI执行刚刚定义好的多维分析命令。
并行分析模块接受用户提交的多维分析命令,并将通过核心模块将该命令解析为Map-Rece,提交给Hadoop集群之后,生成报表供报表中心展示。
核心模块是将多维分析语言转化为MapRece的解析器,读取用户定义的维度和度量,将用户的多维分析命令翻译成MapRece程序。核心模块的具体逻辑如图6所示。

图6中根据JobConf参数进行Map和Rece类的拼装并不复杂,难点是很多实际问题很难通过一个MapRece Job解决,必须通过多个MapRece Job组成工作流(WorkFlow),这里是最需要根据业务进行定制的部分。图7是一个简单的MapRece工作流的例子。

MapRece的输出一般是统计分析的结果,数据量相较于输入的海量数据会小很多,这样就可以导入传统的数据报表产品中进行展现。