
处理大量数据并发 *** 作可以采用如下几种方法:
1使用缓存:使用程序直接保存到内存中。或者使用缓存框架: 用一个特定的类型值来保存,以区别空数据和未缓存的两种状态。
2数据库优化:表结构优化;SQL语句优化,语法优化和处理逻辑优化;分区;分表;索引优化;使用存储过程代替直接 *** 作。
3分离活跃数据:可以分为活跃用户和不活跃用户。
4批量读取和延迟修改: 高并发情况可以将多个查询请求合并到一个。高并发且频繁修改的可以暂存缓存中。
5读写分离: 数据库服务器配置多个,配置主从数据库。写用主数据库,读用从数据库。
6分布式数据库: 将不同的表存放到不同的数据库中,然后再放到不同的服务器中。
7NoSql和Hadoop: NoSql,not only SQL。没有关系型数据库那么多限制,比较灵活高效。Hadoop,将一个表中的数据分层多块,保存到多个节点(分布式)。每一块数据都有多个节点保存(集群)。集群可以并行处理相同的数据,还可以保证数据的完整性。
:
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
参考资料:网页链接
你知道大数据Hadoop版本介绍,10版本和20对比有哪些缺点?Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,例如比较著名的有Cloudera公司的CDH版本。
为了方便学习,本书采用开源社区版,而Hadoop自诞生以来,主要分为Hadoop1、Hadoop2、Hadoop3三个系列的多个版本。由于目前市场上最主流的是Hadoop2x版本,因此,本书只针对Hadoop2x版本进行相关介绍。
Hadoop2x版本指的是第2代Hadoop,它是从Hadoop1x发展而来的,并且相对于Hadoop1x来说,有很多改进。下面我们从Hadoop1x到Hadoop2x发展的角度,对两版本进行讲解,如图1所示。
通过图1可以看出,Hadoop10内核主要由分布式存储系统HDFS和分布式计算框架MapReduce两个系统组成,而Hadoop2x版本主要新增了资源管理框架Yarn以及其他工作机制的改变。
在Hadoop1x版本中,HDFS与MapReduce结构如图2和3所示。
从图3可以看出MapReduce由一个JobTracker和多个TaskTracker组成,其中,MapReduce的主节点JobTracker只有一个,从节点TaskTracker有很多个,JobTracker与TaskTracker在MapReduce中的角色就像是项目经理与开发人员的关系,而JobTracker负责接收用户提交的计算任务、将计算任务分配给TaskTracker执行、跟踪,JobTracker同时监控TaskTracker的任务执行状况等。当然,TaskTracker只负责执行JobTracker分配的计算任务,正是由于这种机制,Hadoop1x架构中的HDFS和MapReduce存在以下缺陷:
(1)HDFS中的NameNode、SecondaryNode单点故障,风险是比较大的。其次,NameNode内存受限不好扩展,因为Hadoop1x版本中的HDFS只有一个NameNode,并且要管理所有的DataNode。
(2)MapReduce中的JobTracker职责过多,访问压力太大,会影响系统稳定。除此之外,MapReduce难以支持除自身以外的框架,扩展性较低的不足。
Hadoop2x版本为克服Hadoop1x中的不足,对其架构进行了以下改进:
(1)Hadoop2x可以同时启动多个NameNode,其中一个处于工作(Active)状态,另一个处于随时待命(Standby)状态,这种机制被称为Hadoop HA(Hadoop高可用),这样当一个NameNode所在的服务器宕机时,可以在数据不丢失的情况下,自动切换到另一个NameNode持续提供服务。
(2)Hadoop2x将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn,它是一个通用的资源管理框架,可以为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如Tez、Spark、Storm,这种设计不仅能够增强不同计算模型和各种应用之间的交互,使集群资源得到高效利用,而且能更好地与企业中已经存在的计算结构集成在一起。
(3)Hadoop2x中的MapReduce是运行在Yarn上的离线处理框架,它的运行环境不再由JobTracker和TaskTracker等服务组成,而是变成通用资源管理Yarn和作业控制进程ApplicationMaster,从而使MapReduce在速度上和可用性上都有很大的提高。
想学习大数据的小伙伴可以学习这套教程哦!
大数据教程Hadoop
一、Hadoop
Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。
Hadoop上的应用程序也可以使用其他语言编写,比如C。
二、HPCC
HPCC,HighPerformanceComputingand(高性能计算与通信)的缩写。
1993年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与通信”的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆比特网络技术,扩展研究和教育机构及网络连接能力。
该项目主要由五部分组成:
1、高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;
2、先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;
3、国家科研与教育网格(NREN),内容有中接站及10亿位级传输的研究与开发;
4、基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者-开始的,长期的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支持这些调查和研究活动;
5、信息基础结构技术和应用(IITA),目的在于保证美国在先进信息技术开发方面的领先地位。
三、Storm
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等等。
Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、ETL(Extraction--Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和 *** 作。
四、ApacheDrill
为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。ApacheDrill实现了Google‘sDremel
据Hadoop厂商MapR公司产品经理TomerShiran介绍,“Drill”已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。
该项目将会创建出开源版本的谷歌DremelHadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而“Drill”将有助于Hadoop用户实现更快查询海量数据集的目的。
“Drill”项目其实也是从谷歌的Dremel项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在AndroidMarket上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。
通过开发“Drill”Apache开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。
五、RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点:
免费提供数据挖掘技术和库
100%用Java代码(可运行在 *** 作系统)
数据挖掘过程简单,强大和直观
内部XML保证了标准化的格式来表示交换数据挖掘过程
可以用简单脚本语言自动进行大规模进程
多层次的数据视图,确保有效和透明的数据
图形用户界面的互动原型
命令行(批处理模式)自动大规模应用
JavaAPI(应用编程接口)
简单的插件和推广机制
强大的可视化引擎,许多尖端的高维数据的可视化建模
400多个数据挖掘运营商支持
耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。
六、PentahoBI
PentahoBI平台不同于传统的BI产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。
PentahoBI平台,PentahoOpenBI套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过J2EE、WebService、SOAP、>
PentahoSDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。
PentahoBI平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。
七、Splunk
Splunk的功能组件主要有Forwarder、SerchHead、Indexer三种,然后支持了查询搜索、仪表盘和报表(效果真不是吹的,很精致呀),另外还支持SaaS服务模式。其中,Splunk支持的数据源也是多种类型的,基本上还是可以满足客户的需求。
目前支持hadoop1x(MRv1)、Hadoop2x(MRv2)、Hadoop2x(Yarn)三个版本的Hadoop集群的日志数据源收集,在日志管理运维方面还是处于一个国际领先的地位,目前国内有部分的数据驱动型公司也正在采用Splunk的日志管理运维服务。
八、EverString
everstring主要是通过大数据的预测分析建模为企业提供业务和客户推荐的SaaS服务,获取和积累了两个数据信息资源库,一个行业外部的资源库(公有SaaS收费形式),一个行业自己内部的资源库(私有),然后再通过机器学习和人工智能的方法对数据进行相应行业或是领域的建模,最后得到一个比较不错的结果,优化于人工可以得到的结果,而且Everstring也成为了初创大数据公司里面估值很高的公司。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)