分享

【help】hadoop fs -ls 列出了本地ext4文件系统上的文件?

sargentti 发表于 2013-10-16 13:39:35 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 6549
大家有没有遇过这个问题?新建了一个hddisp用户供oozie使用,结果使用该用户hadoop fs -ls / 却列出了本地ext4文件系统上的文件。该问题就这个用户会出现,同一台机器上其他用户都没有这个问题。
跟踪实际执行的命令和参数,都没发现异常:
[hddisp@xxxxxx~]$ hadoop dfs -ls /
Warning: $HADOOP_HOME is deprecated.
#####$JAVA:/usr/lib/jdk/bin/java
#####$COMMAND:dfs
#####$JAVA_HEAP_MAX:-Xmx1000m
#####$HADOOP_OPTS: -Dhadoop.log.dir=/appcom/HadoopInstall/hadoop-1.1.1/libexec/../logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/appcom/HadoopInstall/hadoop-1.1.1/libexec/.. -Dhadoop.id.str= -Dhadoop.root.logger=INFO,console -Dhadoop.security.logger=INFO,NullAppender -Djava.library.path=/appcom/HadoopInstall/hadoop-1.1.1/libexec/../lib/native/Linux-amd64-64 -Dhadoop.policy.file=hadoop-policy.xml
#####$CLASS:org.apache.hadoop.fs.FsShell
#####$@:-ls /
Found 30 items
drwxr-xr-x - root root 0 2013-02-04 18:17 /misc
drwxrwxrwx - root root 36864 2013-03-06 09:20 /tmp
dr-xr-x--- - root root 4096 2013-03-05 16:24 /root
drwxr-xr-x - root root 0 2013-02-04 18:17 /net
drwxr-xr-x - root root 1024 2013-02-26 12:51 /home
dr-xr-xr-x - root root 8192 2012-06-14 10:41 /media
drwxr-xr-x - hadoop hadoop 4096 2013-02-04 20:48 /data
drwxr-xr-x - root root 4096 2013-01-28 19:19 /selinux
drwxr-xr-x - root root 12288 2013-03-05 03:46 /etc
drwxr-xr-x - root root 4096 2013-02-16 11:19 /usr
drwxr-xr-x - hadoop hadoop 4096 2013-03-05 18:34 /appcom
drwxr-xr-x - root root 4096 2013-01-28 19:27 /opt
dr-xr-xr-x - root root 12288 2013-01-28 20:12 /sbin
dr-xr-xr-x - root root 0 2013-02-05 02:17 /proc
dr-xr-xr-x - root root 12288 2013-02-17 10:44 /lib64
…………
环境变量也没发现异常:
[hddisp@xxxxxx~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export JAVA_HOME=/usr/lib/jdk
export HADOOP_HOME=/appcom/hadoop
export OOZIE_HOME=/appcom/oozie
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib:$HADOOP_HOME:$OOZIE_HOME:$OOZIE_HOME/lib
export PATH=/bin:$JAVA_HOME/bin:$HOME/bin:$OOZIE_HOME/bin:/$HADOOP_HOME/bin:$PATH
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
hddisp用户运行hadoop dfs -ls / ,跟踪发现实际执行的是如下命令,和他用户一模一样:
java -Dproc_dfs -Xmx1000m -Dhadoop.log.dir=/appcom/HadoopInstall/hadoop-1.1.1/libexec/../logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/appcom/HadoopInstall/hadoop-1.1.1/libexec/.. -Dhadoop.id.str= -Dhadoop.root.logger=INFO,console -Dhadoop.security.logger=INFO,NullAppender -Djava.library.path=/appcom/HadoopInstall/hadoop-1.1.1/libexec/../lib/native/Linux-amd64-64 -Dhadoop.policy.file=hadoop-policy.xml –classpath $CLASSPATH org.apache.hadoop.fs.FsShell -ls /
JWhich检查实际用的class位置,也和其他用户一模一样;$CLASSPATH和上面执行hadoop dfs -ls /的一样,太长了不贴出来了:
java -cp $CLASSPATH:. JWhich org.apache.hadoop.fs.FsShell
Class '/org/apache/hadoop/fs/FsShell.class' found in
file:/appcom/HadoopInstall/hadoop-1.1.1/hadoop-core-1.1.1.jar!/org/apache/hadoop/fs/FsShell.class'
为何结果却不一样?哪里可能会有问题?
              
               
            

已有(5)人评论

跳转到指定楼层
sargentti 发表于 2013-10-16 13:40:07

            Any idea?只能跟org.apache.hadoop.fs.FsShell 的代码了?
        
回复

使用道具 举报

lzb900627 发表于 2013-10-16 13:40:46

            你看看JAVA_HOME 对不对,是存放jdk的目录
        
回复

使用道具 举报

tntzbzc 发表于 2013-10-16 13:41:37

            应该还是该用户.bash_profile 的问题
用两种办法测试一下
1、手动SOURCE配置文件
2、把配置写进/ETC/PROFILE里,再SOURCE看看有没有问题
        
回复

使用道具 举报

windhawkgyang 发表于 2013-10-16 13:42:17
            Hi,我也遇到了和你一样的问题,这个问题你是怎么解决的?

        
回复

使用道具 举报

windhawkgyang 发表于 2013-10-16 13:43:17

            我的问题出现是因为在/usr/bin下建立了hadoop和hadoop-config.sh,结果hadoop fs -ls就列出了自己本地的文件系统。我清空了/tmp下的hadoop文件,删掉了/usr/bin下的hadoop和hadoop-config.sh,再运行hadoop fs -ls命令就正常了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条