zoukankan      html  css  js  c++  java
  • 修改cloudera manager的端口号

    最近想在测试机装一个hadoop测试集群debug玩玩,然后就用cloudera manager装吧

    这回使用rpm安装失败了,在网上搜到Cloudera Manager 5和CDH5离线安装说需要用scm_prepare_database.sh去初始化cm的数据库
    然后就索性不用rpm安装,而是直接用tar.gz解压安装

    由于公司不对7180端口放开,而且测试机的iptables命令缺少某些模块导致用不了,无法做端口转发,于是我就跟踪cm-5.10.0/etc/init.d/cloudera-scm-server的shell文件,到cm-5.10.0/share/cmf/bin/cmf-server,看到调用启动了java程序com.cloudera.server.cmf.Main。接着到cm-5.10.0/share/cmf/lib去grep server,找到server-5.10.0.jar,下载到windows本机,修改cm-5.10.0/share/cmf/bin/cmf-server加上调试参数-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8282"然后用idea打开远程调试,慢慢走,后来发现还需要下载其他jar包:persist-5.10.0.jar, db-common-5.10.0.jar, commons-dbutils-1.4.jar, 找到打开jetty服务的地方,心想着肯定有初始化端口的地方,后来在com.cloudera.server.cmf.WebServerImpl找到了这段代码:

    int httpPort = ((Long)ScmHandler.getScmConfigValue(ScmParams.HTTP_PORT, stats)).intValue();
    

    ScmParams.HTTP_PORT描述了取得端口号的键是http_port,如果没有这个配置就默认给7180; stats是个map,存放了各种配置,这些配置放在数据库中,用hibernate读出来,数据库、表、数据是用scm_prepare_database.sh创建出来的,其中有个CONFIGS表,插入一条数据就行了

    INSERT INTO `CONFIGS` (`CONFIG_ID`, `ATTR`, `VALUE`, `CONFIG_CONTAINER_ID`) VALUES (4, 'http_port', '8043', 2);
    

    经过docker虚拟机映射出来8001,可以访问了:

  • 相关阅读:
    PowerDesigner如何导出建表sql脚本(转)
    excel插入行时提示不能将对象移到工作表外,怎么解决!!
    Axure知识点
    移动互联网学习的点
    什么是大数据?
    [Android开源项目] GitHub开源项目总结 (转)
    程序员自我提高的几点建议 很实诚(转)
    程序员必须进行的10项投资(转)
    安卓版本的问题
    Android APK反编译详解(转)
  • 原文地址:https://www.cnblogs.com/lanhj/p/6390088.html
Copyright © 2011-2022 走看看