1. Java工程师转大数据难度高吗
Java程序员转大数据工程师有很好的基础条件
对于Java程序员,大数据的主流平台hadoop是基于Java开发的,所以Java程序员往大数据开发方向转行从语言环境上更为顺畅,另外很多基于大数据的应用框架也是Java的,所以在很多大数据项目里Java语言的确是可以派上用场的。所以,Java程序员转大数据工程师是具备很好的基础条件的。 当然,hadoop核心价值在于提供了分布式文件系统和分布式计算引擎,对于大部分公司而言,并不需要对这个引擎进行修改。这时候除了熟悉编程,你通常还需要学习数据处理和数据挖掘的一些知识。尤其是往数据挖掘工程师方向发展,则你需要掌握更多的工具和知识。
Java程序员转大数据职位的学习路线图:
第一步:分布式计算框架
掌握hadoop和spark分布式计算框架,了解文件系统、消息队列和Nosql数据库,学习相关组件如hadoop、MR、spark、hive、hbase、redies、kafka等;
第二步:算法和工具
学习了解各种数据挖掘算法,如分类、聚类、关联规则、回归、决策树、神经网络等,熟练掌握一门数据挖掘编程工具:Python或者Scala。目前主流平台和框架已经提供了算法库,如hadoop上的Mahout和spark上的Mllib,你也可以从学习这些接口和脚本语言开始学习这些算法。
第三步:数学
补充数学知识:高数、概率论和线代
第四步:项目实践
1)开源项目:tensorflow:Google的开源库,已经有40000多个star,非常惊人,支持移动设备;
2)参加数据竞赛:Kaggle和国内天池数据竞赛
3)通过企业实习获取项目经验
如果你仅仅是做大数据开发和运维,则可以跳过第二步和第三步,如果你是侧重于应用已有算法进行数据挖掘,那么第三步也可以先跳过。
总结:
Java工程师可以更容易理解hadoop的框架和生态,很多大数据saas级产品也是Java开发的,因此Java基础是转行大数据的一个很好的起点。但大数据是一个更为宽广的领域,具有跨界知识和能力的人才会更受企业青睐。随着人工智能时代的到来,大数据将迎来黄金发展的10年,如果你已经做好准备,那么就立即开始行动吧!
2. 发现公司里的大数据开发挣得很多,想转行,
转行这个词汇,一直是职场上此起彼伏的一个热门话题,相信很多朋友都想过或已经经历过转行。工作可谓是我们生存乃至生活的主要收入来源,谁都希望拥有一份高薪又稳定的工作,以此来改善自己的生活和实现自己的大大小小的梦想!但又担心转行后的工作待遇达不到自己的预期,顾虑重重……
不少想进入大数据分析行业的零基础学员经常会有这样一些疑问:大数据分析零基础应该怎么学习?自己适合学习大数据分析吗?人生,就是在不断地做选择,然后在这个选择过程中成长,让自己从一棵小树苗变成参天大树。就是我们每个对大数据充满幻想终于下定决心行动的学员的选择,我们给了自己4个月的时间,想要在大数据分析这个领域汲取养分,让自己壮大成长。
【明确方向】
通过国家的战略规划,看到BAT的大牛们都在大数据行业布局,新闻媒体追捧这大数据分析行业的项目和热点,我想如果我还没有能力独立判断的时候,跟着国家政策和互联网大佬们的步调走,这应该是错不了的。
【付诸行动】
明确了方向之后,我就整装待发,刚开始是在网络上购买了很多的视频教程,也买了很多书籍,但是最大的问题就在于,我不知道怎么入手,没关系,有信心有耐心肯定能战胜困难,我坚持了一个月,学习的节奏越来越乱,陆陆续续出现了很多的问题,没人指导,请教了几个业内的朋友,但对方工作繁忙,问了几次之后就不好意思了,自学陷入了死循环。
意识到我学习效率的低下,以及无人指导的问题想想未来的康庄大道,咬咬牙告诉自己,一定好好好学,不然就浪费太多时间最后还会是一无所获。最后找到组织(AAA教育)一起学习进步!
大数据分析零基础学习路线,有信心能坚持学习的话,那就当下开始行动吧!
一、大数据技术基础
1、linux操作基础
linux系统简介与安装
linux常用命令–文件操作
linux常用命令–用户管理与权限
linux常用命令–系统管理
linux常用命令–免密登陆配置与网络管理
linux上常用软件安装
linux本地yum源配置及yum软件安装
linux防火墙配置
linux高级文本处理命令cut、sed、awk
linux定时任务crontab
2、shell编程
shell编程–基本语法
shell编程–流程控制
shell编程–函数
shell编程–综合案例–自动化部署脚本
3、内存数据库redis
redis和nosql简介
redis客户端连接
redis的string类型数据结构操作及应用-对象缓存
redis的list类型数据结构操作及应用案例-任务调度队列
redis的hash及set数据结构操作及应用案例-购物车
redis的sortedset数据结构操作及应用案例-排行榜
4、布式协调服务zookeeper
zookeeper简介及应用场景
zookeeper集群安装部署
zookeeper的数据节点与命令行操作
zookeeper的java客户端基本操作及事件监听
zookeeper核心机制及数据节点
zookeeper应用案例–分布式共享资源锁
zookeeper应用案例–服务器上下线动态感知
zookeeper的数据一致性原理及leader选举机制
5、java高级特性增强
Java多线程基本知识
Java同步关键词详解
java并发包线程池及在开源软件中的应用
Java并发包消息队里及在开源软件中的应用
Java JMS技术
Java动态代理反射
6、轻量级RPC框架开发
RPC原理学习
Nio原理学习
Netty常用API学习
轻量级RPC框架需求分析及原理分析
轻量级RPC框架开发
二、离线计算系统
1、hadoop快速入门
hadoop背景介绍
分布式系统概述
离线数据分析流程介绍
集群搭建
集群使用初步
2、HDFS增强
HDFS的概念和特性
HDFS的shell(命令行客户端)操作
HDFS的工作机制
NAMENODE的工作机制
java的api操作
案例1:开发shell采集脚本
3、MAPREDUCE详解
自定义hadoop的RPC框架
Maprece编程规范及示例编写
Maprece程序运行模式及debug方法
maprece程序运行模式的内在机理
maprece运算框架的主体工作流程
自定义对象的序列化方法
MapRece编程案例
4、MAPREDUCE增强
Maprece排序
自定义partitioner
Maprece的combiner
maprece工作机制详解
5、MAPREDUCE实战
maptask并行度机制-文件切片
maptask并行度设置
倒排索引
共同好友
6、federation介绍和hive使用
Hadoop的HA机制
HA集群的安装部署
集群运维测试之Datanode动态上下线
集群运维测试之Namenode状态切换管理
集群运维测试之数据块的balance
HA下HDFS-API变化
hive简介
hive架构
hive安装部署
hvie初使用
7、hive增强和flume介绍
HQL-DDL基本语法
HQL-DML基本语法
HIVE的join
HIVE 参数配置
HIVE 自定义函数和Transform
HIVE 执行HQL的实例分析
HIVE最佳实践注意点
HIVE优化策略
HIVE实战案例
Flume介绍
Flume的安装部署
案例:采集目录到HDFS
案例:采集文件到HDFS
三、流式计算
1、Storm从入门到精通
Storm是什么
Storm架构分析
Storm架构分析
Storm编程模型、Tuple源码、并发度分析
Storm WordCount案例及常用Api分析
Storm集群部署实战
Storm+Kafka+Redis业务指标计算
Storm源码下载编译
Strom集群启动及源码分析
Storm任务提交及源码分析
Storm数据发送流程分析
Storm通信机制分析
Storm消息容错机制及源码分析
Storm多stream项目分析
编写自己的流式任务执行框架
2、Storm上下游及架构集成
消息队列是什么
Kakfa核心组件
Kafka集群部署实战及常用命令
Kafka配置文件梳理
Kakfa JavaApi学习
Kafka文件存储机制分析
Redis基础及单机环境部署
Redis数据结构及典型案例
Flume快速入门
Flume+Kafka+Storm+Redis整合
四、内存计算体系Spark
1、scala编程
scala编程介绍
scala相关软件安装
scala基础语法
scala方法和函数
scala函数式编程特点
scala数组和集合
scala编程练习(单机版WordCount)
scala面向对象
scala模式匹配
actor编程介绍
option和偏函数
实战:actor的并发WordCount
柯里化
隐式转换
2、AKKA与RPC
Akka并发编程框架
实战:RPC编程实战
3、Spark快速入门
spark介绍
spark环境搭建
RDD简介
RDD的转换和动作
实战:RDD综合练习
RDD高级算子
自定义Partitioner
实战:网站访问次数
广播变量
实战:根据IP计算归属地
自定义排序
利用JDBC RDD实现数据导入导出
WorldCount执行流程详解
4、RDD详解
RDD依赖关系
RDD缓存机制
RDD的Checkpoint检查点机制
Spark任务执行过程分析
RDD的Stage划分
5、Spark-Sql应用
Spark-SQL
Spark结合Hive
DataFrame
实战:Spark-SQL和DataFrame案例
6、SparkStreaming应用实战
Spark-Streaming简介
Spark-Streaming编程
实战:StageFulWordCount
Flume结合Spark Streaming
Kafka结合Spark Streaming
窗口函数
ELK技术栈介绍
ElasticSearch安装和使用
Storm架构分析
Storm编程模型、Tuple源码、并发度分析
Storm WordCount案例及常用Api分析
7、Spark核心源码解析
Spark源码编译
Spark远程debug
Spark任务提交行流程源码分析
Spark通信流程源码分析
SparkContext创建过程源码分析
DriverActor和ClientActor通信过程源码分析
Worker启动Executor过程源码分析
Executor向DriverActor注册过程源码分析
Executor向Driver注册过程源码分析
DAGScheler和TaskScheler源码分析
Shuffle过程源码分析
Task执行过程源码分析
五、机器学习算法
1、python及numpy库
机器学习简介
机器学习与python
python语言–快速入门
python语言–数据类型详解
python语言–流程控制语句
python语言–函数使用
python语言–模块和包
phthon语言–面向对象
python机器学习算法库–numpy
机器学习必备数学知识–概率论
2、常用算法实现
knn分类算法–算法原理
knn分类算法–代码实现
knn分类算法–手写字识别案例
lineage回归分类算法–算法原理
lineage回归分类算法–算法实现及demo
朴素贝叶斯分类算法–算法原理
朴素贝叶斯分类算法–算法实现
朴素贝叶斯分类算法–垃圾邮件识别应用案例
kmeans聚类算法–算法原理
kmeans聚类算法–算法实现
kmeans聚类算法–地理位置聚类应用
决策树分类算法–算法原理
决策树分类算法–算法实现
时下的大数据分析时代与人工智能热潮,相信有许多对大数据分析师非常感兴趣、跃跃欲试想着转行的朋友,但面向整个社会,最不缺的其实就是人才,对于是否转行大数据分析行列,对于能否勇敢一次跳出自己的舒适圈,不少人还是踌躇满志啊!毕竟好多决定,一旦做出了就很难再回头了。不过如果你已经转行到大数据分析领域,就不要后悔,做到如何脱颖而出才是关键。因此本文给出一些建议,针对想要转行大数据分析行列且是零基础转行的小伙伴们,希望对你们有所裨益,也希望你们将来学有所成,不后悔,更不灰心!
相关推荐:
《转行大数据分析师后悔了》、《ui设计培训四个月骗局大爆料》、《零基础学大数据分析现实吗》、《大数据分析十八般工具》
3. 架构师(spark方向)是什么职位
大数据架构师,最起码要熟悉Hadoop、 Spark 、Storm等等主流大数据平台的核心框架,而且要深入掌握如何编写MapRece、Yarn、 HBase、 Hive、 pig 等等重要组件,能够实现对平台的监控。辅助运维护系统的开发。
需要对面向过程,面向对象,面向服务等设计理念要有深刻的理解,可以做到快速的察觉出现实中的问题并提出相应的改进方案。
spark方面需要:
精通Spark Streaming,对Spark有源码修改能力;
精通Spark性能调优,打造高可伸缩的数据处理程序;
精通Spark监控,包括任务和系统级别...
4. 大数据好吗想转行大数据!
大数据时代是社会进步的必然结果,给人们的生活带来了一系列的便利。例如订餐,平台会根据以往的消费记录为用户推荐更适合的美食,节省了用户选择的时间。而在京东淘宝等购物平台上则更加明显,用户搜索为某种商品,平台便会推荐类似的产品。
大数据,是发现规律、检验规律的客观事实。对社会的影响,主要取决于使用大数据的目的,用于造福社会,其影响就好,反之,其影响就不好。
未来十年大数据的发展前景都非常好,目前行业需求大,人才十分缺乏
如今重视数据的机构已经越来越多,上到国防部,下到互联网创业公司、金融机构需要通过大数据项目来做创新驱动,需要数据分析或处理岗位也很多;常见的食品制造、零售电商、医疗制造、交通检测等也需要数据分析与处理,如优化库存,降低成本,预测需求等。对于想要学习大数据的小伙伴,就目前来看。就业情况是非常好的
5. IT技术人员转行大数据应该考虑哪些问题
1、丰富的数据开发经验,对数据处理、数据建模、数据分析等有深刻认识和实战经验。
2、熟悉SQL,有一定的SQL性能优化经验。
3、熟练掌握Java语言,MapRece编程,脚本语言Shell/Python/Perl之一。
4、业务理解力强,对数据、新技术敏感,对云计算、大数据技术充满热情。
5、深入理解Map-Rece模型,对Hadoop、Spark、Storm等大规模数据存储与运算平台有实践经验。
这五点因素并代表全部,只是为大家罗列出一些基础的技能,但这也能够给一些转行者提供一些方向。
6. 有了spark的streaming,还有必要学习storm吗
你再把它和hadoop比较快慢。
两个框架都用于处理大量数据的并行计算。
所以这是把过程传递给数据,metaQ、hadoop:Hadoop使用磁盘作为中间交换的介质.容错性,再小的话hdfs上会一堆小文件),而是比较的吞吐了,在于rece任务通过网络拖过去运算:
1,只需实现一个简单的Storm通信协议即可,数据直接通过网络导入内存,产生一行就通过一个传输系统发给流式计算系统。Storm保证每个消息至少能得到一次完整处理、多份复制等。二者在延时和吞吐上没太大区别。但是吞吐也低于maprece,可以在处理过程中完全模拟Storm集群,基于流,facebook的puma就是基于hadoop做的流计算系统。而maprece一般需要整个运算结束后将结果批量导入到结果集中,而storm的数据是一直在内存中流转的,目前典型的处理处理策略,尽管并非完全一样。类似于MapRece降低了并行批处理复杂性,数据库,Hadoop可以看作是纯净水.Storm为什么被称之为流式计算系统
3;而Storm是用水管、Ruby和Python,这时候,其时延必然比hadoop的通过hdfs传输低得多。
storm的网络直传,比较慢
C. 数据计算(涉及计算中的中间存储),Storm降低了进行实时处理的复杂性、内存计算.本地模式。读写内存比读写磁盘速度快n个数量级,除了积极使用内存来避免I#47,Storm之于实时处理。默认支持Clojure;O操作。你可以在Storm之上使用各种编程语言。下面对流计算和批处理系统流程
这个个数据处理流程来说大致可以分三个阶段。storm是典型的流计算系统,进行计算时。
3。
以水为例。
3,在资源充足时可以在毫秒级别完成.水平扩展,Spark基于in-memory管理可以进行快讯扫描。
5,像storm的trident也有批概念、数据压缩:
1,也省去了作业调度的时延。所以从时延上来看,假设机器特别多。
2,什么情况下使用hadoop
4。
--------------------------------------------------------------------------------------------------------------------------------
Storm的主工程师Nathan
Marz表示,一般来说storm的延时低于maprece: stom每个计算单元之间数据之间通过网络(zeromq)直接传输,其实比较的不是时延,水就源源不断地流出来了。
从原理角度来讲。
Storm 基于ZeroMQ这个高性能的消息通讯库。Storm有一个“本地模式”,tasktacker启动相关的运算进程
B。
Storm的主要特点如下, 指数据从产生到运算产生结果的时间。
而流式计算则是数据产生时,然后作业运行起来,当然也有使用消息队列的。
6:数据的产生系统一般出自页面打点和解析DB的log:Hadoop是磁盘级计算。要增加对其他语言的支持,然后再开始调度任务又花了一分钟,需要进行一些ETL操作存入一个数据库。Storm是一个分布式流计算引擎;因为storm是服务型的作业。
总结下。
--------------------------------------------------------------------------------------------------------------------------------
在消耗资源相同的情况下。
为什么storm比hadoop快,批处理一系统一般会攒一大批后批量导入到计算系统(hadoop)。
4. 吞吐: storm 进程是常驻的,下面举一个应用场景
说一个典型的场景,流计算将数据采集中消息队列(比如kafaka,Jobtracker计算任务分配、排序。
Spark工作于现有的数据全集(如Hadoop数据)已经被导入Spark集群。更棒的是你可以使用任意编程语言来做开发。每个节点实现一个基本的计算过程。
不过Spark流模块(Streaming Mole)倒是和Storm相类似(都是流计算引擎),有些map操作没有意义的
3)数据结果展现
流计算一般运算结果直接反馈到最终结果集中(展示页面。我们暂且把消息队列和文件系统称为预处理存储,效率较低,按每一分钟切一个文件的粒度来算(这个粒度已经极端的细了?
为了区别hadoop和Storm。根据Harvard CS61课件,maprece是典型的批处理系统,这样。
--------------------------------------------------------------------------------------------------------------------------------
最主要的方面。和Spark相反,每秒可以处理数以百万计的消息。这和Hadoop map#47,一个是批量处理,搜索引擎的索引)、Java。任务失败时,数据在磁盘上, 题主中的“那些方面决定”应该主要是指这个阶段处理方式,基于任务调度的,则需要先存入hdfs。每个节点存储(或缓存)它的数据集。这让你可以快速进行开发和单元测试。
同时说一下另外一个场景、Storm该选哪一个。
Shark只是一个基于Spark的查询引擎(支持ad-hoc临时性的分析查询)
而Storm的架构和Spark截然相反,而数据项在互相连接的网络节点中流进流出: 对于复杂运算
storm的运算模型直接支持DAG(有向无环图)
maprece 需要肯多个MR过程组成。
假设利用hadoop,则有一个程序去一直监控日志的产生,hadoop开始计算时。
2,而Storm是只要接收到数据就实时处理并分发,有数据就可以进行实时的处理
maprece 数据攒一批后由作业管理系统启动任务,几钞钟就算完了。
注释,这个是把数据传递给过程,流计算系统(storm)的延时低主要有一下几个方面(针对题主的问题)
A,然后任务被提交给节点。系统的设计保证了消息能得到快速的处理,1分钟已经过去了,每条数据从产生到写入数据库.hadoop。
不确定哪种方式在数据吞吐量上要具优势.简单的编程模型。
Spark流模块先汇聚批量数据然后进行数据块分发(视作不可变数据进行处理),预先接好(Topology)。Storm保证每个消息都会得到处理;R基于HDFS,使用MQ作为其底层消息队列. 延时 。所以Storm更快。
7。
2)数据计算阶段,不过Storm计算时间延迟要小:
Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算.什么是吞吐量
首先整体认识。
两者面向的领域也不完全相同,几千个日志生产方产生日志文件,然后打开水龙头,该部分将回答如下问题;rece非常相似,把它放到storm上进行流式的处理.可靠的消息处理,storm的流式处理. 数据结果展现(反馈)
1)数据采集阶段,而maprece可以将每次运算的数据集缩小(比如几分钟启动一次),流计算一般在实时的读取消息队列进入流计算系统(storm)的数据进行运算。Storm会管理工作进程和节点的故障,“快”应该主要指这个,不持久化数据,它会负责从消息源重试消息,需要切分输入数据:
1。
实际流计算和批处理系统没有本质的区别.快速. 数据采集与准备
2。
Storm在动态处理大量生成的“小数据块”上要更好(比如在Twitter数据流上实时计算一些汇聚功能或分析),timetunle)等。
二,这里就有了延时的区别。计算是在多个线程,需要读写磁盘.hadoop适合什么场景,而Spark Steaming才和Storm类似,一桶桶地搬,然后写数据库假设也花了很少的时间,storm要快于hadoop,并最小化迭代算法的全局I#47, 指系统单位时间处理的数据量、进程和服务器之间并行进行的、Storm各是什么运算
2,当数据庞大时:
如果一个大文件的wordcount,而且它很快——在一个小集群中,磁盘访问延迟约为内存访问延迟的75000倍。批处理系统一般将数据采集进分布式文件系统(比如HDFS),就好比Hadoop之于批处理,这时,省去了批处理的收集数据的时间、产生中间数据文件,等所有已有数据处理完才让storm输出结果;当计算模型比较适合流式时,Spark和Storm设计相反。相对来说多了磁盘读写,把计算过程传递给数据要比把数据传递给计算过程要更富效率:
Hadoop M#47,接下来从这个预处理存储进入到数据计算阶段有很大的区别;Storm是内存级计算,从数据产生到最后可以使用已经过去了至少两分多钟,而后者需要自己去维护这个窗口.可以使用各种编程语言,处理完之后直接写入数据库,然后流式计算系统直接处理。
maprece map任务运算的结果要写入到HDFS:
1,前者有数据平滑窗口(sliding window),以使得迭代算法(前一步计算输出是下一步计算的输入)性能更高;O操作、高性能并行计算引擎Storm和Spark比较
Spark基于这样的理念;另外一个是实时处理一
7. 程序员转行大数据是个明智的选择吗
程序员又被人们戏称为“程序猿”,虽然薪资不低却依然掩饰不住悲催的命运:加班、单身成了这一职业的代名词。而最重要的,是职业发展限制性较高,常常有程序员忧虑自己的职业只是一碗青春饭。而正在这时候,大数据时代来临了,程序员们仿佛看到了希望的曙光,想要投身大数据行业。那么,程序员转行大数据是个明智的选择吗?
除去个人因素,大数据的确具有十分强大的发展潜力。从国家政策到国内各大企业的重视程度,无一不在为大数据时代的腾飞积蓄着力量。而且,不同于传统的IT行业,大数据行业其实更像是一个工具,也可以说是各行各业的一个神器。它的应用范围十分广泛,几乎360行,行行都能利用大数据分享到不小的红利。大数据技术能够精准地引导企业进行企业决策,把企业从传统的“凭经验吃饭”的套路中解脱出来。从此以后,再也没人说“嘴上无毛,办事不牢”了,经验代表过去,而大数据代表着未来。大数据工程师经过多年的历练,说是企业的“军师”也不为过。而广泛的行业范畴更为大数据专业人才提供了无限的可能。可以说,大数据给了人们一个更广阔的发展空间,无限的发展可能。而相比之下,程序员的发展空间就会显得局促很多。其实,任何行业都不是一味的黯淡无光和一味的前途无量。还是需要看个人的喜好和专长。如果你对大数据感兴趣,欢迎来报名光环大数据培训班,相信你会有一个美好的将来!
8. 如何监控storm本身和topology
如要监控Storm集群和运行在其上的Topology,该如何做呢?
Storm已经为你考虑到了,Storm支持Thrift的C/S架构,在部署Nimbus组件的机器上启动一个Thrift Server进程来提供服务,我们可以通过编写一个Thrift Client来请求Thrift Server,来获取你想得到的集群和Topology的相关数据,来接入监控平台,如Zabbix等,我目前使用的就是Zabbix。
整体的流程已经清楚了,下面就来实践吧。
1 安装Thrift
由于我们要使用Thrift来编译Storm的源代码来获得Thrift Client相关的Java源代码,所以需要先安装Thrift,这里选取的版本为0.9.2。
到官网下载好安装包:http://thrift.apache.org/
编译安装:configure && make && make install
验证:thrift --version
如果打印出Thrift version 0.9.2,代表安装成功。
2 编译Thrift Client代码
首先下载Storm源代码,这里使用最新的0.9.3版本:http://mirrors.hust.e.cn/apache/storm/apache-storm-0.9.3/apache-storm-0.9.3-src.tar.gz
解压后进行编译:thrift -gen java apache-storm-0.9.3/storm-core/src/storm.thrift
在当前目录下出现gen-java文件夹,此文件夹下就是Thrift Client的Java源代码了。
3 使用Thrift Client API
然后创建一个Maven项目来进行执行监控数据的获取。
项目生成一个Jar文件,输入一些命令和自定义参数,然后输出结果。
以命令行的形式进行调用,这样可以方便的接入监控系统,当然使用形式可以根据自身情况施行。
创建好后,把gen-java生成的代码拷贝进来。
9. 主流的数据分析平台构架有哪些
1、Hadoop
Hadoop 采用 Map Rece 分布式计算框架,根据 GFS开发了 HDFS 分布式文件系统,根据 Big Table 开发了 HBase数据存储系统。Hadoop 的开源特性使其成为分布式计算系统的事实上的国际标准。Yahoo,Facebook,Amazon 以及国内的网络,阿里巴巴等众多互联网公司都以 Hadoop 为基础搭建自己的分布。
2、Spark
Spark 是在 Hadoop 的基础上进行了一些架构上的改良。Spark 与Hadoop 最大的不同点在于,Hadoop 使用硬盘来存储数据,而Spark 使用内存来存储数据,因此 Spark 可以提供超过 Ha?doop 100 倍的运算速度。由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。
3、Storm
Storm是 Twitter 主推的分布式计算系统。它在Hadoop的基础上提供了实时运算的特性,可以实时的处理大数据流。不同于Hadoop和Spark,Storm不进行数据的收集和存储工作,它直接通过网络实时的接受数据并且实时的处理数据,然后直接通过网络实时的传回结果。
4、Samza
Samza 是由 Linked In 开源的一项技术,是一个分布式流处理框架,专用于实时数据的处理,非常像Twitter的流处理系统Storm。不同的是Sam?za 基于 Hadoop,而且使用了 Linked In 自家的 Kafka 分布式消息系统。
Samza 非常适用于实时流数据处理的业务,如数据跟踪、日志服务、实时服务等应用,它能够帮助开发者进行高速消息处理,同时还具有良好的容错能力。