Hive 示例

准备安装文件

安装文件在inlong-sort-standalone/sort-standalone-dist/target/目录下,文件名是apache-inlong-sort-standalone-${project.version}-bin.tar.gz。

准备修改配置文件

首先,解压压缩包apache-inlong-sort-standalone-${project.version}-bin.tar.gz,然后从目录”conf/hive/“下拷贝3个文件到目录”conf/“。

  • conf/common.properties,所有组件的基本配置参数
  • conf/SortClusterConfig.conf,所有Sort任务的sink配置。, sink configuration of all sort tasks.
  • conf/sid_hive_inlong6th_v3.conf,一个Sort任务的数据源配置,文件名和配置文件SortClusterConfig.conf中的Sort任务名一致,如果SortClusterConfig.conf中配置了多个Sort任务,那么会有多个Sort任务的数据源配置。

conf/common.properties配置样例

  1. clusterId=hivev3-sz-sz1
  2. nodeId=nodeId
  3. metricDomains=Sort
  4. metricDomains.Sort.domainListeners=org.apache.inlong.sort.standalone.metrics.prometheus.PrometheusMetricListener
  5. metricDomains.Sort.snapshotInterval=60000
  6. sortChannel.type=org.apache.inlong.sort.standalone.channel.BufferQueueChannel
  7. sortSink.type=org.apache.inlong.sort.standalone.sink.hive.HiveSink
  8. sortSource.type=org.apache.inlong.sort.standalone.source.sortsdk.SortSdkSource
  9. sortClusterConfig.type=file
  10. sortClusterConfig.file=SortClusterConfig.conf
  11. sortSourceConfig.QueryConsumeConfigType=file
  12. #sortTaskId.conf
  13. #sortClusterConfig.type=manager
  14. #sortSourceConfig.QueryConsumeConfigType=manager
  15. #managerUrlLoaderType=org.apache.inlong.sort.standalone.config.loader.CommonPropertiesManagerUrlLoader
  16. #sortClusterConfig.managerUrl=http://${manager_ip:port}/api/inlong/manager/openapi/sort/getClusterConfig
  17. #sortSourceConfig.managerUrl=http://${manager_ip:port}/api/inlong/manager/openapi/sort/getSortSource

conf/SortClusterConfig.conf配置样例

  1. {
  2. "clusterName": "hivev3-sz-sz1",
  3. "sortTasks": [{
  4. "name": "sid_hive_inlong6th_v3",
  5. "type": "HIVE",
  6. "idParams": [{
  7. "inlongGroupId": "atta",
  8. "inlongStreamId": "0fc00000046",
  9. "separator": "|",
  10. "partitionIntervalMs": 3600000,
  11. "idRootPath": "/user/hive/warehouse/t_inlong_v1_0fc00000046",
  12. "partitionSubPath": "/{yyyyMMdd}/{yyyyMMddHH}",
  13. "hiveTableName": "t_inlong_v1_0fc00000046",
  14. "partitionFieldName": "dt",
  15. "partitionFieldPattern": "yyyyMMddHH",
  16. "msgTimeFieldPattern": "yyyy-MM-dd HH:mm:ss",
  17. "maxPartitionOpenDelayHour": 8
  18. }],
  19. "sinkParams": {
  20. "hdfsPath": "hdfs://10.160.139.123:9000",
  21. "maxFileOpenDelayMinute": "5",
  22. "tokenOvertimeMinute": "60",
  23. "maxOutputFileSizeGb": "2",
  24. "hiveJdbcUrl": "jdbc:hive2://10.160.142.179:10000",
  25. "hiveDatabase": "default",
  26. "hiveUsername": "hive",
  27. "hivePassword": "hive"
  28. }
  29. }]
  30. }

conf/sid_hive_inlong6th_v3.conf配置样例

  1. {
  2. "sortClusterName": "hivev3-sz-sz1",
  3. "sortTaskId": "sid_hive_inlong6th_v3",
  4. "cacheZones": {
  5. "pc_atta6th_sz1": {
  6. "zoneName": "pc_atta6th_sz1",
  7. "serviceUrl": "http://9.139.53.86:8080",
  8. "authentication": "eyJrZXlJZCI6InB1bHNhci04MnhhN24zZWs1ZHciLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItODJ4YTduM2VrNWR3X2FkbWluIn0.D5H_j8UQk8KYWHw_mzq2HmR393SnbL5Gz7JYCANBPnI",
  9. "topics": [{
  10. "topic": "pulsar-82xa7n3ek5dw/atta/atta_topic_1",
  11. "partitionCnt": 10,
  12. "topicProperties": {}
  13. }],
  14. "cacheZoneProperties": {},
  15. "zoneType": "pulsar"
  16. }
  17. }
  18. }

conf/common.properties配置参数

参数名是否必须默认值描述
clusterIdYNA用来唯一标识一个inlong-sort-standalone集群
nodeIdN本机IP当前节点ID
metricDomainsNSort指标汇总域名
metricDomains.Sort.domainListenersNorg.apache.inlong.sort.standalone.metrics.prometheus.PrometheusMetricListener指标汇总监听器类名列表,空格分隔
metricDomains.Sort.snapshotIntervalN60000订阅tube的重试超时时间,单位为ms
prometheusHttpPortN8080org.apache.inlong.sort.standalone.metrics.prometheus.PrometheusMetricListener的参数,Prometheus的HttpServer端口
sortChannel.typeNorg.apache.inlong.sort.standalone.channel.BufferQueueChannelChannel类型
sortSink.typeYNASink类名,不同的分发类型使用不同的Sink类
sortSource.typeNorg.apache.inlong.sort.standalone.source.sortsdk.SortSdkSourceSource类名
sortClusterConfig.typeNmanager集群配置数据的加载来源,有三种方式:[文件,Manager,自定义类]。
sortClusterConfig.fileNSortClusterConfig.conf当集群配置数据加载来源是file时,在类路径下的配置文件名
sortClusterConfig.managerUrlNNA集群配置数据加载来源是manager时,这里定义InlongManager的URL
比如:http://${manager ip:port}/api/inlong/manager/openapi/sort/standalone/getClusterConfig
sortSourceConfig.QueryConsumeConfigTypeNmanagerSort任务配置数据的加载来源,有三种方式:[文件,Manager,自定义类]。
如果加载路径是file的话,Sort任务配置文件是在类路径里,文件名的格式:${sortTaskId}.conf。
sortSourceConfig.managerUrlNNASort任务配置数据加载来源是manager时,这里定义InlongManager的URL
比如::http://${manager ip:port}/api/inlong/manager/openapi/sort/standalone/getSortSource

SortClusterConfig.conf配置参数

  • 可以从ClassPath的SortClusterConfig.conf源文件读取,但不支持实时更新
  • 可以从Inlong Manager的HTTP接口获取配置,支持实时更新
参数名是否必须类型默认值描述
clusterNameYStringNA用来唯一标识一个inlong-sort-standalone集群
sortTasksYJsonArray<SortTaskConfig>NASort任务列表

SortTaskConfig配置参数

参数名是否必须默认值描述
nameYNASort任务名
typeYNASort任务类型,如:HIVE(“hive”), TUBE(“tube”), KAFKA(“kafka”), PULSAR(“pulsar”), ElasticSearch(“ElasticSearch”), UNKNOWN(“n”)
idParamsYNAInlong数据流参数列表
sinkParamsYNASort任务参数

Sort-Hive任务的idParams配置参数

参数名是否必须默认值描述
inlongGroupIdYNAinlongGroupId
inlongStreamIdYNAinlongStreamId
separatorYNA分隔符
partitionIntervalMsN3600000分区间隔时间,单位毫秒
idRootPathYNAInlong数据流的Hdfs根目录
partitionSubPathYNAInlong数据流的分区子目录
hiveTableNameYNAInlong数据流的Hive表名
partitionFieldNameNdtInlong数据流的分区字段名
partitionFieldPatternYNAInlong数据流的分区字段值格式,如{yyyyMMdd}、{yyyyMMddHH}、{yyyyMMddHHmm}
msgTimeFieldPatternYNA消息生成时间的字段值格式,Java时间格式
maxPartitionOpenDelayHourN8分区最大打开延迟时间,单位小时

Sort-Hive任务的sinkParams配置参数

参数名是否必须默认值描述
hdfsPathYNAHDFS的NameNode
maxFileOpenDelayMinuteN5单个HDFS文件最大写入时间,单位分钟
tokenOvertimeMinuteN60单个Inlong数据流的分区创建token最大占用时间,单位分钟
maxOutputFileSizeGbN2单个HDFS文件最大大小,单位GB
hiveJdbcUrlYNAHive的JDBC路径
hiveDatabaseYNAHive的数据库
hiveUsernameYNAHive的用户名
hivePasswordYNAHive的密码

Sort-Hive任务的sid_hive_inlong6th_v3.conf配置

  • 文件名格式:Sort任务名+”.conf”。
  • 可以从ClassPath的SortClusterConfig.conf源文件读取,但不支持实时更新。
  • 可以从Inlong Manager的HTTP接口获取配置,支持实时更新。

sid_hive_inlong6th_v3.conf配置参数

参数名是否必须类型默认值描述
sortClusterNameYStringNA用来唯一标识一个inlong-sort-standalone集群
sortTaskIdYStringNASort任务名
cacheZonesYJsonObject<String, JsonObject>NA缓存层集群列表,格式:Map<cacheClusterName, CacheCluster>

CacheCluster配置参数

参数名是否必须类型默认值描述
zoneNameYStringNA缓存层集群名
zoneTypeYStringNA缓存类型:[pulsar,tube,kafka]
serviceUrlYStringNAPulsar的serviceUrl参数,或者Kafka的Broker列表
authenticationYStringNAPulsar鉴权
cacheZonePropertiesNMap<String,String>NA缓存层Consumer参数
topicsNList<Topic>NA缓存层消费的Topic列表

Topic配置参数

参数名是否必须类型默认值描述
topicYStringNATopic完整名,Pulsar:tenant/namespace/topic
partitionCntYIntegerNATopic分区数
topicPropertiesNMap<String,String>NA缓存层Topic的Consumer参数

启动inlong-sort-standalone应用

最后,执行脚本”./bin/sort-start.sh”,启动sort-standalone应用,之后可以检查日志文件sort.log,确认启动情况。