小编Rom*_*nko的帖子

如何打印pthread_t

搜索过,但没有遇到令人满意的答案.

我知道没有一种可移植的方式来打印pthread_t.

你是如何在你的应用程序中做到的?

更新:

其实我不需要pthread_t,而是一些小的数字id,在调试消息中识别不同的线程.

在我的系统(64位RHEL 5.3)上,它被定义为unsigned long int,因此它是大数字,只是打印它在调试行中占有一席之地.gdb如何分配短时间?

c c++ linux pthreads

50
推荐指数
4
解决办法
10万
查看次数

如何在Java中获取数组的子数组,而不复制数据?

我有一些类库,使用我的数据,它被读入缓冲区.有可能以某种方式避免一次又一次地复制数组,将部分数据更深入地传递到处理方法中吗?好吧,这听起来很奇怪,但在我的特殊情况下,有一个特殊的编写器,它将数据分成块并将它们分别写入不同的位置,因此它只执行System.arraycopy,获得它需要的东西并调用底层编写器,用新的子阵列.这种情况多次发生.重构此类代码的最佳方法是什么?

java arrays containers

48
推荐指数
3
解决办法
7万
查看次数

Maven程序集插件警告"程序集描述符包含文件系统 - 根相对引用"

从一些程序集插件版本maven build开始发出以下警告:

[警告]程序集描述符包含一个filesystem-root相对引用,它不是跨平台兼容的/

是否有任何推荐的即用型解决方案?直接谷歌搜索为我提供了大量的垃圾,没有真正的帮助.重新检查Maven程序集插件帮助没有为我提供答案,也许其他人有更好的搜索技能,可以提供帮助.

UPDATE

是的,这可能是因为类似于Linux,outputDirectory但我应该如何重写它以便携带?查看程序集插件文档,但未找到任何可移植性指南.

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>/</outputDirectory>
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)

cross-platform maven-3 maven maven-assembly-plugin

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

hdfs权限被拒绝

我是hadoop分布式文件系统的新手,我已经在我的机器上完成了hadoop单节点的安装.但是之后当我要将数据上传到hdfs时,它会给出一条错误消息Permission Denied.

来自终端的消息带命令:

hduser@ubuntu:/usr/local/hadoop$ hadoop fs -put /usr/local/input-data/ /input
put: /usr/local/input-data (Permission denied)

hduser@ubuntu:/usr/local/hadoop$ 
Run Code Online (Sandbox Code Playgroud)

使用sudo并在sudouser中添加hduser后:

hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop fs -put /usr/local/input-data/ /inwe
put: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hduser:supergroup:rwxr-xr-x

hduser@ubuntu:/usr/local/hadoop$ 
Run Code Online (Sandbox Code Playgroud)

security permissions shell hadoop hdfs

41
推荐指数
5
解决办法
10万
查看次数

如何跳过SBT构建中的测试?

我有一个SBT 0.7.5项目,它的一些测试用例失败了.在修复所有测试用例之前,我想跳过测试来生成JAR.是否有任何命令行参数告诉SBT跳过所有测试,比如Maven的-Dmaven.test.skip=true标志?

scala sbt

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

在Linux上等待多个条件变量而没有不必要的睡眠?

我正在编写一个对延迟敏感的应用程序,它实际上想要一次等待多个条件变量.我之前已经阅读了几种在Linux上获得此功能的方法(显然这是在Windows上构建的),但它们似乎都不适合我的应用程序.我所知道的方法是:

  1. 让一个线程等待你想要等待的每个条件变量,当被唤醒时会发出一个你等待的单个条件变量.

  2. 通过定时等待循环遍历多个条件变量.

  3. 将虚拟字节写入文件或管道,然后轮询这些字节.

#1和#2不合适,因为它们会造成不必要的睡眠.使用#1,你必须等待虚拟线程唤醒,然后发出真实线程的信号,然后唤醒真正的线程,而不是真正的线程刚刚开始唤醒 - 额外的调度程序量子花费在这实际上对我的应用程序很重要,我宁愿不必使用完整的RTOS.#2更糟糕的是,你可能花费N*超时时间睡眠,或者你的超时将是0,在这种情况下你永远不会睡觉(无休止地烧掉CPU和饿死其他线程也很糟糕).

对于#3,管道是有问题的,因为如果"发出信号"的线程忙或甚至崩溃(我实际上处理的是单独的进程而不是线程 - 互斥和条件将存储在共享内存中),那么写入线程将被卡住,因为管道的缓冲区将是满的,任何其他客户端也是如此.文件存在问题,因为应用程序运行的时间越长,它就会无休止地增长.

有一个更好的方法吗?对于适用于Solaris的答案感到好奇.

c multithreading scheduling pthreads conditional-statements

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

如何设置Spark执行器的数量?

我如何配置Java(或Scala)代码量的执行程序有SparkConfigSparkContext?我经常看到2个执行者.看起来spark.default.parallelism不起作用,是关于不同的东西.

我只需要将执行程序的数量设置为等于群集大小,但总是只有2个.我知道我的簇大小.如果这很重要,我会在YARN上运行.

java scala cluster-computing hadoop-yarn apache-spark

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

HBase独立无法连接(无法创建表)

我试图在本文之后以独立模式部署Hbase:http://hbase.apache.org/book.html#quickstart .版本是0.92.1-cdh4.1.2

但是在尝试创建表时我遇到了这些错误:

错误信息:

    13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1021)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)
Run Code Online (Sandbox Code Playgroud)

输出日志:

13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 10231@localhost
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to …
Run Code Online (Sandbox Code Playgroud)

java hadoop hbase nosql apache-zookeeper

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

PMD将每个循环的Java标记为UR异常

我想确认这是否是PMD的错误?如果是,我如何提交票证.

    public static void main(final String[] args) {
        for (final String string : args) {
            string.getBytes(); //UR Anomaly
        }
        for (int i = 0; i < args.length; i++) {
            args[i].getBytes();
        }
    }
Run Code Online (Sandbox Code Playgroud)

第1-3行被标记为UR异常,而重写它以使用局部变量进行迭代很好.

想要消除尽可能多的PMD违规,但不得不求助于旧的循环结构作为一种解决方法.

虽然有争议,但我不希望禁用此规则,因为我发现DD,并且DU异常标记为有用.

java code-analysis for-loop static-analysis pmd

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

如果密钥存在,则在Scala映射中向元素添加数字的好方法或不插入新元素

我知道几个类似的问题.它们对我没有帮助 - 如果没有现有密钥,代码就不起作用.

我只需要一些很好的方法来附加Map,将值添加到现有密钥(如果它确实存在)或将其作为新密钥(如果map不包含适当的密钥).

以下代码有效,但我不喜欢它:

val a = collection.mutable.Map(("k1" -> 1), ("k2" -> 5))
val key = "k1"

val elem = a.get(key)
if (elem == None) {
    a += ("k5" -> 200)
} else {
    a.update(key, elem.get + 5)
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的一点?当前的Scala版本是2.10.4,我目前无法切换到2.11.可变图不是100%限制,而是优选的.

例如,这是类似的问题,但我还需要考虑不存在的那个不存在的密钥的情况.至少我们应该理解a.get(key)可能是None或添加一些更好的方法.好主意|+|但是我想保留基本的Scala 2.10.x.

containers dictionary scala

13
推荐指数
3
解决办法
9643
查看次数