小编Dav*_*aro的帖子

在reduce阶段之后合并输出文件

在mapreduce中,每个reduce任务将其输出写入名为part-r-nnnnn的文件,其中nnnnn是与reduce任务关联的分区ID.map/reduce是否合并这些文件?如果有,怎么样?

hadoop mapreduce

74
推荐指数
4
解决办法
7万
查看次数

什么是mrunit的继任者?

今天我发现ASF退役了mrunit(参见https://blogs.apache.org/foundation/entry/the_apache_news_round_up85https://issues.apache.org/jira/browse/HADOOP-3733主页本身).除了"不活动"之外没有给出任何理由,所以我想必须有另一种选择吗?

将来应该使用什么代替mrunit来测试mapreduce工作呢?

unit-testing hadoop mapreduce mrunit

16
推荐指数
2
解决办法
1820
查看次数

Scala和Clojure中的简单字符串模板替换

下面是用Scala和Clojure编写的函数,用于简单替换字符串中的模板.每个函数的输入String包含表单模板{key}和从符号/关键字到替换值的映射.

例如:

斯卡拉:

replaceTemplates("This is a {test}", Map('test -> "game"))
Run Code Online (Sandbox Code Playgroud)

Clojure的:

(replace-templates "This is a {test}" {:test "game"})
Run Code Online (Sandbox Code Playgroud)

会回来的"This is a game".

输入映射使用符号/关键字,这样我就不必处理字符串中的模板包含大括号的极端情况.

不幸的是,该算法效率不高.

这是Scala代码:

def replaceTemplates(text: String,
                     templates: Map[Symbol, String]): String = {
  val builder = new StringBuilder(text)

  @tailrec
  def loop(key: String,
           keyLength: Int,
           value: String): StringBuilder = {
    val index = builder.lastIndexOf(key)
    if (index < 0) builder
    else {
      builder.replace(index, index + keyLength, value)
      loop(key, keyLength, value)
    }
  }

  templates.foreach {
    case …
Run Code Online (Sandbox Code Playgroud)

string scala clojure

9
推荐指数
5
解决办法
4283
查看次数

如何在 Git 中合并先前提交的差异

我开始处理一个我认为只需要一次提交的问题,然后我开始在这个问题中包含其他功能和 UI 更改,最终需要 4 次提交左右。我希望立即看到这些提交的所有差异的合并而不会重叠,并且我不确定这样的 git 命令是否存在。

我尝试过git show sha sha sha sha,但它只是显示所有差异,而不是像我想要的那样合并差异。

例如,如果提交 1 添加了一行,而提交 2 删除了同一行,则合并的 diff 甚至不应该提及这行代码,类似地,对于提交 1 和 2 修改的同一行,应该只显示提交 2 的最终编辑。

重要的是要记住,由于多个用户正在提交到同一个存储库,所以所讨论的 4 次提交之间存在多次提交。

git

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

C++ MultiThreading 块主线程

我尝试在 C++ 程序中超时:

  ...
void ActThreadRun(TimeOut *tRun)
{
    tRun->startRun();
}
  ...
void otherFunction()
{
TimeOut *tRun = new TimeOut();
std::thread t1 (ActThreadRun, tRun);
t1.join();    

    while(tRun->isTimeoutRUN())
    {
       manageCycles();
    }
 }
  ...
Run Code Online (Sandbox Code Playgroud)

超时在 3 秒后完成,并tRun->isTimeoutRUN()更改其状态。

但是如果我“ join”线程,我会阻塞程序,所以它会在继续之前等待 3 秒,所以它永远不会进入我的 while 循环......

但是如果我不“ join”线程,线程永远不会超时,tRun->isTimeoutRUN()永远不会改变,所以它会无限运行。

我不擅长线程,所以我在寻求你的帮助,因为我不理解 C++ 中的教程。

c++ multithreading

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

标签 统计

hadoop ×2

mapreduce ×2

c++ ×1

clojure ×1

git ×1

mrunit ×1

multithreading ×1

scala ×1

string ×1

unit-testing ×1