gpt4 book ai didi

hadoop - 使用 S3 作为默认文件系统

转载 作者:可可西里 更新时间:2023-11-01 15:26:19 29 4
gpt4 key购买 nike

您好,我在使用 Hive 时尝试将 S3 用作默认文件系统。我已经设置:

  • fs.defaultFS=s3://mybucket
  • fs.s3.awsAccessKeyId=myid
  • fs.awsSecretAccessKey=mysecretkey

我可以创建数据库和表,它们会显示在我的 s3 存储桶中。当我尝试使用这些表时出现问题 - 从中​​选择,插入。我得到一个错误:

Incomplete HDFS URI, no host: hdfs:/tmp/hive/hadoop/dir/filename

问题是它仍然使用 hdfs 而不是 s3,我还应该设置什么让 Hive 和 MapReduce 使用 S3 作为 FS?

最佳答案

使用 hive 和 Amazon S3 的最简单方法是启动 Amazon EMR 集群并使用存储在 S3 上的外部表

例如,此语句创建一个将存储在 S3 中的表:

CREATE EXTERNAL TABLE  parquet_hive (
requestBeginTime string,
adId string,
impressionId string,
referrer string,
userAgent string,
userCookie string,
ip string
)
STORED AS PARQUET
LOCATION 's3://myBucket/myParquet/';

然后您可以向其中插入数据:

INSERT OVERWRITE TABLE parquet_hive
SELECT
requestbegintime,
adid,
impressionid,
referrer,
useragent,
usercookie,
ip
FROM impressions;

参见:Converting to Columnar Formats

如果您使用自己的 Hadoop 集群而不是 Amazon S3,您可能需要一些额外的配置才能使用 S3(例如使用 s3n:s3a :).

关于hadoop - 使用 S3 作为默认文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46368558/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com