小编sch*_*mmd的帖子

Hive在安装时不起作用

执行任何命令时,我在Hive中收到以下错误.

hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
Run Code Online (Sandbox Code Playgroud)

这是在hive.log中.

2011-07-27 19:10:57,526 ERROR exec.DDLTask (SessionState.java:printError(343)) - FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
org.apache.hadoop.hive.ql.metadata.HiveException: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1028)
        at org.apache.hadoop.hive.ql.metadata.Hive.databaseExists(Hive.java:1013)
        at org.apache.hadoop.hive.ql.exec.DDLTask.showTables(DDLTask.java:1691)
        at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:289)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1063)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:900)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:748)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:164)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at …
Run Code Online (Sandbox Code Playgroud)

hadoop hive

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

为什么maven在我的本地存储库之前使用我的内部存储库?

当我在进行开发时,我经常需要更改依赖项,但我还没准备好部署我的更改.例如,我正在研究项目Foo,我意识到我需要向公共库添加一个方法.在将此更改部署到我们的内部存储库之前,我想将更改安装到公共库(mvn install)并重新编译Foo以使用本地存储库中的公共库(请注意,我使用的是所有SNAPSHOT版本).

但是,在mvn install我的公共库之后,当我重新编译Foo时,它不使用新的公共库 - 它继续使用内部存储库中最新的SNAPSHOT公共库.如果我部署更改的公共库,Foo会立即选择它.

如何让maven首先在本地存储库中查找?

更新:当文件安装到本地存储库时,它会得到一个名称foo-1.0.0-SNAPSHOT.jar,但是当我部署它时,它会得到一个时间戳foo-1.0.0-20111104.191316-23.jar.我想这就是为什么每次都会拉动远程工件.知道为什么mvn install不工作mvn deploy?是否与我为部署设置快照存储库这一事实有关?

maven-2 maven

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

在Play 2.0 Scala Framework中呈现时间页面

是否有可能在Play Framework中测量页面呈现所需的时间 - 或者至少是将页面发送到客户端所需的时间?

scala playframework playframework-2.0

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

我如何知道使用 SLURM 为作业分配了哪些 GPU?

例如,我可以在 slurm 上运行作业,srun --gpus=2它将设置CUDA_VISIBLE_DEVICES为分配的 GPU。但是我知道没有这样的方法来检查哪些 GPU SLURM 分配了特定的作业。如果我运行scontrol show job它会显示类似的内容TresPerJob=gpu:2,但它不包含分配的实际 GPU。

我在哪里可以找到这些信息?换句话说,我如何查找分配了哪些 GPU 作业n ?

slurm

6
推荐指数
2
解决办法
9741
查看次数

用 Java 读取 XML 元素列表

我想迭代一个 XML 文档,该文档本质上是一个结构相同的 XML 元素的列表。这些元素将被序列化为 Java 对象。

<root>
    <element attribute="value" />
    <element attribute="value" />
    <element attribute="value" />
    ...
</root>
Run Code Online (Sandbox Code Playgroud)

根元素中有很多元素。我不想将它们全部加载到内存中。我意识到我可以为此使用 SAX 处理程序,但使用 SAX 处理程序将所有内容反序列化为 Java 对象似乎相当迟钝。我发现 JDOM 非常容易使用,但据我所知,JDOM 总是解析整个树。有没有一种方法可以使用 JDOM 一次解析一个子元素?

使用 JDOM 的另一个原因是它使得为相应的 Java 对象编写序列化/反序列化代码变得容易,如果不完全在内存中,这些代码就毫无意义。但是,我不想同时将所有 Java 对象加载到内存中。相反,我想对它们进行一次迭代。

更新:以下是如何在 dom4j 中执行此操作的示例:http://docs.codehaus.org/display/GROOVY/Reading+XML+with+Groovy+and+DOM4J。无论如何要在 jdom 中执行此操作吗?

java xml

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

使用任何Monoid的键对值进行分组

我想写一个方法mergeKeys,Iterable[(K, V)]通过键将值组合在一起.例如,我可以写:

  def mergeKeysList[K, V](iter: Iterable[(K, V)]) = {
     iter.foldLeft(Map[K, List[V]]().withDefaultValue(List.empty[V])) {
        case (map, (k, v)) =>
          map + (k -> (v :: map(k)))
     }
  }
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够使用any Monoid而不是编写方法List.例如,值可能是整数,我想要对它们求和,而不是将它们附加到列表中.或者它们可能是元组(String, Int),我想在集合中累积字符串但添加整数.我怎么写这样的方法?或者还有什么我可以在scalaz中使用它来完成这项工作?

更新:我没有想象的那么遥远.我有点接近,但如果值是元组,我仍然不知道如何使它工作.我是否需要编写另一个隐式转换?即,每个类型参数的一个隐式转换?

sealed trait SuperTraversable[T, U, F[_]]
extends scalaz.PimpedType[TraversableOnce[(T, F[U])]] {
  def mergeKeys(implicit mon: Monoid[F[U]]): Map[T, F[U]] = {
    value.foldLeft(Map[T, F[U]]().withDefaultValue(mon.zero)) {
      case (map, (k, v)) =>
        map + (k -> (map(k) |+| v))
    }
  }
}

implicit def superTraversable[T, U, F[_]](
  as: …
Run Code Online (Sandbox Code Playgroud)

monads scala scalaz monoids

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

解除节点是否会从该节点中删除数据?

在Hadoop中,如果我停用一个节点,Hadoop将在整个群集中重新分发文件,以便正确复制它们.是否会从已退出的节点中删除数据?

我试图平衡特定节点上的磁盘数据.我计划通过解除节点然后重新组合节点来做到这一点.在退役完成后,是否需要从该节点删除数据,或者仅仅重新安装它(将其从排除文件中删除并运行hadoop dfsadmin -refreshNodes)是否足够?

更新:它为我解除节点,删除该节点上的所有数据,然后重新安装它.

hadoop

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

添加凭据以允许Travis-CI使用专用的Nexus存储库

我正在使用Travis进行持续集成.但是,我的项目依赖于私有的Nexus存储库.我宁愿不将sbt凭证签入我们的存储库.Travis确实支持加密密钥,但它们只影响环境变量.

如何让Travis对Nexus进行身份验证? sbt似乎不支持环境变量的凭据.

https://github.com/sbt/sbt/blob/0.13/launch/src/main/scala/xsbt/boot/Update.scala#L56

看起来支持从环境变量指定凭证文件,或将凭证指定为系统属性.不幸的是,这似乎没有用0.13.

sbt -Dsbt.boot.realm="Sonatype Nexus Repository Manager" -Dsbt.boot.host="www.there.com" -Dsbt.boot.user="deployment" -Dsbt.boot.password="password" aether-deploy
Run Code Online (Sandbox Code Playgroud)

nexus sbt travis-ci

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

如何使用 Slurm 获得交互式会话?

我找到了对srun --pty bash -i(请参阅https://slurm.schedmd.com/faq.html#prompt)的引用,但是当我在集群上运行它时,它会立即退出。

$ srun --pty bash -i
$ squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
               1  team     bash schmmd  R       0:02      1 team-server1
Run Code Online (Sandbox Code Playgroud)

我可以通过 获得交互式会话srun bash,但我没有 shell 提示符(例如$),并且我的会话如下所示:

$ srun bash
ls
miniconda3
Miniconda3-latest-Linux-x86_64.sh
test
Run Code Online (Sandbox Code Playgroud)

我的安装是否配置错误,或者我应该运行不同的命令?

$ srun --version
slurm 19.05.0
Run Code Online (Sandbox Code Playgroud)

slurm

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

未设置 --gpus 时防止 SLURM 中的 GPU 使用

我们正在使用 SLURM 来管理一个小型内部部署集群。我们正在管理的一个关键资源是 GPU。当用户经由请求的GPU--gpus=2CUDA_VISIBLE_DEVICES环境变量被设置与所述GPU SLURM分配给用户。

$ srun --gpus=2 bash -c 'echo $CUDA_VISIBLE_DEVICES'
0,1
Run Code Online (Sandbox Code Playgroud)

我们有一个小团队,可以相信我们的用户不会滥用系统(他们很容易覆盖环境变量),所以这很好用。但是,意外绕过它有点太容易了,因为何时--gpus未指定$CUDA_VISIBLE_DEVICES未设置,因此用户可以使用任何 GPU(我们通常使用 PyTorch)。

换句话说,以下命令可以正常工作(只要它位于 GPU 节点上),但我希望它失败(因为没有请求 GPU)。

srun sudo docker run -e CUDA_VISIBLE_DEVICES --runtime=nvidia pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime python -c 'import torch; print(torch.tensor([1., 2.], device=torch.device("cuda:0")))'
Run Code Online (Sandbox Code Playgroud)

如果$CUDA_VISIBLE_DEVICES设置为,它将失败-1

$ CUDA_VISIBLE_DEVICES=-1 sudo docker run -e CUDA_VISIBLE_DEVICES --runtime=nvidia pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime python -c 'import torch; print(torch.tensor([1., 2.], device=torch.device("cuda:0")))'
THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1556653099582/work/aten/src/THC/THCGeneral.cpp line=51 error=38 : no CUDA-capable device is detected
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

slurm pytorch

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