精华内容
下载资源
问答
  • hadoop问题排错

    2019-05-08 16:57:40
    hadoop 问题排查 hadoop集群中多个datanode正常,只有一个datanode启动失败,通过查看日志得知连接namenode超时,首选确认防火墙是或否关闭,端口是否开放,ssh是否互通,最常见的是namenode的/etc/hosts文件一开始...

    hadoop 问题排查
    hadoop集群中多个datanode正常,只有一个datanode启动失败,通过查看日志得知连接namenode超时,首选确认防火墙是或否关闭,端口是否开放,ssh是否互通,最常见的是namenode的/etc/hosts文件一开始有2行#注释的示例,需要删除,做完上面这几部还是没成功,上网查了好久,也是没头绪,后面只能查找namenode日志的启动日志,有惊喜日志做得太强大了
    原来是集群启用了机架感知,而这个节点没有加入机架感知中,导致在启动的时候就被移除了,加入机架或者移除机架,问题解决…以此谨记

    展开全文
  • 在安装Hadoop过程中,对hdfs格式化(# $HADOOP_HOME/bin/hdfs namenode -format)之后,开始启动hdfs(# $HADOOP_HOME/sbin/start-dfs.sh)时,总是报错如下: ERROR: Cannot set priority of datanode process 3340...

    问题

    在安装Hadoop过程中,对hdfs格式化(# $HADOOP_HOME/bin/hdfs namenode -format)之后,开始启动hdfs(# $HADOOP_HOME/sbin/start-dfs.sh)时,总是报错如下:

    ERROR: Cannot set priority of datanode process 3340
    



    解决方案

    $HADOOP_HOME/etc/hadoop/hadoop-env.sh最后一行加上HADOOP_SHELL_EXECNAME=root,否则该环境变量默认值为hdfs。同时其他涉及USER的变量也改成root,例如:

    export HDFS_DATANODE_USER=root 
    export HADOOP_SECURE_DN_USER=root 
    export HDFS_NAMENODE_USER=root 
    export HDFS_SECONDARYNAMENODE_USER=root 
    export YARN_RESOURCEMANAGER_USER=root 
    export YARN_NODEMANAGER_USER=root
    

    另外,又发现一个地方会导致此问题,vi $HADOOP_HOME/bin/hdfs会发现脚本前几行有个地方如下:

    HADOOP_SHELL_EXECNAME="hdfs"
    

    要将hdfs改成root



    解决历程

    我个人是在docker中配了三个容器来实现完全分布式安装,对于ssh免密码登录也没问题,一开始以为sshd_config可能没配好,按照网上搜索结果修改UsePAM=no之类的,但是还是没用。

    在容器中,一开始并没有新建hdfs等用户,只有root用户,后面特意把整个hadoop目录都改成hdfs用户所有还是没用。

    后面干脆把说有环境变量中的user都改成root,依旧没用。

    查看apache-hadoop官网查看此英文文档,发现如果ssh免密登录如果没有配置,依然可以通过如下命令启动

    $HADOOP_HOME/bin/hdfs namenode -format <cluster_name>  #namenode中执行
    $HADOOP_HOME/bin/hdfs --daemon start namenode #namenode中执行
    
    $HADOOP_HOME/bin/hdfs --daemon start datanode #datanode中执行
    

    执行后,依旧出现ERROR: Cannot set priority of datanode process 3340,可以排除ssh免密登录的问题。

    花了好长时间,还没解决,我怒了,决定调试hadoop启动的整个过程

    首先vi检查$HADOOP_HOME/bin/hdfs文件,了解大致执行情况,然后使用bash -x $HADOOP_HOME/bin/hdfs --daemon start datanode启动bash调试模式运行启动命令,发现最后退出时的执行情况如下:

    .........
    .........
    + [[ 6 -le 5 ]]
    + echo 3281
    + sleep 1
    + renice 0 3281
    + [[ 1 -gt 0 ]]
    + hadoop_error 'ERROR: Cannot set priority of datanode process 3281'
    + echo 'ERROR: Cannot set priority of datanode process 3281'
    ERROR: Cannot set priority of datanode process 3281
    + [[ -f /tmp/hadoop-root-root-datanode.pid ]]
    + disown %+
    + [[ 0 -gt 0 ]]
    + su root -c 'bash -c "ulimit -a"'
    + ps -p 3281
    + return 1
    + exit 1
    

    于是注意到renice这个命令可能是个突破口,查看文档中说只有root用户才可以随意renice别的进程,其他用户只能增加 nice 值。注意到也许是不同用户引起的问题。

    再次运行bash调试,注意到开头有如下语句:

    + HADOOP_SHELL_EXECNAME=hdfs
    + MYNAME=/usr/local/hadoop/bin/hdfs
    + [[ -n /usr/local/hadoop ]]
    + HADOOP_DEFAULT_LIBEXEC_DIR=/usr/local/hadoop/libexec
    + HADOOP_LIBEXEC_DIR=/usr/local/hadoop/libexec
    + HADOOP_NEW_CONFIG=true
    

    于是在$HADOOP_HOME/etc/hadoop/hadoop-env.sh最后一行加上HADOOP_SHELL_EXECNAME=root,重新执行$HADOOP_HOME/bin/hdfs --daemon start datanode,用jps查看发现datanode启动成功



    总结

    • 出了问题在一时搜索国内解决方案没解决后,先去查看官方英文文档,国内博客好一部分是翻译自国外,或是互相抄袭,甚至抄得莫名其妙。
    • 多调试,报错就调试查看问题根源,bash也是可以调试的



    参考资料


    欢迎访问我的 个人网站(主要), Github, CSDN(主要), 博客园, 简书, 掘金, 知乎, 微信公众号:HelloVant(主要)

    展开全文
  • 记一次hadoop Connection refused: no further information排错 在研究hadoop的hdfs,用本地java api远程调用hdfs时出现了连接被拒绝的问题 解决方案 下面的排错步骤,是建立在hadoop的服务端防火墙关闭的情况下(这...

    记一次hadoop Connection refused: no further information排错

    在研究hadoop的hdfs,用本地java api远程调用hdfs时出现了连接被拒绝的问题

    解决方案

    下面的排错步骤,是建立在hadoop的服务端防火墙关闭的情况下(这点注意一下!)

    第一步

    1.查看你的hadoop Api提供的地址 + 端口!
    如何查看正确的地址呢?
    打开你的hadoop家目录!然后进入etc/hadoop比如我的就是:/usr/local/hadoop
    然后查看core-site.xml:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:8020</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/hadoop/tmp</value>
        </property>
    </configuration>1

    其中第一个property的fs.defalutFS节点下的value,便是你本地api调用的地址加端口!

    第二步

    在hadoop的服务端调用如下命令,检查是否打开:

    telnet 192.168.1.102 8020

    若看到如下文本,说明服务端是没有问题的!

    Trying 192.168.1.102…
    Connected to test (192.168.1.102).
    Escape character is ‘^]’.
    Connection closed by foreign host.

    在本地的windows端,检查客户端是否可以调通服务端ip端口:
    tips:windows下的cmd命令中,调用telnet 是需要单独开启服务端,默认系统telnet命令在cmd中是调用是找不到的!
    打开windows—–telnet服务链接教程:链接: https://jingyan.baidu.com/article/3ea51489ba79e252e61bba97.html .

    telnet 192.168.1.102 80201

    执行完毕,如果你看到的是跳入一个黑框,什么内容也没有,说明客户端也是可以调通服务端的!!!

    第三步

    想了想,为什么会网络被拒绝呢!无非就是找不到服务端的ip地址!!为什么找不到呢!!!
    再来看下hadoop服务端的核心配置文件!

    然后查看core-site.xml:

    > <configuration>
    >     <property>
    >         <name>fs.defaultFS</name>
    >         <value>hdfs://Master:9000</value>
    >     </property>
    >     <property>
    >         <name>hadoop.tmp.dir</name>
    >         <value>/hadoop/tmp</value>
    >     </property> </configuration>

    hdfs://Master:9000:是对外访问的api调用的路径,可将Master换成ip地址,切记不可为localhost,外部请求是不识别的!

    外界代码api再次访问:即成功
    在这里插入图片描述

    展开全文
  • hadoop安装--排错2 connection refused

    千次阅读 2014-01-16 09:35:20
    This stack trace is very common when the cluster is being shut down -because at that point Hadoop services are being torn down across the cluster, which is visible to those services and applications ...

    这个参考官网提示,其实原因太TM多了,是个精力活儿

    Connection Refused

    You get a ConnectionRefused Exception when there is a machine at the address specified, but there is no program listening on the specific TCP port the client is using -and there is no firewall in the way silently dropping TCP connection requests. If you do not know what a TCP connection request is, please consult the specification.

    Unless there is a configuration error at either end, a common cause for this is the Hadoop service isn't running.

    This stack trace is very common when the cluster is being shut down -because at that point Hadoop services are being torn down across the cluster, which is visible to those services and applications which haven't been shut down themselves. Seeing this error message during cluster shutdown is not anything to worry about.

    If the application or cluster is not working, and this message appears in the log, then it is more serious.

    1. Check the hostname the client using is correct
    2. Check the IP address the client gets for the hostname is correct.
    3. Check that there isn't an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this)
    4. Check the port the client is using matches that the server is offering a service on.
    5. On the server, try a telnet localhost <port> to see if the port is open there.
    6. On the client, try a telnet <server> <port> to see if the port is accessible remotely.
    7. Try connecting to the server/port from a different machine, to see if it just the single client misbehaving.
    8. If you are using a Hadoop-based product from a third party, including those from Cloudera, Hortonworks, Intel, EMC and others -please use the support channels provided by the vendor.
    9. Please do not file bug reports related to your problem, as they will be closed as Invalid


    None of these are Hadoop problems, they are host, network and firewall configuration issues. As it is your cluster, only you can find out and track down the problem.





    一定要关闭 master node 的防火墙

    展开全文
  • 以下所有操作均基于博主之前发布的 Hadoop 伪分布式 及 完全分布式 教程,如果安装方式差异较大,需要视实际情况而定。 部分要点之前的博客中已经提出,此处不再重复。 前置博客:...
  • Hbase+Hadoop+Zookeeper集群 一、服务器规划和基础配置 *RM-ResourceManager,HM-HMaster,SN-SecondaryNameNode,NM-NodeManager,HR-HRegionServer IP Hostname 角色 10.0.0.1...
  • 简介 最近学习hbase,需要安装hadoop集群和zookeeper集群。...关于hbase与hadoop版本对应关系去这里查看:hadoop与hbase的版本匹配关系,页面搜索Hadoop version support matrix,具体子版本可以通过hbase解压目录lib...
  • [hadoop@hadoop01 dfs]$ hdfs dfs -mkdir /input mkdir: Call From hadoop01/192.168.100.240 to hadoop01:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: ...
  • chown -R hadoop:hadoop /data/program/hadoop 6、配置hadoop cd /data/program/hadoop/hadoop-1.0.3/conf/ vi hadoop-env.sh export JAVA_HOME=/data/program/jdk1.6.0_31 设置hadoop java环境 vi core-site.xml ...
  • hadoop,第一个程序当然就是WordCount,这个程序不用自己照着书上抄写,hadoop的安装包里已经带了很多学习示例,其中就包括WordCount,如下图中的最后一个文件就是了先附上两个测试文件如下:echo "Hello World ...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

hadoop排错