我在一台IP为192.168.1.109的计算机上成功安装并运行Hadoop(实际上它实际上是在虚拟机上运行的Ubuntu实例).键入jps时显示
2473 DataNode
2765 TaskTracker
3373 Jps
2361 NameNode
2588 SecondaryNameNode
2655 JobTracker
这应该意味着hadoop正在运行.像./hadoop fs -ls这样的运行命令很好,可以产生预期的结果.
但是,如果我尝试通过编写Java代码的HDFS API来连接它从我的IP为192.168.1.80的Windows框连接它,如下所示:
配置conf = new Configuration();
FileSystem hdfs = null;
路径filenamePath =新路径(FILE_NAME);
hdfs = FileSystem.get(conf); < - 问题发生在这条线上
当我运行代码时,错误显示如下:
11/12/07 20:37:24 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了0次.
11/12/07 20:37:26 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了1次.
11/12/07 20:37:28 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了2次.
11/12/07 20:37:30 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了3次.
11/12/07 20:37:32 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了4次.
11/12/07 20:37:33 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了5次.
11/12/07 20:37:35 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了6次.
11/12/07 20:37:37 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了7次.
11/12/07 20:37:39 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了8次.
11/12/07 20:37:41 INFO ipc.Client:重试连接服务器:/192.168.1.109:9000.已经尝试了9次.
java.net.ConnectException:在连接异常时调用/192.168.1.109:9000失败:java.net.ConnectException:连接被拒绝:无更多信息
为了确定套接字是否已经打开并等待hadoop服务器上的传入连接,我在ubuntu框上netstat,结果显示如下:
tcp 0 0 …
我对Android的netstats及其报告方式提出了一个简单的问题.
通过在cmd中运行此代码: adb shell cat proc/net/xt_qtaguid/stats > C:\netstats.txt"
我得到一个看起来或多或少像这样的文件(为了问题我拿了片段):
idx iface acct_tag_hex uid_tag_int cnt_set rx_bytes rx_packets tx_bytes tx_packets rx_tcp_bytes rx_tcp_packets rx_udp_bytes rx_udp_packets rx_other_bytes rx_other_packets tx_tcp_bytes tx_tcp_packets tx_udp_bytes tx_udp_packets tx_other_bytes tx_other_packets
44 wlan0 0x0 10123 0 45148 186 32150 265 45148 186 0 0 0 0 32150 265 0 0 0 0
45 wlan0 0x0 10123 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
46 wlan0 0x0 10138 0 19775 84 13625 …Run Code Online (Sandbox Code Playgroud) 我使用此代码来获取我的电脑中打开的端口的列表以及使用每个端口的应用程序。
string Port::GetListOfTcpPorts()
{
string ApplicationName = "";
string result = "";
string aux = "";
string RemotePort = "";
DWORD (WINAPI *pGetExtendedTcpTable)(
PVOID pTcpTable,
PDWORD pdwSize,
BOOL bOrder,
ULONG ulAf,
TCP_TABLE_CLASS TableClass,
ULONG Reserved
);
MIB_TCPTABLE_OWNER_PID *pTCPInfo;
MIB_TCPROW_OWNER_PID *owner;
DWORD size;
DWORD dwResult;
HMODULE hLib = LoadLibrary("iphlpapi.dll");
pGetExtendedTcpTable = (DWORD (WINAPI *)(PVOID,PDWORD,BOOL,ULONG,TCP_TABLE_CLASS,ULONG))
GetProcAddress(hLib, "GetExtendedTcpTable");
dwResult = pGetExtendedTcpTable(NULL, &size, false, AF_INET, TCP_TABLE_OWNER_PID_LISTENER, 0);
pTCPInfo = (MIB_TCPTABLE_OWNER_PID*)malloc(size);
dwResult = pGetExtendedTcpTable(pTCPInfo, &size, false, AF_INET, TCP_TABLE_OWNER_PID_LISTENER, 0);
for (DWORD dwLoop = 0; dwLoop …Run Code Online (Sandbox Code Playgroud) 我运行了一个暴露 port 的 docker 容器443。docker ps确认它已暴露。
~ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42b17c2a4b75 tmp/tmp "/usr/bin/tini -- /bi" 57 seconds ago Up 55 seconds 443/tcp adoring_austin
Run Code Online (Sandbox Code Playgroud)
但是,netstat不显示此端口。我也无法从浏览器访问它。
~ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
Run Code Online (Sandbox Code Playgroud)
我使用运行容器的命令只是JupyterHub.
[I 2016-11-22 03:12:11.494 JupyterHub app:643] Writing cookie_secret to /jupyterhub_cookie_secret
[W 2016-11-22 …Run Code Online (Sandbox Code Playgroud) TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3808
Run Code Online (Sandbox Code Playgroud)
如何用pid杀死这个进程?
我的命令:
for /f "delims=, tokens=5" %%a in ('netstat -ano | findstr 0.0.0.0:8080') do ( taskkill /f /pid %%a )
Run Code Online (Sandbox Code Playgroud) 出于某种原因netstat,没有列出 docker 暴露的端口。正如这里所建议的,我同时使用EXPOSE了 8080 和 5050 端口。但是从主机上看不到它们。
文件
...
FROM openjdk:11-jre-slim
COPY --from=build /usr/src/app/api/target/track-metadata-api-*.jar /app/track-metadata-api.jar
WORKDIR /app
EXPOSE 8080 5050
CMD java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050 -jar track-metadata-api.jar
Run Code Online (Sandbox Code Playgroud)
码头工人
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6d3381a992d track-metadata_track-metadata "/bin/sh -c 'java -a…" 7 minutes ago Up 7 minutes 0.0.0.0:5050->5050/tcp, 0.0.0.0:8080->8080/tcp track-metadata_track-metadata_1
Run Code Online (Sandbox Code Playgroud)
网络统计和卷曲
$ sudo netstat --all | grep 8080 # returns nothing
$ curl http://localhost:8080/v1/track-metadata/filtered
[{"authorName":"AC/DC","duration":208,"id":1,"tags":"#rock","trackName":"Highway to Hell"},{"authorName":"Sum41","duration":209,"id":2,"tags":"#rock","trackName":"War"},{"authorName":"Ziggy Marley","duration":220,"id":3,"tags":"#ragge","trackName":"Beach in Hawaii"}] …Run Code Online (Sandbox Code Playgroud) 当我netstat -a |find /C $portNumber在命令提示符下执行时,我得到给定端口号存在的总行数.
我想在任何变量中获得相同的计数,以便我可以检查NSIS中的端口是否已被占用或空闲.
我正在排除下面的命令,我尝试了很多方面,但是我无法在变量或堆栈中获得ExecDos :: exec的输出.
ExecDos::exec "netstat -a |find /C '$portNumber'| $output"
Run Code Online (Sandbox Code Playgroud) 我正在搜索返回netstat -s相同统计信息的Windows API
我试图检查端口可用性并使用shell脚本获取返回值.示例:如果端口8080空闲则返回true,否则返回false.有人可以帮忙吗?我试过了netstat.
我有一个案例,在服务器(dusxxxiweb2)中检测到一个漏洞,说端口 8081 已打开。我通过 netstat -a -n -o 获取端口号 | 找到“8081”命令,我发现端口“8081”正在被PID为4的系统进程使用
我想知道使用此服务的系统进程。IIS 未安装在此服务器中。但我可以访问一个登录页面(.Net 应用程序),如下所示。我不知道没有 IIS 怎么可能 http://dusxxxiweb2 :8081/登录
我想阻止此端口以修复漏洞问题。在这种情况下我该怎么办?