在学习实践hadoop的遇到的问题总结(持续总结)
问题1 $HADOOP_HOME is deprecated 但是不影响mapreduce的功能
在hadoop-env.sh中 添加export HADOOP_HOME_WARN_SUPPRESS=”TRUE”,即可不出现这个警告
问题2 第二次执行hadoop jar hadoop-examples-1.2.1.jar grep /usr/data/input /usr/data/output 'dfs[a-z.]+'报错:
输出文件目录已存在:
hadoop输出时文件目录必须是不存在的
问题3 下载hadoop的时候有两个版本src.tar.gz 和tar.gz,应该选哪个?
首先src.tar.gz是源码版的,使用的话需要经过编译;tar.gz是编译过的;src.tar.gz编译的话比较复杂,需要安装很多软件,而且虚拟机镜像版不同编译的版本也不同,本地的c语言版本对编译影响很大,在编译过程中容易出错。建议使用tar.gz
问题 4 当使用集群文件系统复制命令hadoop fs -put /*** / 时 ,出现”没有找到主机路由”,“exception in createBlockOutputStream”
出现这种问题应该是要么是/etc/hosts ip映射没有配,要么是没有关闭防火墙的问题
centos7 关闭防火墙systemctl stop firewalld.service(至下次重启前生效)
systemctl disable firewalld.service(永久生效)
firewall-cmd --state ##查看防火墙状态
问题5 如何合并被拆分的文件块?
例 加入一个文件被分成了blk_1073741839和blk_1073741839,现在要把两个block合并成原文件
cat blk_1073741839 >> tem.file
cat blk_1073741839 >>tem.file
问题6 测试上传本地文件到虚拟机文件系统时报错“org.apache.hadoop.security.AccessControlException: Permission denied: user=SF, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkFsPermission(FSPermissionChecker.java:271)......
” 没有权限上传。
此处当前windows使用用户为sf,所以eclipse获取的用户是sf,但是sf不是linux上的用户,所以会报没有权限。需要在参数配置那添加参数:右键--->run as---->run configurations---->选择参数项-------> 输入
-DHADOOP_USER_NAME=hadoop 即可