配置与使用Hadoop的问题

本文主要介绍了在配置和使用Hadoop过程中可能会遇到的问题,包括数据目录权限设置、输入输出路径的处理、输出文件夹的管理,以及解决防火墙、系统空间、进程检查、safemode、启动日志等问题的方法。此外,还提到了一些特殊问题的解决方案,如端口冲突和Java堆空间错误。

1.用户组对数据目录必须拥有写权限

chmod g-w /hadoop/data/ 或者 chmod 755 /hadoop/data


2.单机模式下,output和input文件夹在本机上,而在伪分布模式下,必须位于hdfs文件系统中,否则报错:Input path does not exist

方法一:

建立本地目录:mkdir input

拷贝文件至目录:cp conf/* input

将本地目录input上传到HDFS文件系统上:hadoop fs -put input/ input


方法二:

在dfs中创建input目录:hadoop dfs -mkdir input 

将本地conf中的文件拷贝到dfs中的input:hadoop dfs -copyFromLocal conf/* input


方法三:

将本地目录conf上传到HDFS文件系统上:hadoop dfs -put conf input


方法四:

将输入路径设为本地文件夹(而不是hdfs上的文件夹):FileInputFormat.setInputPaths(conf, new Path("input"));


查看任务的执行结果:hadoop dfs -cat output/*

将执行结果从hdfs下载至本地:hadoop dfs -get output/ output


3.输出文件夹不能是已存在的,因此每次运行应设置不同的输出文件夹名,或者先删除已存在的输出文件夹(之前的数据会丢失)。

hadoop dfs -rmr output


4.多次格式化时需要删除本机上的存储目录(data,name)和缓存目录(tmp)


其他可能遇到的问题及解决:

1)sudo /etc/init.d/iptables stop关闭防火墙,或:service iptables stop(立即生效),chkconfig iptables off(重启后生效)

1)df -hl查看系统空间是否足够

2)jps查看进程:服务是否都启动了,datanode数(为2)

3)是否在safemode下:hadoop dfsadmin -safemode leave,离开sofemode

4) hadoop dfsadmin -report

5)不用start-all.sh启动全部服务,而是单独先后启动服务:

  • hadoop-daemon.sh start namenode
  • hadoop-daemon.sh start datanode 
  • hadoop-daemon.sh start secondarynamenode
  • hadoop-daemon.sh start jobtracker
  • hadoop-daemon.sh start tasktracker

6)查看启动日志(我的启动日志位于/usr/local/hadoop/logs文件夹下):hadoop-root-datanode-localhost.log

可在日志文件中定位和查看错误原因。


以下为转载:

1.某些节点出现running asprocess XXX. Stop it first

这是由于各节点登录用户为root,在启动hadoop前,务必将各节点用户切换至普通用户hadoop下,切换后的启动效果如下:从图中可以看出hadoop集群中服务的启动顺序:namenode、datanode、secondarynamenode、jobtracker以及tasktracker;


2.某节点namenode/tasktracker自动关闭

关闭该节点防火墙,serviceiptables stop(立即生效)、chkconfig iptables off(重启后生效);


3.某节点jps命令无效

JDK环境变量为配置成功。JPS在/usr/java/XXX/bin下,将其加入到/etc/profile中。


4.多次格式化HDFS注意事项

先将每个节点上的/usr/hadoop/tmp文件夹删除,这是因为每次格式化的时候会重新创建一个NamenodeID,而/tmp/dfs/data下包含了上次格式化的NamenodeID,hadoopnamenode –format会清空namenode下的数据,但是不能同时清空datanode的数据,所以格式化前,先将所有的tmp清空。


5.JobTracker is in safe mode

这表示JobTracker处于安全模式,用hadoop dfsadmin –safemode leave退出安全模式。


6.Can not start tasktracker becausejava.net.BindException:Address already in use

这表明某端口正被使用,查看日志获得端口号port,并通过ps –ef|grep port查看端口被哪个进程占用,关闭该进程,有时关闭该进程后重启计算机才能解决。


7.Error: Java heap space

    这表明JVM内存不够,在mapred-site.xml中设置属性mapred.child.java.opts,可以设为-Xmx1024M,这里设置的值最好是物理内存的一半。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值