一、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'
(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》