小编jav*_*ett的帖子

关闭tomcat服务器时无法加载org.apache.hadoop.util.ShutdownHookManager

我有一个在tomcat上运行的简单Web应用程序.此Web应用程序将文件读​​写到HDFS.

我面临的问题是每次我使用停止服务器./bin/shutdown.sh.我无法加载hadoop shutdownHookManager异常.

我确定hadoop-common(包含ShutDownManager)在tomcat类路径中.

谁能帮我吗?

我得到的例外:

Oct 14, 2013 5:57:54 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [com.ebay.kernel.calwrapper.CalTransactionHelper$1] (value [com.ebay.kernel.calwrapper.CalTransactionHelper$1@3d5a1c5f]) and a value of type [com.ebay.kernel.calwrapper.CalTransactionHelper.Stack] (value [[]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Oct 14, 2013 5:57:54 PM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Oct 14, 2013 5:57:54 …
Run Code Online (Sandbox Code Playgroud)

java tomcat hadoop shutdown-hook

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

hadoop datanode无法启动。“不包含有效的host:port权限”

我目前正在使用hadoop 1.2.1(因为我需要运行仅支持该版本的空间处理软件)。我正在尝试以一个主节点和三个从节点的多节点模式进行部署。

我确定我可以在没有密码(包括他们自己)的所有主机和从机之间切换。每个节点上的主机名也正确。每个节点共享相同的主机文件:

192.168.56.101 master
192.168.56.102 slave1
192.168.56.103 slave2
192.168.56.104 slave3
Run Code Online (Sandbox Code Playgroud)

我在slaves节点上一直有问题,错误日志信息如下,

2015-05-21 23:39:16,841 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: file:///
    at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:164)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:212)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:244)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:236)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:359)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:321)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1712)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1651)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1669)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1795)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:181
Run Code Online (Sandbox Code Playgroud)

core-site.xml中的配置

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在mapred-site.xml中:

<configuration>
    <property>
        <name>mapred.job.tracter</name>
        <value>master:8012</value>  
    </property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在hdfs-site.xml中:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration
Run Code Online (Sandbox Code Playgroud)

xml hadoop

5
推荐指数
2
解决办法
4982
查看次数

Git Smart API 瘦包计算是否可以考虑重用常见的子树?

Q:当 git 推送在Smart Protocol上没有共同历史的 refs 时,是否可以考虑在本地和origin构建 Thin-pack 时发送的根或子树已经是共同的?

tl;博士

在使用和推送到远程 Git 存储库时,请考虑这种(不常见的)情况。

  • 我有一个本地存储库,其中本地master指向具有 1110 个后代子树的树a[0-9]/b[0-9]/c[0-9]
  • 远程origin/master与本地master提交是最新的,即相同的历史记录。它使用ssh协议。
  • 无论出于何种原因,我创建了一个本地分支squashed。我将该分支设置为一个新的单根提交,但与master. 这可以通过git commit-tree. 所以,这个分支具有一个提交与常见,没有提交master,但根椐哈希值是相同的,它指向同一个树对象中masterorigin/master。为了讨论这个问题,这是一个单一/压缩的提交并不重要 - 任何历史重写回根提交,没有共同的历史都可以。
  • git push origin HEAD # push squashed

根据对大型存储库的性能以及发送的对象数量的观察,我怀疑push,send-pack以及receive-pack通过智能协议进行的相关瘦包协商会执行以下操作:

  • 确认被推送的提交squashedorigin当前的任何提交没有共同历史。
  • squashed没有注意到指向一棵树的事实,该树不仅在 中origin,而且是当前HEADref的树。
  • 打包并发送所有内容。

在这种情况下,树是相同的。如果在squashed... …

git git-push

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

在scala中的Seq中添加项目

我正在使用光滑的scala play 2.我有一个Seq喜欢

val customerList: Seq[CustomerDetail] = Seq(CustomerDetail("id", "status", "name"))
Run Code Online (Sandbox Code Playgroud)

我想在此customerList中添加一个CustomerDetail项.我怎样才能做到这一点?我已经试过了

customerList :+ CustomerDetail("1", "Active", "Shougat")
Run Code Online (Sandbox Code Playgroud)

但这没有做任何事情.

scala seq

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

是否可以使用python / pytest来测试测试相关性是否尚未泄漏到真实代码中

TL; DR:如果我使用的pytest还有其他一些仅测试的依赖项,是否可以断言这些仅测试的依赖项没有泄漏到实际的非测试代码中?

在Java中,当我运行测试时,测试本身和被测代码将在不同的类加载器中运行,并且它们的依赖关系在此作用域内。因此,如果无意中引用testng了被测代码,则即使testng正在运行测试,测试也将失败。

可以在Python中实现吗?如果我的非测试代码不小心导入了pytest,我可以抓住它并使测试失败吗?我看不到如何实现这一目标。

虽然setuptoolspip等,使其比较容易保持安装/运行和开发/测试的依赖分开,甚至避免污染当前VENV,他们仍然存在测试运行时。这意味着python setup.py test可以通过模块运行,但是python setup.py install导入该模块之后却很简单。

鉴于: cat setup.py

from setuptools import setup, find_packages

setup(
    name="brettpy",
    version="0.0.1",
    packages=find_packages(),
    setup_requires=["pytest-runner",],
    tests_require=["pytest",],
)
Run Code Online (Sandbox Code Playgroud)

cat setup.cfg

[aliases]
test=pytest
Run Code Online (Sandbox Code Playgroud)

cat brettpy/__init__.py

import pytest
Run Code Online (Sandbox Code Playgroud)

cat tests/test_brettpy.py

def test_import_brettpy():
    import brettpy
    del brettpy

def test_run_main():
    from brettpy import __main__ as main
    main.main()
Run Code Online (Sandbox Code Playgroud)

... python setup.py test将通过,但python setup.py install && python -m brettpy失败:

ModuleNotFoundError: No …
Run Code Online (Sandbox Code Playgroud)

python pytest

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

解决大型项目团队中的冲突

我有兴趣学习解决大团队冲突的最佳方法。

例如,我有一个主分支,团队在其中进行了相当多的更改,然后我正在重新调整来自上游的最新更改(主分支和上游未连接)。我也遇到了冲突。问题在于团队中的某个人更了解如何解决一个文件中的冲突,而其他人则更了解另一个文件中的冲突。

所以问题是:是否可以将未解决的分支推送到远程,等待同事解决本地环境中的冲突并将其推回,然后进行 git rebase --continue。

如果不是,解决这个问题的最佳方法是什么?

git conflict git-rebase merge-conflict-resolution git-branch

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

containsTheSameElementsAs如何在specs2中工作

此代码不匹配.它是否正确?

List(1, List(2, 3, List(4)), 5) must containTheSameElementsAs(List(5, List(List(4), 2, 3), 1))
Run Code Online (Sandbox Code Playgroud)

错误消息如下:

[error]   x be available for elements in a sequence
[error]    List(1, List(2, 3, List(4)), 5)
[error]      is missing: List(List(4), 2, 3)
[error]      must not contain: List(2, 3, List(4)) (specs2test.scala:98)
Run Code Online (Sandbox Code Playgroud)

scala specs2

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

没有weblogic控制台的情况下如何在weblogic中禁用管理端口?

我在weblogic上启用了“管理端口”,并将双向SSL配置为“请求并强制执行客户端证书”,现在我无法通过管理端口访问weblogic控制台,我想在7001以前使用普通端口,但不能:

控制台/管理请求或指定为“ true”的请求只能通过管理通道进行

如何通过WLST或配置文件禁用管理端口?

console weblogic

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