小编Mik*_*kia的帖子

两阶段提交

我相信大多数人都知道2PC(两阶段提交协议)是什么以及如何在Java或大多数现代语言中使用它.基本上,当您有2个或更多DB时,它用于确保事务处于同步状态.

假设我有两个DB(A和B)在两个不同的位置使用2PC.在A和B准备提交事务之前,两个DB都将向事务管理器报告,说它们已准备好提交.因此,当事务管理器被确认时,它将向A和B发送信号,告诉它们继续.

这是我的问题:让我们说A收到信号并提交交易.一切都完成后,B即将做同样的事情,但有人拔掉电源线,导致整个服务器关闭.当B重新上线时,B会做什么?B怎么做呢?

记住,A是承诺但B不是,我们正在使用2PC(因此,2PC的设计停止工作,不是吗?)

database distributed-transactions

58
推荐指数
1
解决办法
3万
查看次数

使用Apache Spark作为Web应用程序的后端

我们在HDFS中存储了数TB的数据,包括客户数据和行为信息.业务分析师希望使用过滤器对这些数据进行切片和切割.

这些过滤器类似于Spark RDD过滤器.过滤器的一些例子是: age > 18 and age < 35,date between 10-02-2015, 20-02-2015,gender=male,country in (UK, US, India),等我们要整合我们的JSF这个过滤器功能(或播放)的Web应用程序.

分析师希望通过应用/删除过滤器进行实验,并验证最终过滤数据的计数是否符合要求.这是一次重复练习,使用此Web应用程序的最大人数可能在100左右.

我们计划使用Scala作为实现过滤器的编程语言.Web应用程序将在服务器的负载处初始化单个SparkContext,并且每个过滤器将重用相同的SparkContext.

Spark是否适用于通过Web应用程序进行交互式查询的用例.另外,共享一个SparkContext的想法,这是一种解决方法吗?另一个替代方案是Apache Hive with Tez引擎使用ORC压缩文件格式,并使用JDBC/Thrift查询.对于给定的工作,这个选项比Spark更好吗?

hadoop scala apache-spark

11
推荐指数
1
解决办法
1万
查看次数

Spark:减少没有.输出文件

我编写了一个模拟现有Map Reduce作业功能的Spark程序.MR工作每天大约需要50分钟,但Spark工作只用了9分钟!那很棒!

当我查看输出目录时,我注意到它创建了1,020个部分文件.MR作业仅使用20个减速器,因此它只创建20个文件.我们需要减少输出文件的数量; 否则我们的命名空间很快就会满了.

我试图找出如何减少Spark下的输出文件数量.似乎有1,020个任务被触发,每个任务都会创建一个零件文件.它是否正确?我是否必须更改并行度以减少否.因此减少了任务.输出文件?如果是这样我该怎么设置呢?我恐怕不会减少.任务会减慢这个过程 - 但我可以测试一下!

apache-spark

10
推荐指数
1
解决办法
6210
查看次数

Apache Spark中的Zip支持

我看了一下星火对的支持gzip的 -kind输入文件在这里,我不知道如果同样支持不同类型的压缩文件,如存在.ZIP文件.到目前为止,我已经尝试计算压缩在zip文件下的文件,但Spark似乎无法成功读取其内容.

我已经采取了外观的HadoopnewAPIHadoopFilenewAPIHadoopRDD,但到目前为止,我还没有能够得到任何工作.

此外,Spark支持为指定文件夹下的每个文件创建分区,如下例所示:

SparkConf SpkCnf = new SparkConf().setAppName("SparkApp")
                                  .setMaster("local[4]");

JavaSparkContext Ctx = new JavaSparkContext(SpkCnf);

JavaRDD<String> FirstRDD = Ctx.textFile("C:\input\).cache();
Run Code Online (Sandbox Code Playgroud)

where C:\input\指向具有多个文件的目录.

在计算压缩文件的情况下,是否也可以将每个文件打包在一个压缩文件下,并按照每个文件一个分区的相同模式?

compression zip apache-spark

9
推荐指数
2
解决办法
2万
查看次数

使用Apache Spark进行开发

我是Spark的新手,我想问一些关于开发和测试Apache Spark框架代码的常用指南

  1. 在本地测试我的代码最常用的设置是什么?是否有任何内置虚拟机(准备好的盒子等)?我必须设置本地火花吗?有没有测试我的代码的测试库?

  2. 进入群集模式时,我注意到有一些方法可以设置群集; 生产方面,设置集群运行Spark的最常用方法是什么?这里有三个选择

    • 独立群集设置
    • 随着YARN
    • 使用MESOS

谢谢

java apache-spark

8
推荐指数
1
解决办法
2493
查看次数

Spark实际上将RDD保存在磁盘上的哪个位置?

我坚持用在不同的存储层次,但我发现对性能没有区别,我用的时候MEMORY_ONLYDISK_ONLY.

我认为我的代码可能有问题...我在哪里可以找到磁盘上的持久RDD,以便我可以确保它们实际上是持久存在的?

apache-spark

7
推荐指数
1
解决办法
6523
查看次数

RStudio中sparkR.init(master ="local")中的SparkR错误

我已经将Spark发行版中的SparkR软件包安装到R库中.我可以调用以下命令,它似乎正常工作:library(SparkR)

但是,当我尝试使用以下代码获取Spark上下文时,

sc <- sparkR.init(master="local")
Run Code Online (Sandbox Code Playgroud)

一段时间后,它会因以下消息而失败:

Error in sparkR.init(master = "local") :
   JVM is not ready after 10 seconds
Run Code Online (Sandbox Code Playgroud)

我已经设置了JAVA_HOME,我有一个工作的RStudio,我可以访问其他软件包,如ggplot2.我不知道为什么它不起作用,我甚至不知道在哪里调查这个问题.

rstudio apache-spark sparkr

7
推荐指数
1
解决办法
2156
查看次数

Spark中的Hadoop DistributedCache功能

我正在寻找类似于Spark中Hadoop的分布式缓存的功能.我需要一个相对较小的数据文件(带有一些索引值)才能存在于所有节点中以进行一些计算.是否有任何方法可以在Spark中实现这一点?

到目前为止,我的解决方法是将索引文件作为正常处理进行分发和缩减,在我的应用程序中大约需要10秒.之后,我将文件持久化,指示它为广播变量,如下所示:

JavaRDD<String> indexFile = ctx.textFile("s3n://mybucket/input/indexFile.txt",1);
ArrayList<String> localIndex = (ArrayList<String>) indexFile.collect();    

final Broadcast<ArrayList<String>> globalIndex = ctx.broadcast(indexVar);
Run Code Online (Sandbox Code Playgroud)

这使程序能够理解变量globalIndex包含的内容.到目前为止它是一个可能适合我的补丁,但我认为它不是最好的解决方案.对于相当大的数据集或大量变量,它仍然有效吗?

注意:我正在使用位于多个EC2实例的独立群集上运行的Spark 1.0.0.

hadoop distributed-cache distribute apache-spark

6
推荐指数
1
解决办法
4011
查看次数

在HDInsight群集上远程执行Spark作业

我试图从Microsoft Azure自动在HDInsight群集上启动Spark作业.我知道有几种方法可以自动化Hadoop作业提交(由Azure本身提供),但到目前为止,我还没有找到一种方法来远程运行Spark作业,而无需使用主实例设置RDP.

有没有办法实现这个目标?

remote-access azure hdinsight apache-spark

6
推荐指数
1
解决办法
2977
查看次数

错误YarnClientSchedulerBackend:要求删除不存在的执行程序21

我第一次跑的时候

lines = sc.textFile(os.path.join(folder_name),100)
Run Code Online (Sandbox Code Playgroud)

然后

parsed_lines=lines.map(lambda line: parse_line(line, ["udid"])).persist(StorageLevel.MEMORY_AND_DISK).groupByKey(1000).take(10)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

...
ERROR YarnClientSchedulerBackend: Asked to remove non-existent executor 21
...
WARN TaskSetManager: Lost task 0.1 in stage 11.7 (TID 1151, <machine name>): FetchFailed(null, shuffleId=0, mapId=-1, reduceId=896, message=
org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0
Run Code Online (Sandbox Code Playgroud)

我尝试更改以下参数以及groupbykey中的拆分数和textFile函数中的分区数.

conf.set("spark.cores.max", "128")
conf.set("spark.akka.frameSize", "1024")
conf.set("spark.executor.memory", "6G")
conf.set("spark.shuffle.file.buffer.kb", "100")
Run Code Online (Sandbox Code Playgroud)

我不确定如何根据工人的能力,输入大小和我将应用的转换来决定这些参数.

configuration apache-spark

5
推荐指数
1
解决办法
1291
查看次数