s3文件夹中的零长度文件可能会阻止通过配置单元访问该文件夹?

7hiiyaii  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(294)

我无法使用配置单元访问awss3上的文件夹,可能是因为该目录中的文件长度为零。aws管理控制台的文件夹是一个零字节的对象,其键以斜杠结尾,即“folder\u name/”。我认为hive或hadoop在如何定义s3上的文件夹方案方面可能有缺陷。
这是我所做的。

CREATE EXTERNAL TABLE is_data_original (user_id STRING, action_name STRING, timestamp STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'  STORED AS TEXTFILE LOCATION 's3n://bucketname/logs/';

    SELECT * FROM is_data_original LIMIT 10;

失败,出现异常java.io.ioexception:java.lang.nullpointerexception

username@client:~$ hadoop fs -ls s3n://bucketname/logs/
Found 4 items
-rwxrwxrwx   1          0 2015-01-22 20:30 /logs/data
-rwxrwxrwx   1       8947 2015-02-27 18:57 /logs/data_2015-02-13.csv
-rwxrwxrwx   1       7912 2015-02-27 18:57 /logs/data_2015-02-14.csv
-rwxrwxrwx   1      16786 2015-02-27 18:57 /logs/data_2015-02-15.csv

hadoop fs -mkdir s3n://bucketname/copylogs/
hadoop fs -cp s3n://bucketname/logs/*.csv s3n://bucketname/copylogs/

username@client:~$ hadoop fs -ls s3n://bucketname/copylogs/
Found 3 items
-rwxrwxrwx   1       8947 2015-02-28 05:09 /copylogs/data_2015-02-13.csv
-rwxrwxrwx   1       7912 2015-02-28 05:09 /copylogs/data_2015-02-14.csv
-rwxrwxrwx   1      16786 2015-02-28 05:09 /copylogs/data_2015-02-15.csv

CREATE EXTERNAL TABLE is_data_copy (user_id STRING, action_name STRING, timestamp STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'  STORED AS TEXTFILE LOCATION 's3n://bucketname/copylogs/';

SELECT * FROM is_data_copy LIMIT 10;

后者经过复制后,效果很好。
下面两个命令都起作用:

hadoop fs -cat s3n://bucketname/logs/data_2015-02-15.csv
hadoop fs -cat s3n://bucketname/copylogs/data_2015-02-15.csv

版本:Hive0.11.0和Hadoop1.0.3。
这是某种虫子吗?是否与aws s3有关?有什么想法吗?我需要能够读取原始位置,因为这是数据不断流动的地方。
我无法控制创建目录并将日志文件放在其中的进程,因此无法检查这一端的任何内容。
我做了一个实验:在s3上创建了一个键/文件夹,并以两种不同的方式将一个文件放入其中:使用aws管理控制台和hadoopfs。我可以在文件夹中看到一个零字节的文件,以防我使用aws控制台,并且我得到一个空指针异常,用hive评估它。使用hadoop fs我没有这样的问题。我假设,零字节文件应该被删除,但它不是在aws控制台的情况下。我确信,在我的例子中,s3文件夹不是从aws控制台创建的,但可能是ruby或javascript。

tv6aics1

tv6aics11#

好像是 hive 里的虫子。Hive0.12.0没有这个问题。

相关问题