小编pyt*_*nic的帖子

如果在中间阶段发生故障,MapReduce如何从错误中恢复

在Spark中,我知道通过重新计算RDD可以恢复错误,除非缓存了RDD.在这种情况下,计算可以从缓存的RDD开始.

我的问题是,如何在MapReduce框架(例如Apache Hadoop)中恢复错误.让我们说,在洗牌阶段发生故障(在映射之后和在减少之前),如何恢复.是否会再次执行地图步骤.MapReduce中是否存在输出存储在HDFS中的任何阶段,以便计算只能从那里重新启动?那么Map-Reduce之后的Map呢?输出是否存储在HDFS中?

java scala mapreduce apache-spark

2
推荐指数
1
解决办法
2414
查看次数

如何在scala中并行迭代地图?

我有一个如下代码.

var arr = new Array[...](map.size)
var i = 0
for((k,value) <- map)
{
    arr(i) = (k, someFunc(value))
    i += 1
}
Run Code Online (Sandbox Code Playgroud)

我希望这个循环并行执行.例如,我希望它并行运行在8个独立的线程中.我怎样才能在Scala中实现这一目标?

parallel-processing multithreading scala

2
推荐指数
1
解决办法
759
查看次数

如何删除 TortoiseGit 中的 URL 历史记录?

当您打开 TortoiseGit 克隆存储库时,在克隆现有存储库下,它会用之前已经克隆的存储库填充 URL 下拉菜单。但是,我想清理这段历史。我怎样才能做到这一点?我这样做的原因是因为我使用的是公司的笔记本电脑,现在我想删除上面的所有内容。我已经成功地从那里删除了我的 git 凭据。

git tortoisegit

2
推荐指数
1
解决办法
596
查看次数

计算大型CRC32的正确方法是什么?

这里是介绍如何使用现代的x86-64处理器中内置的CRC32指令来计算最大1024个字节CRC32的文章.但是,我需要计算超过1024字节的CRC32.计算每个1024字节块的CRC32并最终求和它们是否是正确的方法,还是不正确?如果是这样,那么正确的方法是什么?

c crc32 sse x86-64

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

从strace输出中提取唯一的系统调用名称(通过正则表达式?)

我有一个由strace生成的文件,其中包含所有系统调用.现在我想得到所有系统调用的名称.因此,如果我已经mprotect列出了4次,我只需要列出它1次,也就是说我只需要列出唯一的系统调用.

想到的一种方法是使用python或支持解析正则表达式的任何其他语言的正则表达式,以首先查看所有系统调用,然后消除重复项.为此,我首先尝试使用notepad ++的搜索功能测试我的正则表达式.我想要匹配这样的东西,blah(.为此,我设计了以下正则表达式

[a-zA-Z_](

但记事本一无所获.您认为正确的正则表达式是什么?

c python regex linux notepad++

1
推荐指数
2
解决办法
728
查看次数

这足以检测竞争条件吗?

假设我有一个多线程应用程序,我使用相同的输入运行它.是否足以检测每个加载和存储以检测写入和写入读取数据竞争?我的意思是从记录的加载和存储地址,如果我们可以看到哪个线程执行了哪个加载以及哪个线程执行哪个存储,我们可以通过注意重叠的地址来检测写入读取和写入写入数据.或者我错过了什么?

c linux gcc

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

压缩递增数据的最佳方法

我有一个向量,我保持递增数据.通常,向量的每个元素都是64位长的变量.然而,很可能两个连续元素之间的差异非常小,因此例如我们可以具有如下序列.

1, 34, 37, 42, 45, 1098, 1200, 1211, 1938
Run Code Online (Sandbox Code Playgroud)

压缩此数据的最佳方法是什么?保持差异是理想的,并且有一个标题字节来定义差异有多大,是否只是一个字节,字,双字等,还是有更好的方法来压缩这些增量数据?

编辑

我需要在线压缩,即将数据放入向量中.您可以假设动态扩展矢量.

c compression x86-64

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

pthread_create导致分段错误

我的程序包含以下代码.

pthread_t PThreadTable[32];

 for (i=1; i<P; i++) // Checked with P = 4 
    {
        long    i, Error;

        printf( "pthread_create %d!\n", i );
        Error = pthread_create(&PThreadTable[i], NULL, 
          (void * (*)(void *))(SlaveStart), NULL);
        if (Error != 0) 
        {
            printf("Error in pthread_create().\n");
            exit(-1);
        }
    }

 SlaveStart();
Run Code Online (Sandbox Code Playgroud)

代码在调用时给出了分段错误pthread_create(通过gdb和检查valgrind).为什么这样?

c linux gcc segmentation-fault

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

未定义引用'some_function'?

我正在尝试编译一个C++程序,它给了我这个错误.

undefined reference to 'some_function'
Run Code Online (Sandbox Code Playgroud)

而我确实添加了包含some_function在makefile中的文件.另外,我some_function在我使用它的文件中包含声明.那么为什么编译器仍抱怨它无法找到呢?可能的原因是什么?

我的makefile就是这样的

CXX = g++
CXXFILES = dlmalloc.c pthreads.cpp queue.cpp 

CXXFLAGS = -O3 -o prog -rdynamic -D_GNU_SOURCE
LIBS = -lpthread -ldl

all:
    $(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS)

clean:
    rm -f prog *.o
Run Code Online (Sandbox Code Playgroud)

some_functiondlmalloc.c内部定义并在内部使用pthreads.cpp.是否与dlmalloc.cC源代码文件有关,其他是C++文件.也许我应该在这里使用extern "C"关键字some_function,对吗?

c c++ linux gcc x86-64

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

scala中最简单的多线程形式

所以,我有一部分代码如下所示.

for(a <- 0 until segments)
{
    // do something with elements at index a
}
Run Code Online (Sandbox Code Playgroud)

什么是最简单的多线程类型,它允许我在一个单独的线程中执行该循环的每个元素.我还有每个线程需要访问的全局集合(由a索引).我在互联网上看到的只是期货和演员,但它们很难掌握.我想要一些像OpenMP一样简单的东西.

我试过以下,但它给了我错误,';' expected but '.' found. }} thread.start.

for (a <- 0 until segments) {
    val thread = new Thread {
        override def run {
            // do something with elements at index a
        }} thread.start
}
Run Code Online (Sandbox Code Playgroud)

scala bigdata apache-spark

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