我遇到了"强烈最终一致性"的概念.它应该比"最终一致性"强,但弱于"强一致性"吗?有人可以用适用的例子解释这三个概念之间的差异吗?
http://en.wikipedia.org/wiki/Eventual_consistency#Strong_Eventual_Consistency http://en.wikipedia.org/wiki/Conflict-free_replicated_data_type
非常感谢.
在http://spark.apache.org/docs/0.8.0/cluster-overview.html上阅读了一些文档后,我得到了一些我想澄清的问题.
以Spark为例:
JavaSparkContext spark = new JavaSparkContext(
new SparkConf().setJars("...").setSparkHome....);
JavaRDD<String> file = spark.textFile("hdfs://...");
// step1
JavaRDD<String> words =
file.flatMap(new FlatMapFunction<String, String>() {
public Iterable<String> call(String s) {
return Arrays.asList(s.split(" "));
}
});
// step2
JavaPairRDD<String, Integer> pairs =
words.map(new PairFunction<String, String, Integer>() {
public Tuple2<String, Integer> call(String s) {
return new Tuple2<String, Integer>(s, 1);
}
});
// step3
JavaPairRDD<String, Integer> counts =
pairs.reduceByKey(new Function2<Integer, Integer>() {
public Integer call(Integer a, Integer b) {
return a + b;
} …Run Code Online (Sandbox Code Playgroud) 我正在使用scala对spark进行一些测试.我们通常会读取需要操作的json文件,如下例所示:
test.json:
{"a":1,"b":[2,3]}
Run Code Online (Sandbox Code Playgroud)
val test = sqlContext.read.json("test.json")
Run Code Online (Sandbox Code Playgroud)
如何将其转换为以下格式:
{"a":1,"b":2}
{"a":1,"b":3}
Run Code Online (Sandbox Code Playgroud) 假设我在3个节点上有一个分发系统,我的数据分布在这些节点中.例如,我有一个test.csv文件,它存在于所有3个节点上,它包含2列:
**row | id, c.**
---------------
row1 | k1 , c1
row2 | k1 , c2
row3 | k1 , c3
row4 | k2 , c4
row5 | k2 , c5
row6 | k2 , c6
row7 | k3 , c7
row8 | k3 , c8
row9 | k3 , c9
row10 | k4 , c10
row11 | k4 , c11
row12 | k4 , c12
Run Code Online (Sandbox Code Playgroud)
然后我使用SparkContext.textFile将文件读出为rdd等等.据我所知,每个spark worker节点都会读取文件中的一部分.所以现在让我们说每个节点都会存储:
我的问题是,假设我想对这些数据进行计算,我需要将一个键组合在一起,因此键值对将是[k1 [{k1 c1} {k1 c2} {k1 c3}]]..等等. …
我试图了解在哪种情况下我应该通过负载均衡器选择服务注册表.
根据我的理解,两种解决方案都涵盖相同的功能.
例如,如果我们将consul.io视为功能列表,我们有:
例如Amazon ELB等负载均衡器有:
因此,在这种情况下,我无法理解为什么我会选择类似consul.io或netflix eureka以上Amazon ELB的服务发现.
我有一种预感,这可能是由于实现客户端服务发现与服务器端服务发现,但我不太确定.
cloud web-services distributed-computing amazon-web-services microservices
如果我错了,请纠正我,但我的理解是Hadoop不使用MPI进行不同节点之间的通信.
这有什么技术原因?
我可能会冒一些猜测,但我不知道MPI如何在"引擎盖下"实施,以了解我是否正确.
想想看,我对Hadoop的内部结构也不是很熟悉.我在概念层面理解框架(map/combine/shuffle/reduce以及它如何在高级别工作),但我不知道细节的实现细节.我一直认为Hadoop 通过TCP连接传输序列化数据结构(可能是GPB),例如在混洗阶段.如果不是这样,请告诉我.
有没有办法RDD在spark中连接两个不同s的数据集?
要求是 - 我使用具有相同列名的scala创建两个中间RDD,需要组合这两个RDD的结果并缓存访问UI的结果.如何在此处组合数据集?
RDD属于类型 spark.sql.SchemaRDD
scala distributed-computing apache-spark rdd apache-spark-sql
我有很多备用的intel linux服务器(数百个),并希望在Web托管和文件共享环境中将它们用于分布式文件系统.这不适用于HPC应用程序,因此高性能并不重要.主要要求是高可用性,如果一台服务器脱机,存储在其硬盘上的数据仍可从其他节点获得.它必须通过TCP/IP运行并提供标准POSIX文件权限.
我看了下面的内容:
Lustre(http://wiki.lustre.org/index.php?title=Main_Page):非常接近,但它不为节点上的数据提供冗余.您必须使用RAID或DRBD创建数据HA.在Sun和Open Source的支持下,它应该存在一段时间
gfarm(http://datafarm.apgrid.org/):看起来它提供了冗余,但代价是复杂性和可维护性.不像Lustre那样得到支持.
有没有人对这些或任何其他可能有效的系统有任何经验?
最近我发现了像Apache Mesos这样的东西.
在所有演示和示例中,这一切看起来都令人惊讶.我可以很容易想象一个人如何竞选无国籍的工作 - 这自然适合整个想法.
Bot如何处理有状态的长期工作?
说,我有一个由N台机器组成的集群(通过Marathon安排).我想在那里运行一个postgresql服务器.
就是这样 - 起初我甚至不希望它具有高可用性,而只是一个托管postgresql服务器的单个作业(实际上是Dockerized).
1-如何组织它?将服务器约束到特定的群集节点?使用一些分布式FS?
2- DRBD,MooseFS,GlusterFS,NFS,CephFS,其中一个与Mesos和postgres等服务配合良好?(我在这里想到Mesos /马拉松可能会重新定位服务,如果下降)
3-请说明我的方法在哲学方面是否错误(数据服务器的DFS和Mesos顶部的postgres等服务器的某种切换)
问题很大程度上是从Apache Mesos的持久存储中复制的,zerkms在Programmers Stack Exchange上提出了这个问题.
我正在尝试找到一种将我的Spark Job的结果保存为csv文件的有效方法.我正在使用Spark和Hadoop,到目前为止我的所有文件都保存为part-00000.
任何想法如何使我的火花保存到具有指定文件名的文件?
apache-spark ×5
hadoop ×2
scala ×2
cloud ×1
csv ×1
file ×1
filesystems ×1
linux ×1
mesos ×1
mesosphere ×1
mpi ×1
postgresql ×1
rdd ×1
tcp ×1
web-services ×1