hive数据挂载到Amazon S3时的问题

一、hive数据存放到S3时问题归纳

1.添加分区问题

alter table tableName add if not exists partition (dt='$day') location 's3://$day - (S3路径)';

正常hive表添加分区是默认建立我们指定的分区,在s3上使用默认语句会添加一个dt=日期的一个文件夹,而正常分区目录没有“dt=“,这时需要手动指定数据路径,即在partition后面添加location指定S3数据分区路径。

2.建表S3路径问题

正常S3路径为s3://,infocS3路径s3n://,我们使用的是s3a://,默认S3底层协议都会解析出后面两种,一般情况下不需要改动。如果当我们指定s3://创建目录后,发现添加分区不生效时,有可能走hive的时候没有解析成功,需要手动将s3://改成s3a://。

3.数据格式

(1)LZO

         STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'

扫描二维码关注公众号,回复: 5250750 查看本文章

(2)ORC

        STORED AS ORC;

(3)snappy.orc

       STORED AS ORC
       TBLPROPERTIES ("orc.compress"="SNAPPY")

(4)txt

       Stored as textfile;

4. jets3t-0.9.0.jar

报错:

添加jets3t-0.9.0.jar 包到 hadoop/lib

jar源码,大概跟S3协议有关。

没有此jar包可以查询简单数据,但是不能做运算。

META-INF/MANIFEST.MF
contribs.mx.LongCounter.java
contribs.mx.MxImpl.java
contribs.mx.S3BucketMx.java
contribs.mx.S3BucketMxMBean.java
contribs.mx.S3ObjectMx.java
contribs.mx.S3ObjectMxMBean.java
contribs.mx.S3ServiceErrorCodeTable.java
contribs.mx.S3ServiceExceptionMx.java
contribs.mx.S3ServiceMx.java
contribs.mx.S3ServiceMxMBean.java

 有兴趣可以加我的大数据、数据分析、爬虫群:
《453908562》

猜你喜欢

转载自blog.csdn.net/qq_31032181/article/details/84885548