2014-01-08 128 views
3

我在进行配置单元工作时遇到了很多麻烦。我使用YARN运行CDH4.5,所有这些都是从Cloudera的yum回购库安装的。我按照他们的说明设置了配置单元,但由于某些原因,它无法识别本地文件系统上的合法文件。配置单元没有匹配路径文件和文件的文件存在

[[email protected] data]$ pwd 
/home/msknapp/data 
[[email protected] data]$ ll | grep county_insurance_pp.txt 
-rw-rw-rw- 1 msknapp msknapp 162537 Jan 5 14:58 county_insurance_pp.txt 
[[email protected] data]$ sudo -u hive hive 
Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties 
Hive history file=/tmp/hive/hive_job_log_9e8bf55b-7ec8-4b79-be9b-cc2200a33f91_1795256456.txt 
hive> describe count_insurance;                
2014-01-08 02:42:59.000 GMT Thread[main,5,main] java.io.FileNotFoundException: derby.log (Permission denied) 
---------------------------------------------------------------- 
2014-01-08 02:42:59.443 GMT: 
Booting Derby version The Apache Software Foundation - Apache Derby - 10.4.2.0 - (689064): instance a816c00e-0143-6fbb-3f3a-000007a1d270 
on database directory /var/lib/hive/metastore/metastore_db 

Database Class Loader started - derby.database.classpath='' 
OK 
fips int 
st string 
stfips int 
name string 
a int 
b int 
c int 
d int 
e int 
f int 
total int 
Time taken: 5.195 seconds 
hive> LOAD DATA LOCAL INPATH 'county_insurance_pp.txt' OVERWRITE INTO TABLE count_insurance; 
FAILED: SemanticException Line 1:23 Invalid path ''county_insurance_pp.txt'': No files matching path file:/home/msknapp/data/county_insurance_pp.txt 

我试图加载的文件确实存在。当我在我的load语句中使用绝对路径时,我得到相同的异常。

在附注上,我仍然不知道为什么它一直给我一个带有权限警告的德比日志的FileNotFoundException。很久以前,我去了/ var/lib/hive,做了'sudo chmod -R 777 ./*',所以权限不应该成为问题。

顺便说一句我正在以伪分布模式运行hadoop,并且所有三个hive守护进程都在本地运行。我用hive-server2不是1.

有人请让我知道我在这里做错了什么,或者如何调试。

回答

1

这是Koji。我最近遇到了同样的问题。

配置单元脚本运行Hadoop服务器。如果文件county_insurance_pp.txt在Hadoop服务器上不存在,则无法找到该文件。

在运行脚本之前,您必须将目标文件发送到Hadoop服务器。有2种方式来处理这个问题:

  1. 使用SCP
  2. 使用webhdfs(http://hadoop.apache.org/docs/r1.0.4/webhdfs.html
相关问题