在学习实践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的遇到的问题总结(持续总结)

         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”

在学习实践hadoop的遇到的问题总结(持续总结)

       出现这种问题应该是要么是/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  即可