小编ern*_*sto的帖子

查找HDFS正在侦听的端口号

我想访问具有完全限定名称的hdfs,例如:

hadoop fs -ls hdfs://machine-name:8020/user
Run Code Online (Sandbox Code Playgroud)

我也可以简单地访问hdfs

hadoop fs -ls /user
Run Code Online (Sandbox Code Playgroud)

但是,我正在编写应该适用于不同发行版(HDP,Cloudera,MapR等)的测试用例,其中涉及访问具有限定名称的hdfs文件.

据我所知,hdfs://machine-name:8020它在core-site.xml中定义为fs.default.name.但这在不同的发行版上似乎有所不同.例如,hdfs是MapR上的maprfs.IBM BigInsights甚至没有core-site.xml$HADOOP_HOME/conf.

hadoop似乎没有办法告诉我fs.default.name使用它的命令行选项定义了什么.

如何fs.default.name从命令行可靠地获取定义的值?

测试将始终在namenode上运行,因此机器名称很容易.但是获取端口号(8020)有点困难.我试过lsof,netstat ..但仍然找不到可靠的方法.

hadoop hdfs cloudera mapr hortonworks-data-platform

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

如何在不删除Eclipse源的情况下删除Eclipse项目相关文件

每当我们想要创建具有现有源位置的Eclipse项目时,我们将选择现有的源位置(根)作为项目位置.Eclipse将在该源的根目录中创建所有项目特定的文件.

现在,出于某种原因,如果我们想要使用不同的设置重新创建项目,我们应该如何告诉Eclipse不要删除源而是删除所有项目相关的文件?它基本上清理了所有与Eclipse相关的文件.例如,我想在其他IDE中创建项目,是否必须转到项目目录并手动识别所有与Eclipse相关的文件并将其删除?

当我们尝试从Eclipse中删除项目时,我们有两个选择,从项目中删除所有内容(选中复选框时)或保留项目中的所有内容(这只会从项目浏览器中删除项目但保留所有项目根源目录中的相关文件).

每次手动删除项目相关文件都很麻烦.如果无论如何只能从Eclipse中删除与Eclipse相关的项目文件,那将是一件好事.

有什么想法吗?

eclipse eclipse-cdt project

8
推荐指数
2
解决办法
7871
查看次数

在Confluence中将内容从一个页面链接到另一个页面

我们为每个团队提供了一系列Confluence页面,以便记下树叶.每个这样的页面都包含一个包含团队,团队成员名称,月份,周等的表格.

现在我们想要一个合并页面,显示单个页面中所有团队的信息.我们可以创建一个使用所有其他页面内容的合并页面吗?

我读了宏,但无法理解如何使用它们.是否可以动态地使用另一页中一个页面的内容?

confluence

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

Eclipse CDT 中的文本搜索不会显示来自包含路径的结果

我试图在我的 Eclipse CDT 项目中找到某些文本(错误号——它位于注释中)。结果不会显示包含路径中头文件的任何内容,尽管某些头文件包含该文本。

但是,C/C++ 搜索也会在包含路径中找到头文件中的所有符号。不幸的是,我无法从 C/C++ 搜索选项卡进行简单的文本搜索。我知道它用于搜索 C/C++ 术语。

Eclipse CDT 似乎甚至不会索引位于包含路径中的头文件中的普通文本。这是真的?如何让 Eclipse 为包含路径中的普通文本编制索引?

eclipse eclipse-plugin eclipse-cdt

6
推荐指数
0
解决办法
303
查看次数

分区!hadoop怎么做的?使用哈希函数?什么是默认功能?

分区是确定哪个reducer实例将接收哪些中间键和值的过程.每个映射器必须确定reducer将接收它们的所有输出(键,值)对.对于任何键,无论哪个映射器实例生成它,目标分区都是相同的问题是必要的问题:hadoop如何制作它?使用哈希函数?什么是默认功能?

hash hadoop partitioning

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

在jira中使用jaxb api失败的java类:提供者com.sun.xml.bind.v2.ContextFactory未找到

我正在为Jira编写一个插件,它涉及解析XML文档.我正在使用JAXB这样做(XML to pojos,反之亦然)所以有一个类使用JAXB从pojos生成XML.看起来像...

import javax.xml.bind.*;

Class Parser {
  public void m1() {
    ...
    // code which uses classes in javax.xml.bind.*
  }

  public static void main(String args[]){
   Parser p=new Parser();
   p.m1();

  } 
}
Run Code Online (Sandbox Code Playgroud)

提到的包将随JDK发行版(rt.jar)一起提供.所以我没有做任何其他的事情来运行课程.

当我使用'java'从命令行启动它时,它正常工作.但是,当我将它打包为jar并将其作为插件放入Jira时,它会因以下错误而失败

javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:152)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
Run Code Online (Sandbox Code Playgroud)

这是在同一台机器上.只有我能看到的差异不同于从命令行启动,当我在Jira中部署它时,它不是通过实例化调用main()而是调用m1().

我想知道发生了什么!它在同一台机器上.我不知道Jira如何启动应用程序(因为我从命令行启动).

java command-line jaxb launch

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

X11 转发的 Eclipse 右键单击​​问题

我已经在远程 Linux 机器上安装了 Eclipse,并尝试通过 X11 转发从我的 Windows 机器访问它。是的,我们有这样做的要求。

使用 Eclipse (Helios/Indigo/Juno) 时,我遇到了右键单击行为的问题。当我在 Eclipse 中右键单击时,弹出菜单会短暂出现,然后光标附近的任何菜单项都会被选中并执行该操作。如果我按住右键单击,则弹出菜单保持打开状态,我可以选择任何菜单项。当我释放右键单击时,将执行所选的菜单项操作。请注意,在所有这些情况下,从不使用鼠标左键。

为windows尝试了不同的Linux风格(SuSE/Ubuntu)和不同的X11服务器(Xming/Cygwin/VNC),结果是一样的。这只发生在 Eclipse 中,其他应用程序如 firefox 没有这个问题。

这种行为可以部分归因于 Linux 处理鼠标点击的方式,即释放鼠标右键将触发选择。

请注意,在所有情况下,Eclipse 在本地(在本地 Linux 机器上)都没有任何问题,这些问题仅在我们从 Windows 机器远程访问 Eclipse(X11/VNC)时出现。

我不确定问题是否出在 Eclipse 中,因为 Eclipse 在本地运行良好。然后,我不确定问题是否出在 X-server 中,因为其他应用程序(如 firefox)可以远程正常工作。

有任何想法吗?花很多时间在这……!

以下是几个相关链接:

http://devnet.jetbrains.net/message/5246614

http://communities.vmware.com/thread/220037

https://superuser.com/questions/433314/how-do-avoid-context-menu-in-opensuse-to-open-on-mousepress

https://bugzilla.redhat.com/show_bug.cgi?id=542841

https://github.com/linuxmint/Cinnamon/issues/947

eclipse x11 gtk vnc xserver

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

选择系统调用在/ w应用程序中无限期挂起.

我们有一个网络应用程序,它将在各种脚本中用于与其他系统进行通信.

有时,脚本会挂起对我们网络应用程序的调用.我们最近遇到了挂起,我试图调试这个特定应用程序的挂起过程.

此应用程序由客户端和服务器(守护程序)组成,挂起发生在客户端.

Strace输出显示它挂在选择系统调用上.

> strace -p 34567
select(4, [3], NULL, NULL, NULL
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在select调用中没有给出超时,如果文件描述符"3"未准备好读取,它可以无限期地阻塞.

lsof输出显示fd'3'处于FIN_WAIT2状态.

> lsof -p 34567
client  34567 user 3u  IPv4 55184032 TCP client-box:smar-se-port2->server:daemon (FIN_WAIT2)
Run Code Online (Sandbox Code Playgroud)

以上信息是否意味着什么?FIN_WAIT2状态?我检查了服务器端(应该运行相应的守护程序进程),但是服务器端没有运行守护程序进程.我的猜测是守护进程成功运行并将输出发送到客户端,这应该在fd'3'上可用于读取,但客户端上的select()调用永远不会出现,仍然等待发生的事情!

我不确定为什么它永远不会出现select()调用,这只会偶尔发生,大多数情况下应用程序才能正常工作.

有线索吗?

服务器和客户端都是SuSE Linux.

sockets linux network-programming

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

shell脚本中的信号处理

以下是我有的shell脚本(myscript.sh):

#!/bin/bash

sleep 500 &

Aprogram arg1 arg2  # Aprogram is a program which runs for an hour.

echo "done"
Run Code Online (Sandbox Code Playgroud)

我在一个终端启动了这个,并从另一个终端发出了'kill -INT 12345'.12345是myscript.sh的pid.

过了一会儿,我可以看到myscript.sh和Aprogram都已经死了.然而'睡眠500&'仍然在运行.

任何人都可以解释为什么这种行为?

另外,当我向'myscript.sh'发出SIGINT信号时究竟发生了什么?为什么'Aprogram'被杀,为什么不'睡觉'?信号INT如何传输到它的子进程?

linux bash shell signals sh

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

Linux 上默认启用 SO_KEEPALIVE 行为?

我有一个使用 TCP 套接字用 C 编写的客户端/服务器应用程序。我想知道使用客户端套接字上启用的 SO_KEEPALIVE 选项的死服务器进程。我正在使用 Linux。

我将默认时间从 2 小时修改为 10 分钟。

echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time
Run Code Online (Sandbox Code Playgroud)

我使用setsockopt() 在客户端套接字上启用了SO_KEEPALIVE。在向客户端发送数据时,我故意杀死(kill -9)服务器进程。

正如预期的那样,在 10 分钟超时(加上额外的探测时间)后,客户端套接字得到通知(read(scoket,...) 返回零)。

然而,令我惊讶的是,即使我在客户端套接字上禁用此选项,它仍然会在指定的超时时间后收到通知(read() 返回零)。

在 Linux 中默认启用此行为吗?

另外,我觉得 read() 返回零是不合适的,当 peer 死了时 read() 不应该返回一些错误吗?

sockets linux network-programming tcp linux-kernel

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