z****e 发帖数: 54598 | 1 我感觉是rdd这种数据结构限制了他们的发挥
dstream最终还是捆死在rdd上,也就是dstream是rdd的一种
而rdd比较适合dataset,并不十分适合datastream
而spark的基石就是rdd,算法是ml那些,但是数据结构基本上都是rdd
而rdd是为dataset也就是batch处理而设计出来的
为了迁就dataset,硬把datastream的数据结构搞成rdd
这看来不是一个什么很好的选择
当然对于大多数应用来说,micro batch够用
但是总感觉怪怪的,any way,如果flink改掉这个的话
能够结合spark和storm的优点的话,我觉得蛮好
值得一试,比起自己去折腾storm+spark要强
这两个光弄其中一个就已经够呛了 |
|
C*********r 发帖数: 21 | 2 最近刚开始学Spark,因为没有看过源代码,麻烦大家想请教几个问题。
1. RDD在创建的时候是lazy的,并且有narrow和wide两种类型,例如map,filter是
narrow类型的所以不需要额外的shuffle。但是groupbykey之类的就需要shuffle了。并
且每个RDD会保存有自己所对应的partition信息。我的理解是每个action或者
transformation都会被Spark internally翻译成map reduce job来执行。
我的问题是翻译之后的map reduce job的并行度是和哪些因素有关系呢?partition的
数量还有executor的数量还有executor-core的数量之间是什么样的关系呢?例如
parition越多并行的task也会越多么?
2. 当我groupbykey的时候RDD会记录下我当前的RDD中有多少个key value么?并且这些
key value和上面说的partition有什么样的联系呢,还是完全不想关的两个概念?
3. 一个RDD的action或者transformation会被转换成多少ma... 阅读全帖 |
|
C*********r 发帖数: 21 | 3 谢谢!感觉现在RDD的action还有operation的数量太少,有很多很复杂的逻辑如果全部
用RDD拼凑起来会变得很难维护,而且要花很多时间去migrate。所以一个折中的方法就
是把复杂的逻辑用java api wrap起来,然后pass给RDD进行执行。这样可以很快的搭起
来一个系统,但是只是利用了几个基本的RDD,真正复杂的逻辑其实和Spark没有太多关
系。所以才会直接跳到performance tuning的阶段。不知道这样使用Spark会有什么潜
在的问题么?
partition |
|
c******n 发帖数: 4965 | 4 rdd 跟 hadoop MR 的 input split 概念有点像
但是 spark 的独特是, rdd 上带了 transformer, master 可以把不同的 rdd merge
到一起 给 executor. 具体怎么弄我也不清楚, 你只能看 SRC code, 可以 先看 第
一个 release local executor, 很简单 |
|
C*********r 发帖数: 21 | 5 many thanks for the clarification!
比如说我有一个两个column的table (name, money). 我想以name为key对money做一些
data mining(或者一些复杂的计算)。所以我会做以下的步骤
step1 -> 把table map 成一个file RDD
step2 -> file RDD recudeByKey(name) 或者groupByKey(name)
step3 -> 在第二步产生的RDD上面apply一些其他的运算
那么step2中的reduceByKey加入我设置partition number为100,但是我其实是有200个
distinct names,所以其实平均下来每个partiton里面会有两个(name, list
) pair么?然后每个partition会被分配给一个task进行执行。假如我的配置是(5,4,16
),所以每个partiton里面即使有两个pair,但还会顺序的进行执行,对么?这里是我
一直非常confuse的地方。。
如果这种情况下的化,我的partition数... 阅读全帖 |
|
f********r 发帖数: 304 | 6 不知道你的复杂逻辑是什么。RDD就是Vector,你把RDD operation 想象成vector
operation就行了。并行设计主要还是考量怎么把运算逻辑并行化,选出data
independent的processing。你如果感兴趣,可以看看他们mlib的源码,有一些标准ml
的算法实现。
还有一个办法是你可以用scala重写一下你们现有的运算逻辑,尽量用fp的design
pattern。然后把涉及到的装data的collection全部改成RDD就可以用spark加速了。 |
|
z****e 发帖数: 54598 | 7 rdd最后一个d就是dataset的意思
datastream跟dataset还是有本质上的区别的
dstream->rdd并不是一个非常make sense的解决方案
还有这两个都用了akka,所以目前python什么其实都比较蛋疼
最主要的还是java和scala,要么就自己去写python那些接口
那就麻烦了,估计flink也不是个头,将来基于vert.x应该会有更好的
能够满足更多脚本的类似spark/flink的数据转换framework出现 |
|
p*****2 发帖数: 21240 | 8 大牛提供点细节? 要能这么干会很有用
rdd本身不是map 是list 如果做filter的话复杂度比较高 |
|
p*****2 发帖数: 21240 | 9
去。
就是我说的,RDD是一个list,你要是用key找value的话,是个O(n)的复杂度,map的话
应该是O(1)复杂度才对。你们公司要是能搞过来给我说一声呀。我挺需要这个feature.
如果有这个,redis都不需要了。 |
|
p*****2 发帖数: 21240 | 10
这个是不是变local cache了?不是RDD了? |
|
s*****y 发帖数: 11 | 11 如果我在几个不同的机器上spawn 几个 AKKA actor, 各自有各自的数据【格式一样】
,然后我想把这些数据merge到一个spark RDD里面统一进行处理, 怎么样的方式最好呢
? |
|
f********r 发帖数: 304 | 12
就是个编程语言而已,用scala只不过因为spark是scala native 而已。他们自己都说
了,RDD level的话,scala比python还是要快一倍的。语言这玩意学着够用就行,将来
真不行了久换呗 |
|
|
|
l****e 发帖数: 609 | 15 谢谢你,evereve
仔细回去看了楼主的原贴,的确如你所说,楼主gemini2012也就半桶水,但他自比方舟
子高明,我给机会让他讲一讲,结果他也就露馅了,说不出什么东西。其他几个川粉也
就是骂街的水平。
不过想想也是,川粉和Trump一样都相信on-line polls是准确的,真没有必要跟他们讨
论这些polling,浪费时间。
不过叫minner 的网友的确有水平,他似乎怀疑CNN的数据造假,但是你很好地用FOX
NBC等其他媒体的例子回应了他。我也相信CNN不是作假,因为被调查者的党派都是公开
的。好像误差是4.5,有点大,但不影响判断输赢。
至于为什么CNN NBC FOX 的Random digit dialing (RDD) 方法会有民主党的被调查者
偏高,我觉得有一个解释可能可以解释得通。
最近刚看到一个讨论,是个研究polling的教授说的,他说因为trump处于劣势,他的支
持者中不愿意参加调查人数会相对多些。如果他的话是正确的话,那么就可以解释得通
为什么CNN NBC FOX 的Random digit dialing (RDD) 方法会使民主党的被调查者偏高... 阅读全帖 |
|
l****e 发帖数: 609 | 16 自己读读英文吧,Simple random sampling也是一种Probability Sampling Methods,
我不是搞这行的,没有发言权,但我相信方舟子比你和这里绝大多数川粉强,人家说得
有理有据。
说了这么久,我怎么听不出你的高明之处,你能否把一个复杂的问题简单化了讲?你既
然单挑我,说随机抽查不科学,你总得说出过原由吧。
现在这个回帖,你不再是在说随机抽查的不科学性,而是在说CNN的抽样的电话号码不
是随机的,是在质疑CNN的credibility吗?
Probability Sampling Methods:
1.Simple random sampling
2.Stratified sampling
3.Cluster sampling
4.Multistage sampling
5.Systematic random sampling
另外www.aapor.org有关于Random-Digit Dialing (RDD)的介绍
http://www.aapor.org/Education-Resources/Election-Polling-Resourc... 阅读全帖 |
|
t**********8 发帖数: 15 | 17 两个问题:
(1) 如何schedule Spark Jobs
你可以使用YARN mode来管理你的cluster.对于scheduler来说, Spark对于你来说,就是
一个master node,并行cluster计算对于你来说就是一个黑箱, 不需关心,scheduler可
以使任何常见的如cron jobs
(2) 如何数据交换,和Spark
对于输入来说, 和java main一个道理,可以使用main(String [] args)来接受参数,输
出可能会有些问题,因为Spark是基于RDD的,一般是把结果RDD写入files 来读取的.
两个问题:
(1) 如何schedule Spark Jobs
你可以使用YARN mode来管理你的cluster.对于scheduler来说, Spark对于你来说,就是
一个master node,并行cluster计算对于你来说就是一个黑箱, 不需关心,scheduler可
以使任何常见的如cron jobs
(2) 如何数据交换,和Spark
对于输入来说, 和java main一个道理,可以使用main(String [] ... 阅读全帖 |
|
d********w 发帖数: 363 | 18 品味来了。
Basics and Algorithms
The Five-Minute Rule Ten Years Later, and Other Computer Storage Rules of
Thumb (1997): This paper (and the original one proposed 10 years earlier)
illustrates a quantitative formula to calculate whether a data page should
be cached in memory or not. It is a delight to read Jim Gray approach to an
array of related problems, e.g. how big should a page size be.
AlphaSort: A Cache-Sensitive Parallel External Sort (1995): Sorting is one
of the most essential algorithms in... 阅读全帖 |
|
r********n 发帖数: 7 | 19 楼主会这么说应该对两个项目本身和项目背后的团队都不是很了解吧。Spark并不是一
个in-memory Hadoop。关于这个,可以参见我Quora的回答: https://www.quora.com/
How-does-Apache-Spark-work/answer/Reynold-Xin
Flink以前名字叫做Stratosphere,其实和Spark一样也有五年的历史了,但是一直不温
不火的。成熟度比Spark差了很远,参与Flink社区的人不到Spark的五分之一。
个人意见:Flink之所以不温不火的一个原因就是用了太多数据库的传统设计,反而忽略
了这些设计对实际应用的阻碍。很多这些设计在SQL query上是很有价值的,但是对于
general program却可能得不偿失。
比如说Flink一直比较崇尚从头到尾的declarative,希望你把整个程序从头到尾的都用
他的框架来写。比如一个简单的while/for loop,本来编程语言里面已经有内置的loop
了,但是他却强迫用户利用他框架内置的loop的API。这样子的下场是程序员如果要用
这个框架,反而需要去学习更... 阅读全帖 |
|
j********x 发帖数: 2330 | 20 Chord
Dynamo
Dryad
Rdd,spark挺无聊 dag的基本框架套上一个rdd的皇帝新衣服。。。不推荐阅读。。。 |
|
m**x 发帖数: 245 | 21 There are several utils in the Ubuntu repositories which claim to do this --
here's the top of each one's description:
ddrescue [note, this is the package that contains `dd_rescue` command]:
" dd_rescue is a tool to help you to save data from crashed partition.
" It tries to read and if it fails, it will go on with the next sectors "
where tools like dd will fail.
gddrescue [note, this is the package that contains `ddrescue` command]:
" The gddrescue tool copies data from one file or block devic... 阅读全帖 |
|
z****e 发帖数: 54598 | 22 感觉自从spark出来之后,感觉mongo和couch的两拨人马都萧条了很多
接口不一致,没有人买他们的服务了,apache太猛了
cassandra如火如荼啊,我们也准备淘汰couchbase了
所以想看看coltzhao的公司,是不是还保留有mongo
如果是的话,如何让spark的rdd用上mongo呢?
rdd好像目前搞个cassandra都挺麻烦的,但是不是不能搞
还是可以搞的,mongo和couch我就不知道怎么搞了 |
|
z****e 发帖数: 54598 | 23 关键是yarn上弄ml很恶心
啥都要自己动手,很麻烦
而且hadoop sql不管是hive还是pig
都做得不三不四的
虽然说hdfs离真正的real time处理,还有很长一段距离
但是hive和pig也慢得可以了
mapreduce现在沦为一个batch工具
这里面显然有很大的提升空间
spark至少说rdd模型就把这个给做了
然后再谈sql, r和ml这些上层建筑
我觉得很make sense,把rdd看成一个cache就是了
分布式每层都做一个cache很正常
db,web/app server这些都有内嵌的cache
而mapreduce则没有
现在主流公司集体转向spark,都全力支持spark
固然有这样那样的问题,但是比起hadoop的mapreduce
感觉是要好很多了,spark上再搞sql这些,才是the way to go
apply |
|
l*****i 发帖数: 13 | 24 Spark的在2012年刚耳闻的时候,惊艳的地方在于内存计算和REPL,当时做machine
learning的同事在公司内部推广这个的时候,我们做engineer的就觉得没什么用,错过
了很多
之后稍微细读spark发现宣传的核心其实是设计核心的一方面的表现,通过Spark的数据
核心RDD的partition/compute/dependency实际可以很容易包装为独立的应用逻辑,比
如现在的graph和dataframe, 然后再去基于新的RDD引入新的优化和应用。并且实际
RDDlazy的特性使得转换不一定对应一个真正的task,所以声明和计算是分离的,扩展
空间很大。Spark的极限远不是楼主说的这个。
另外可能spark确实做不了楼主所说的“真正的streaming”(这个不确定,看12楼的
rxin这些founder和大committer了),但没有一个系统真正能把高性能,可靠和真正的
streaming做好。Storm在保证可靠和性能的时候也只能以batch来处理一个提交单位,
否则就要出现大量的commit或者不保证transactional.
也许google的Sp... 阅读全帖 |
|
J****R 发帖数: 373 | 25 spark cache rdd in memory, 这个和我写个scala或者java程序,开个array,把数据
存进数组有区别吗?这不都是在memory 里面访问吗?
为毛spark一提到能cache rdd, 仿佛就很高大上的样子。。。。。。 |
|
z*******3 发帖数: 13709 | 26 怎么可能不值一驳
diversity好,软件产品尤其需要diversity
一家独大对谁来说都是不利的
现阶段flink还没有正式推出,有点像当年我们搞storm时候看spark的感觉
倒是如果你想contribute的话,这个时候是非常好的参与flink的机会
spark人满为患,这个时候再凑过去,顶多就是一个用户,人家也不需要你的贡献
spark有spark自己的问题,比如streaming就不怎样,设计上有缺陷
rdd是好东西,但是把所有的东西都搞成rdd,那又是另外一回事了
就像singlethreadness是容易,但是把所有东西都搞成single thread
那又是另外一回事了,flink的core就是streaming的,如果你对scala还有java敏感的话
应该可以感觉出来,streaming好像是future啊,streaming一捅到底那种感觉非常美妙
完全畅通无阻那种感觉,vert.x和flink都在强调streaming,还有scala那一堆东西
比起flink来说,vert.x的机会更大
vert.x替代akka应该是大势所趋,akka稍微复杂一点的rea... 阅读全帖 |
|
f********r 发帖数: 304 | 27
非常同意,spark尤其是spark SQL,很多stage的shuffle read/write数量非常惊人,
根本不可能全不in memory,所以spill disk很常见。而且如果你不手动cache或者
persist rdd,很多rdd会recompute,这个在写程序的时候要非常注意。spark虽然nb但
也不是什么ultimate solution,对programming optimization的要求很高的。而且真
正上大数据的时候,如果没有powerful硬件支持,executor经常timeout 或者OOM,很
不容易debug。 |
|
h***s 发帖数: 2499 | 28 【 以下文字转载自 DataSciences 讨论区 】
发信人: hjxds (Kiss My Shiny Metal Ass), 信区: DataSciences
标 题: 有尝请教关于spark api java coding
发信站: BBS 未名空间站 (Thu Dec 14 00:00:11 2017, 美东)
现有一个Java 写的gbm 的scoring code, 剧长因为是很多tree。
现在我想把这个code搬到spark上去run,所以需要改写.
我的理解是把所有x 建立一个rdd,每一个row是一个(key,vector),然后rdd.map((k,v
)=>
(k,tree(vector))), 这个思路对不对?
如果对的话,我就要确保 我的tree function take a vector as input and return
the
score.对吧?
vector里面的x1,x2,x3,...的位置要确保一致对吧?
哪里能找到一些类似的code?谢谢。 |
|
w***s 发帖数: 2658 | 29 我来给个摘编:
大数据系统的核心主要是分布式处理框架,因为框架负责工作(job )执行的方方面面
,如工作分解、任务(task)调度与执行、错误容忍、数据流等等。这其中重要的早期
工作是Google的MapReduce框架,它将函数式编程思想引入到分布式数据处理中,仅仅
依托两个函数(map和reduce)不仅解决了一大类的大数据批处理问题,而且用户也再
也不用担心分布式带来的诸多系统层面问题。不过MapReduce缺点也很显著,比如处理
流程过于固定,不支持迭代,工作执行时间一般较长,等等。Hadoop是MapReduce的开
源实现,在国内很流行,而且在08年的时候赢得了TeraSort的冠军,所以市场很蔓延,
形成了庞大而臃肿的生态圈。此后,微软在08年推出了与 MapReduce直接竞争的Dryad
,以DAG型的数据流取代了MapReduce固定的数据流,更复杂但功能更强。09年出现的
DryadLINQ将更多的函数式思想(主要来源于C#的LINQ)引入到分布式编程范型中,这
些即使在今天看来也很先进。再此后Spark出现了,Spark最大的特点在于她的数据模型
采用RDD,... 阅读全帖 |
|
w***s 发帖数: 2658 | 30 我来给个摘编:
大数据系统的核心主要是分布式处理框架,因为框架负责工作(job )执行的方方面面
,如工作分解、任务(task)调度与执行、错误容忍、数据流等等。这其中重要的早期
工作是Google的MapReduce框架,它将函数式编程思想引入到分布式数据处理中,仅仅
依托两个函数(map和reduce)不仅解决了一大类的大数据批处理问题,而且用户也再
也不用担心分布式带来的诸多系统层面问题。不过MapReduce缺点也很显著,比如处理
流程过于固定,不支持迭代,工作执行时间一般较长,等等。Hadoop是MapReduce的开
源实现,在国内很流行,而且在08年的时候赢得了TeraSort的冠军,所以市场很蔓延,
形成了庞大而臃肿的生态圈。此后,微软在08年推出了与 MapReduce直接竞争的Dryad
,以DAG型的数据流取代了MapReduce固定的数据流,更复杂但功能更强。09年出现的
DryadLINQ将更多的函数式思想(主要来源于C#的LINQ)引入到分布式编程范型中,这
些即使在今天看来也很先进。再此后Spark出现了,Spark最大的特点在于她的数据模型
采用RDD,... 阅读全帖 |
|
w**2 发帖数: 147 | 31 请教spark的大牛,
有两个rdd,请问如何得到一个rdd的补集。
比如rdd1 - rdd2。
我用的是python,但是subtract好像不管用呢。
如果不用subtract,还有哪些其他的方法?
多谢了。 |
|
h***s 发帖数: 2499 | 32 现有一个Java 写的gbm 的scoring code, 剧长因为是很多tree。
现在我想把这个code搬到spark上去run,所以需要改写.
我的理解是把所有x 建立一个rdd,每一个row是一个(key,vector),然后rdd.map((k,v
)=>
(k,tree(vector))), 这个思路对不对?
如果对的话,我就要确保 我的tree function take a vector as input and return
the
score.对吧?
vector里面的x1,x2,x3,...的位置要确保一致对吧?
哪里能找到一些类似的code?谢谢。 |
|
h***s 发帖数: 2499 | 33 有id作为unique的key, 可以生成key-vector pair。
在tree函数之前有个function给所有变量赋值,把vector里的值传给变量
XB_TOTAL_ACTIV_MNTH_P1Q,然后tree就直接根据这些变量计算。
这个code是salford软件自动生成的,所以写成这样,上千的不同名字的变量都hard
coded
1.我可以改写tree函数成接受外部array把feature的值传进来,但是每个tree只需要5
,6个out of hundreds.每个tree还不同的features。 我可以在textpad里一起replace
改,但是只可能每个tree都定义所有hundreds of变量,虽然只用5,6个,这样可以吗?
有可能不改吗,维持两个function吗?一个从vector到XB_TOTAL_ACTIV_MNTH_P1Q=?的
赋值函数,一个tree函数根据XB_TOTAL_ACTIV_MNTH_P1Q计算?spark api允许自定义函
数里
有global 变量吗?
2. 这里并行计算的意义是根据每个tree生成一个新的rdd对吗?你的c... 阅读全帖 |
|
E*********g 发帖数: 185 | 34
:有id作为unique的key, 可以生成key-vector pair。
:
:在tree函数之前有个function给所有变量赋值,把vector里的值传给变量
:XB_TOTAL_ACTIV_MNTH_P1Q,然后tree就直接根据这些变量计算。
:
:这个code是salford软件自动生成的,所以写成这样,上千的不同名字的变量都hard
:coded
:
:1.我可以改写tree函数成接受外部array把feature的值传进来,但是每个tree只需要
5
:,6个out of hundreds.每个tree还不同的features。 我可以在textpad里一起
replace
:改,但是只可能每个tree都定义所有hundreds of变量,虽然只用5,6个,这样可以
吗?
可以
每棵树一个类是很糟糕的, 有没有可能做成一个类,不同参数
:
:有可能不改吗,维持两个function吗?一个从vector到XB_TOTAL_ACTIV_MNTH_P1Q=?的
:赋值函数,一个tree函数根据XB_TOTAL_ACTIV_MNTH_P1Q计算?spark api允许自定义... 阅读全帖 |
|
|
a****1 发帖数: 654 | 36 Report: 'Dirty bomb' parts found in slain man's home
By Walter Griffin
Posted Feb. 10, 2009, at 10:22 p.m.
BELFAST, Maine — James G. Cummings, who police say was shot to death by his
wife two months ago, allegedly had a cache of radioactive materials in his
home suitable for building a “dirty bomb.”
According to an FBI field intelligence report from the Washington Regional
Threat and Analysis Center posted online by WikiLeaks, an organization that
posts leaked documents, an investigation into th... 阅读全帖 |
|
b*****d 发帖数: 61690 | 37 中新网4月23日电 据《日本经济新闻》与东京电视台于4月19至21日实施的舆论调
查显示,日本安倍内阁支持率升至76%,相比3月的上次调查上升7个百分点。包括安倍
第一次任日本首相期间在内,创出了安倍内阁支持率的新高,也创出2001年小泉内阁以
来的最高水平。
调查显示,由于受经济指标好转的推动,针对日本银行总裁黑田东彦推出的货币宽
松政策,58%受访者称“给予积极评价”,而表示“反对”者占18%。同时,安倍内阁的
不支持率也下降7个百分点,降至16%。
关于安倍内阁的经济政策,58%的受访者称“有望期待”经济复苏,而表示“难以
期待”者占25%。称“有望期待”者比上次调查减少3个百分点。
关于日本参加环太平洋经济合作协议(TPP)谈判一事,47%“赞成”,而30%“反对
”。赞成派相比上次调查减少4个百分点,反对派增加2个百分点。关于日本在日美预备
磋商中作出的让步,26%的受访者认为,“为尽早参加TPP谈判不得不如此”。而57%则
回答称,“对美国过分让步,参加TPP谈判的消极影响令人担忧”。
此次调查由日经调查公司以除福岛县一部分地区之外的日本全国成年男女为对象,
以随机拨号(R... 阅读全帖 |
|
J*****c 发帖数: 276 | 38 快速看了一下GO,它可以直接做任务并行,类似storm的spout和bolt,只是它将
goroutines和channel做到GO的核心中了,没有基于JVM。现在还不知道GO如何实现
spark的RDD? |
|
S*********g 发帖数: 24893 | 39 【 以下文字转载自 Stock 讨论区 】
发信人: StephenKing (金博士), 信区: Stock
标 题: 市面上流通1358种电子货币,包括ByteCoin
发信站: BBS 未名空间站 (Fri Dec 15 00:59:47 2017, 美东)
# Name Symbol Market Cap Price Circulating Supply Volume (
24h) % 1h % 24h % 7d
1
Bitcoin BTC $290,617,804,480 $17,358.40 16,742,200 $15,
825,500,000 -0.36% 5.62% 3.15%
2
Ethereum ETH $63,827,563,522 $662.47 96,348,146 $3,723,
910,000 -0.48% -10.50% 52.62%
3
Bitc... 阅读全帖 |
|
l****z 发帖数: 29846 | 40 October 3, 2012 Posted by DJ Drummond
Imagine I took a poll of delegates at the 2012 GOP National Convention. Let
’s say I made sure the gender, race, age, education, and other demographics
apart from party affiliation were carefully matched to voter norms. Would
you be happy with such a poll?
If you are a Republican, maybe, but obviously not if you are a Democrat. A
lot of folks would be quick to point out that Mitt Romney would pretty much
crush Barack Obama in such a poll. The flip side ... 阅读全帖 |
|
|
|
j*******t 发帖数: 223 | 43 Hama是基于BSP计算框架的(Pregel和对应的开源版本Giraph也是基于BSP的)。BSP框
架在80年代由Leslie Valiant等人提出(2010年图灵奖得主)。与MapReduce相比,BSP
更适用于迭代式计算。
一个典型的基于BSP的程序分为多个iteration,其中每个iteration包含Local
computation,Communication,以及Synchronization这几个阶段(关于细节可以参看
相关网站)。
相较于专门针对Graph计算的Google的Pregel和另一个开源版本Giraph,Hama是一种更
加宽泛的计算框架,它有Grpah API,同时也可以大家写更加宽泛的迭代算法,比如
KMeans,EM,PageRank等。此外,为了进一步提高计算效率,Hama目前正在考虑加入
GPU协作运算。
另一个很接近的框架是Spark,如果数据(RDD)被载入内存(cache),那么Spark在进
行迭代运算时效率也很高。
Hama目前社区还很小,所以显得比较冷清。Mahout社区要大很多,而且目前在考虑加入
基于Spark的算法,所以比... 阅读全帖 |
|
l*****n 发帖数: 246 | 44 Spark提供了一系列的api,可以很容易的让你在做MapReduce的时候把一些数据存储到
内存里面, 这样下一次操作就直接调取内存里面的data就可以了。这样避免了disk io
,省了很多时间,只要内存足够大,速度上比Hadoop可以快很多很多倍。
举个最简单的例子吧,ML里面做K-means的时候,如果是传统Hadoop,每更新一次
cluster centers就要过一遍数据。但是如果用Spark,直接用cache()函数,把RDD数据
存到内存里面就行。如果你的K-means要做100次才收敛,Hadoop要去硬盘读取一百次数
据,但是Spark直接用内存里面的数据,这样就可以比Hadoop快一百倍。
恩,刚开始学两天,这是我得理解。
写Spark Java程序也不是很容易啊,完全不知道什么是Maven, Java 8也不熟, 什么
Lambda表达式都是现学。。不容易啊。。。 |
|
z*******3 发帖数: 13709 | 45 来自主题: JobHunting版 - 秒杀设计题 其实原理都那么一回事
kafka换成其他的message server
比如jms,本质都一样
反正无非找个server,能接收msg,能启动流程就可以了
然后spark套上随便一个rdd,其实都能用
couchbase和mongo就很尴尬了
因为spark之后,对于persistence的要求很低了
只要有一个东西能用来存数据就行了
处理全部交给spark去做,spark上面还有一堆libs
那如果把couch这些接上spark,那就显得多余
因为couch做的很多东西,其实spark就能做
而用了spark,用hdfs或者高级一点,cassandra就足够了
不需要couch这些,couchdb还是凑合,couchbase就显得多余 |
|
c******n 发帖数: 4965 | 46 其实spark 那个RDD 概念, scalding 里面就有, 只不过后者没有把in-memory 的噱头
加进去, 没有火起来
execution |
|
b**********5 发帖数: 7881 | 47 i dont think inverted index table is some kind of data modeling. yes, i
think data modeling is separate from programming. most CS people, even if
they use spark, is more of doing the spark sql, rdd, spark streaming。。。
otherwise, there would be no need for data scientists... |
|
a*****s 发帖数: 1121 | 48 good point.
但是说俺全答错,有点绝对了。不过无所谓,探讨问题吗,闻者足戒。
region 如果是在map上的话,在相对一段时间内是固定的,可以从某个table上根据划
分查出来的。
用spark-streaming只要读个database的RDD就是了。
瓶颈在系统设计里面永远是个相对概念,是相对于你的上层用户,下层系统,和实际
SLA来说的。如果你用MapReduce解决不了,latency太长,那么瓶颈在这里,换其他计
算平台,实在不行你可以自己写MPI代码。所有“瓶颈”无非是两个方面,时间和空间
,因为图灵机就是一个读写头和纸带。所有系统都是图灵机的实现。
扯再多都是如何根据具体问题优化你当前的图灵机。
好的设计是你能通过对机器来满足你的SLA,你懂得越低层,你的power就越大,实在不
行咱不用现在主流设计,从头来自己搞一套,当然money driven的公司是绝对不允许你
这么干的。解决近期问题就行。不care你用啥。 |
|
s**********1 发帖数: 12 | 49 将数据根据时间排序后
1:00 on
1:11 off
2:00 on
2:11 off
2:20 off
2:40 on
比如要获得2:15时刻的状态,只需看离2:15最近的时刻(2:11)那个状态即可。
比如序列on on off off on 的最终状态是on
此法可以得到任意时刻的状态。
比如求2:15时刻的状态
# 时间从到大小排序
rdd.filter(lambda (time, event): time <= "2:15", reverse = true).sortByKey(
).take(1).
其实可以不用排序,根据时间取最大值就好了 |
|
m**c 发帖数: 22 | 50 鄙人也关注DB很久了,技术上讲MPP做的还不错,比如RDD恢复。不过再往下,很遗憾最
近才加JIT,感觉迭代实在是太慢了,让我怀疑他们的vision. |
|