hadoop streaming直接读取hive的orc文件

技术宅 rainforest 12个月前 (04-19) 737次浏览 0个评论

我们为了节省存储,对于hive表通常会使用orc文件格式。

那我们怎么直接用hadoop streaming读取呢?

通过show create table可以看到这个orc的格式为org.apache.hadoop.hive.ql.io.orc.OrcInputFormat,那我们直接把hadoop streaming的-inputformat设置为该格式就可以了。

但是这时候找不到这个格式,需要在命令中加上-libjars /data/opt/hive/lib/hive-exec-2.3.0.jar

具体的提交命令如下:

hadoop jar $common/bin/hadoop-streaming.jar -libjars /data/opt/hive/lib/hive-exec-2.3.0.jar \
-D mapred.job.name="$JOB_NAME" \
-D stream.num.map.output.key.fields=1 \
-D num.key.fields.for.partition=1 \
-D mapred.map.tasks=5000 \
-D mapred.reduce.tasks=50 \
-D mapred.job.map.capacity=5000 \
-D mapred.job.reduce.capacity=50 \
-D mapred.job.priority="VERY_HIGH" \
-D stream.memory.limit=800 \
-D mapred.output.compress=true \
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-inputformat org.apache.hadoop.hive.ql.io.orc.OrcInputFormat \
-input $input_path \
-output ${output_path}  \
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner \
-mapper "cat" \
-reducer "cat"

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:hadoop streaming直接读取hive的orc文件
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址