一、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.