执行任何命令时,我在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) 当我在进行开发时,我经常需要更改依赖项,但我还没准备好部署我的更改.例如,我正在研究项目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
?是否与我为部署设置快照存储库这一事实有关?
是否有可能在Play Framework中测量页面呈现所需的时间 - 或者至少是将页面发送到客户端所需的时间?
例如,我可以在 slurm 上运行作业,srun --gpus=2
它将设置CUDA_VISIBLE_DEVICES
为分配的 GPU。但是我知道没有这样的方法来检查哪些 GPU SLURM 分配了特定的作业。如果我运行scontrol show job
它会显示类似的内容TresPerJob=gpu:2
,但它不包含分配的实际 GPU。
我在哪里可以找到这些信息?换句话说,我如何查找分配了哪些 GPU 作业n ?
我想迭代一个 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 中执行此操作吗?
我想写一个方法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) 在Hadoop中,如果我停用一个节点,Hadoop将在整个群集中重新分发文件,以便正确复制它们.是否会从已退出的节点中删除数据?
我试图平衡特定节点上的磁盘数据.我计划通过解除节点然后重新组合节点来做到这一点.在退役完成后,是否需要从该节点删除数据,或者仅仅重新安装它(将其从排除文件中删除并运行hadoop dfsadmin -refreshNodes
)是否足够?
更新:它为我解除节点,删除该节点上的所有数据,然后重新安装它.
我正在使用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) 我找到了对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 来管理一个小型内部部署集群。我们正在管理的一个关键资源是 GPU。当用户经由请求的GPU--gpus=2
的CUDA_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)