【问题标题】:Cannot connect to Cloudera Manager, not listening on port 7180无法连接到 Cloudera Manager,未侦听端口 7180
【发布时间】:2019-05-17 18:32:48
【问题描述】:

非常感谢一些帮助,让 cloudera 管理器在 AWS EC2 上运行。 这是我的第一次安装,我的目标是使用 AWS 免费套餐来启动一些节点,并对 Hadoop 集群和 cloudera 分发进行一些培训。我在 AWS EC2 上使用 RedHat RHEL 7.2 映像。

我正在按照这里的说明进行操作...Cloudera Manager installation

我已经安装了 cloudera manager 确定,然后进入它邀请您使用浏览器登录 cloudera manager 服务器的屏幕。但这就是问题的开始。该应用程序似乎没有在端口 7180 上侦听,因此没有希望通过网络从另一台计算机连接。我什至无法在服务器上本地连接,但服务似乎运行正常。但它没有监听 7180 端口。

Q1 - 我如何确认配置设置为使用端口 7180?

Q2 - 我在这里遗漏了哪些明显的步骤?

提前致谢,

[编辑..] 我开始怀疑免费 EC2 主机是否内存不足,无法运行 cloudera 管理器。我看到一条评论暗示....AWS Forum post。但该进程不会崩溃或在其日志文件中报告任何问题。所以应该没问题吧?

[编辑....带有更多诊断信息....]

这是我检查过的诊断列表:-

  • SELinux 未运行 [用于安装和测试目的],
  • WAN 防火墙,
  • EC2 防火墙/安全组,
  • 服务器上的本地防火墙,
  • Cloudera 管理器日志,
  • 服务是否启动并运行?
  • 你能在本地连接吗?

EC2 实例上的安全组,它包含:- SSH 和端口 7180,

RedHat 实例上的Firewall/iptables/firewalld,尝试过:- 将端口添加到 iptables,然后 禁用 iptables,然后 将端口添加到firewalld,然后 禁用firewalld服务,

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:7180
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:7182

但是我感觉 cloudera manager 的安装不开心,或者运行不正常。

我查看了cloudera manager日志,结果如下。

$ tail /var/log/cloudera-scm-server/cloudera-scm-server.log
2016-02-25 11:02:23,581 INFO main:com.cloudera.cmon.components.MetricSchemaUpdate: persisting 19264 new metrics
2016-02-25 11:02:28,920 INFO main:com.cloudera.cmon.components.MetricSchemaUpdate: persisting 0 updated metrics
2016-02-25 11:02:28,924 INFO main:com.cloudera.cmon.components.MetricSchemaManager: Cross entity aggregates processed.

当我使用 tail -f 并重新启动 cloudera-scm-server 服务时,日志滚动很多,并返回相同的状态。如果我搜索 ERROR,则没有带有“ERR”的行。

$ sudo service cloudera-scm-server start
Starting cloudera-scm-server (via systemctl):              [  OK  ]

$ sudo systemctl status cloudera-scm-server
● cloudera-scm-server.service - LSB: Cloudera SCM Server
   Loaded: loaded (/etc/rc.d/init.d/cloudera-scm-server)
   Active: active (exited) since Thu 2016-02-25 12:23:03 EST; 44s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 747 ExecStart=/etc/rc.d/init.d/cloudera-scm-server start (code=exited, status=0/SUCCESS)

所以,如果我尝试通过从本地计算机连接来测试服务,我会得到一种行为,这让我觉得它只是没有在听,而且可能没有正确启动。

尝试在 cloudera-scm-server 服务启动时使用 curl 来戳它

$ curl localhost:7180
curl: (7) Failed connect to localhost:7180; Connection refused

$ wget localhost:7180
--2016-02-25 08:00:16--  http://localhost:7180/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:7180... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:7180... failed: Connection refused.

尝试检查该机器上正在侦听的端口,不是 7180 ,这是怎么回事???

$ netstat -nltp
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:7432            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::7432                 :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      -  

【问题讨论】:

  • Bingo - 发现内存不足的问题 - 日志中的消息 $ sudo tail -100 /var/log/cloudera-scm-server/cloudera-scm-server.out JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078dc58000, 265809920, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 265809920 bytes for committing reserved memory. # An error report file with more information is saved as: # /tmp/hs_err_pid831.log

标签: hadoop amazon-web-services amazon-ec2 cloudera cloudera-cdh


【解决方案1】:

这是要查找的内容和可能的解决方案 - 给它更多内存...

使用 [取决于您的 linux 风格] 检查 cloudera-scm-server 服务的状态

$ sudo service cloudera-scm-server status

或

$ sudo systemctl status cloudera-scm-server

查找状态 - Active: active (running) 但如果你发现 - Active: active (exited) 可能是cloudera-scm-server启动过程中出现问题。

在这种情况下,请查看 cloudera-scm-server 的日志文件

$sudo ls -l /var/log/cloudera-scm-server

$sudo cat /var/log/cloudera-scm-server/cloudera-scm-server.out 
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078dc58000, 265809920, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 265809920 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid831.log
[ec2-user@ip-172-31-31-166 ~]$ sudo tail -100 /var/log/cloudera-scm-server/cloudera-scm-server.out
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078dc58000, 265809920, 0) failed; error='Cannot allocate memory' (errno=12)

使用命令top 指示您的系统有多少内存可用。

可能的解决方案 - 看看this discussion at Cloudera forum

在这种情况下,java 堆的大小太小了。

我们看到堆已经耗尽,假设这不是内存泄漏 或类似的东西,Cloudera Manager 可能需要更多堆来 操作。这可以配置为: /etc/default/cloudera-scm-server 例如,您可以将“-Xmx2G”更改为“-Xmx3G”或“-Xmx4G”如果问题仍然存在 发生,也许堆转储会产生一些线索。

【讨论】:

    【解决方案2】:

    我建议你跟踪日志。如果您使用的是免费套餐,cloudera manager 将需要一段时间才能启动...在您启动 cloudera-scm-server 后可能长达 5 分钟或更长时间。
    日志应该显示是否有任何错误,可能是内存分配问题,因为免费层服务器的可用内存有限。日志条目的小 sn-p 看起来很好而且很典型 - 在 UI 出现在 7180 之前,它将经过一长串进程。

    在此过程中,运行 top 甚至 free -g 以查看正在使用多少资源 - 特别是内存。

    【讨论】:

    • 感谢您的评论@OkezieE。 CM似乎被困在同一个地方。自开始以来已经大约 3-4 小时,并且日志文件尚未从 {code}2016-02-25 12:19:47,762 INFO main:com.cloudera.cmon.components.MetricSchemaManager 移动:已处理跨实体聚合。 {代码}
    • 我还发现数据库正在运行。我开始想也许我忘了为 Cloudera 安装一个数据库来保存它的数据。 # Auto-generated by initialize_embedded_db.sh # # 20160225-073401 # # These are database settings for CM Manager # com.cloudera.cmf.db.type=postgresql com.cloudera.cmf.db.host=localhost:7432 com.cloudera.cmf.db.name=scm com.cloudera.cmf.db.user=scm
    • 该服务器上的资源使用情况如何。坦率地说,我认为免费层 ec2 实例(t2.micro、t1.micro 等)在 CPU 和内存方面都太弱了。它有一个单核,内存约 500MB 可供非系统使用。根据 Cloudera Manager 的系统要求,我认为这还不够。在继续之前检查此页面:cloudera.com/documentation/enterprise/5-4-x/topics/…
    【解决方案3】:

    我遇到了完全相同的问题,无法在端口 7180 上使用公共 DNS 或 IP 访问 CM 登录。

    以下步骤将对您有所帮助:

    iptables stopped (service iptables stop)  
    SELinux disabled (got to /etc/selinux/config and disbaled the selinux)   
    curl/wget localhost:7180 works (check the curl status)  
    ufw allow 7180  
    service httpd status should be running.  
    check va/log/cloudera-scm-server log : if any error found then troubleshoot the error      
    cloudera-scm-server status (should be running state)
    netstat -nap | grep 7180 returns  (if running other service then kill it)
    

    telnet localhost 7180(应该可以连接)

    【讨论】:

      【解决方案4】:

      无法连接到 Cloudera Manager,未侦听端口 7180

      1] 检查状态:

      sudo 服务 cloudera-scm-server 状态

      *cloudera-scm-server.service - LSB: Cloudera SCM Server Loaded: loaded (/etc/rc.d/init.d/cloudera-scm-server; bad; vendor preset: disabled)   Active: active (exited) since  UTC; 47min ago      Docs: man:systemd-sysv-generator(8) rm /var/run/cloudera-scm-server.pid
      

      注意:Cloudera Manager 服务因异常退出而无法运行。 运行 service cloudera-scm-server status 将打印以下消息“cloudera-scm-server dead but pid file exists”。

      原因:内存不足。

      解决方案:检查 Cloudera Manager Server 在内存不足时创建的堆转储。堆转储文件在 /tmp 目录下创建,文件扩展名为 .hprof,文件权限为 600。其所有者和组将是 Cloudera Manager 服务器进程的所有者和组,通常为 cloudera-scm:cloudera-scm。

      链接: http://www.cloudera.com/documentation/manager/5-0-x/Cloudera-Manager-Diagnostics-Guide/cm5dg_troubleshooting_cluster_config.html

      【讨论】:

        【解决方案5】:
            Check the status of `cloudera-scm-server` and follow the instructions ahead:
        
            [root@quickstart ~]# `service cloudera-scm-server status`
            By default, Cloudera's QuickStart VM manages CDH using Linux's configuration
            and service management. To use Cloudera Manager instead, you must shut down
            and disable the existing CDH services and then start Cloudera Manager. You can
            do this by running the following command:
        
        `sudo /home/cloudera/cloudera-manager`    
        
        
            [root@quickstart ~]#    `sudo /home/cloudera/cloudera-manager `    
            `[QuickStart] Shutting down CDH services via init scripts...
            JMX enabled by default
            Using config: /etc/zookeeper/conf/zoo.cfg
            [QuickStart] Disabling CDH services on boot...
            [QuickStart] Starting Cloudera Manager services...
            [QuickStart] Deploying client configuration...
            [QuickStart] Starting CM Management services...
            [QuickStart] Enabling CM services on boot...
            [QuickStart] Starting CDH services...`
            ________________________________________________________________________________
        
            Success! You can now log into Cloudera Manager from the QuickStart VM's browser:
        
            http://quickstart.cloudera:7180
        
            Username: cloudera
            Password: cloudera
        

        【讨论】:

          猜你喜欢
          • 2019-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-06
          • 2019-06-23
          • 2015-05-21
          • 1970-01-01
          • 2018-03-05
          相关资源
          最近更新 更多