hbase协处理器远程调试

d4so4syb  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(522)

如何远程调试hbase协处理器-regionobserver?
我正在使用cloudera快速启动。
有一个关于它的问题,但是没有关于把它放在哪里的信息 exec 命令。
我也试过这个指令,但hbase不是从这个开始的。
那么,远程调试协处理器的正确方法是什么呢?

vwhgwdsa

vwhgwdsa1#

你没有提到你使用什么ide,但下面是我如何设置intellij的。

添加intellij运行/调试设置

选择run/debug->add new configuration(+sign)->remote->fill the hostname where the regionserver runs(如果您在本地运行hbase,则将其留给localhost)。在我的例子中,主机名是 skdevhad6.dev.dszn.cz .

设置区域服务器

接下来,编辑 hbase-env.sh 归档并查找 HBASE_OPTS 环境值设置。您应该在此处添加:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005

这将确保jdb将监听所有接口( 0.0.0.0 )左舷 5005 使用jdb传输协议。
这是怎么回事 HBASE_OPTS 以后可能会看:

export HBASE_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:-ResizePLAB -XX:ParallelGCThreads=24 -XX:-OmitStackTraceInFastThrow -XX:+ParallelRefProcEnabled"

最好是,如果您有多个hbase区域服务器,也将这些设置应用于它们,以便您可以选择以后要调试的区域(只需在intellij中为此添加另一个远程调试设置)。
现在,重新启动所有已应用更新的区域服务器 HBASE_OPTS 版本。如果重新启动成功,请继续从intellij运行远程调试会话。
如果您看到这样的情况,则意味着调试器已连接,您可以将断点放在任何需要的地方。

去试试吧:)hf!

故障排除

如果安装失败并且您无法连接到远程jdb,请检查区域服务器是否实际侦听您在所有接口上指定的端口,使用:

$ ss -tunlp | grep 5005 # where 5005 is the port it should listen to
tcp    LISTEN     0      1                      *:5005                  *:*      users:(("java",pid=28364,fd=5))

如果是,请检查服务器的防火墙:

$ iptables -L

如果到端口的传入流量受到限制,那么您就发现了问题。

相关问题