火山引擎 E-MapReduce(EMR)自 EMR-3.1.1(对应 Hadoop 3.x 和 Hive 3.x)、EMR-2.2.0(对应 Hadoop 2.x 和 Hive 2.x)开始支持 Proton SDK。本文描述了如何在火山 EMR 的 Hive,或在自建 Hadoop 集群的 Hive 中使用 Proton SDK 读写 TOS 数据。
火山引擎 EMR 认证配置详见:Hadoop 使用 Proton - 认证配置。
根据不同 Proton 版本,下载对应的 Proton 包,详见:Hadoop 使用 Proton - 下载依赖,并配置 Hadoop 环境。
有以下两种方法配置 Hive:
增加如下配置:
<property> <name>hive.blobstore.optimizations.enabled</name> <value>true</value> </property> <property> <name>hive.blobstore.supported.schemes</name> <value>s3,s3a,s3n,tos</value> </property> <property> <name>hive.blobstore.use.blobstore.as.scratchdir</name> <value>false</value> </property>
set hive.blobstore.optimizations.enabled=true; set hive.blobstore.supported.schemes=s3,s3a,s3n,tos; set hive.blobstore.use.blobstore.as.scratchdir=false;
在创建 Hive 表的时候将 location 字段值设置成 TOS 地址,即可分析 TOS 的数据,例如:
CREATE EXTERNAL TABLE `palmplay_log_pv_csv`( `meta_id` STRING, `brand` STRING, `channel` STRING, `countrycode` STRING ) PARTITIONED BY (dt String) LOCATION 'tos://您的tos bucket name/palmplay_log_pv_csv';