AWS Data Pipeline 不再提供給新客戶。現有客戶 AWS Data Pipeline 可繼續正常使用此服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
HiveActivity
在EMR集群上運行蜂巢查詢。 HiveActivity
可讓您更輕鬆地設定 Amazon EMR 活動,並根據來自 Amazon S3 或 Amazon 的輸入資料自動建立 Hive 資料表RDS。您需要指定的是要在源數據上運行的 HiveQL。 AWS Data Pipeline 根據物件中的輸入欄位 ${input1}
${input2}
,自動建立具有、等的 Hive 資料HiveActivity
表。
對於 Amazon S3 輸入,此dataFormat
欄位是用來建立 Hive 資料行名稱。
對於我的SQL(AmazonRDS)輸入,SQL查詢的列名稱用於創建蜂巢列名。
注意
此活動使用蜂巢CSV服務
範例
以下為此物件類型的範例。此物件會參考三個您在相同管道定義檔案中定義的其他物件。MySchedule
是 Schedule
物件,MyS3Input
和 MyS3Output
則是資料節點物件。
{ "name" : "ProcessLogData", "id" : "MyHiveActivity", "type" : "HiveActivity", "schedule" : { "ref": "MySchedule" }, "hiveScript" : "INSERT OVERWRITE TABLE ${output1} select host,user,time,request,status,size from ${input1};", "input" : { "ref": "MyS3Input" }, "output" : { "ref": "MyS3Output" }, "runsOn" : { "ref": "MyEmrCluster" } }
語法
物件呼叫欄位 | 描述 | 槽類型 |
---|---|---|
schedule | 在排程間隔的執行期間會呼叫此物件。指定其他物件的排程參考,以設定此物件的相依性執行順序。您可以在物件上明確設定排程來滿足此需求,例如指定「schedule」: {"ref」: DefaultSchedule "}。在大部分的情況下,建議您將排程參考放在預設的管道物件,讓所有物件都繼承該排程。或者,如果管道有排程的樹狀目錄 (主排程內還有排程),您可以建立含排程參考的父物件。如需範例選用排程組態的詳細資訊,請參閱 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html。 | 參考對象,例如「時間表」:{「ref」:」myScheduleId「} |
必要的群組 (下列其中之一為必要) | 描述 | 槽類型 |
---|---|---|
hiveScript | 要執行的 Hive 指令碼。 | 字串 |
scriptUri | 要執行的 Hive 指令碼的位置 (例如 s3://scriptLocation)。 | 字串 |
必要群組 | 描述 | 槽類型 |
---|---|---|
runsOn | HiveActivity 執行此動作的EMR叢集。 |
引用對象,例如 runsOn「「:{" ref」:」myEmrCluster ID "} |
workerGroup | 工作者群組。這是用於路由任務。如果您提供 runsOn 值,且 workerGroup 存在,則會忽略 workerGroup 。 |
字串 |
input | 輸入資料來源。 | 引用對象,例如「輸入」:{「參考」:「myDataNodeID」} |
output | 輸出資料來源。 | 引用對象,例如「輸出」:{「ref」:「myDataNodeId」} |
選用欄位 | 描述 | 槽類型 |
---|---|---|
attemptStatus | 遠端活動最新回報的狀態。 | 字串 |
attemptTimeout | 遠端工作完成的逾時。如果設定,則系統可能會重試未在設定開始時間內完成的遠端活動。 | 期間 |
dependsOn | 指定與另一個可執行物件的相依性。 | 參考物件,例如 dependsOn "" ": {" ref」:」myActivityId「} |
failureAndRerun模式 | 描述相依性故障或重新執行時的消費者節點行為。 | 列舉 |
hadoopQueue | 要提交任務至其中的 Hadoop 排程器佇列名稱。 | 字串 |
lateAfterTimeout | 管線開始後,物件必須在其中完成的經過時間。僅當明細表類型未設定為時,才會觸發此選項ondemand 。 |
期間 |
maxActiveInstances | 同時作用中的元件執行個體數目上限。重新執行不計入作用中的執行個體數量。 | Integer |
maximumRetries | 故障時嘗試重試的次數上限。 | Integer |
onFail | 目前物件發生故障時要執行的動作。 | 參考物件,例如 onFail "" ": {" ref」:」myActionId「} |
onLateAction | 某個物件尚未排程或仍未完成時,應該觸發的動作。 | 參考物件,例如 onLateAction "" ": {" ref」:」myActionId「} |
onSuccess | 目前物件成功時要執行的動作。 | 參考物件,例如 onSuccess "" ": {" ref」:」myActionId「} |
parent | 目前物件的父系,其插槽會被繼承。 | 引用對象,例如「父」:{「ref」:「myBaseObjectId」} |
pipelineLogUri | 用於上傳管道日誌的 S3URI(例如 's3://BucketName/鍵/')。 | 字串 |
postActivityTaskConfig | 要執行的活動後組態指令碼。這是由 Amazon S3 中URI的殼層指令碼和引數清單所組成。 | 引用對象,例如「postActivityTaskConfig」:{「ref」:」myShellScript ConfigId「} |
preActivityTaskConfig | 要執行的活動前組態指令碼。這是由 Amazon S3 中URI的殼層指令碼和引數清單所組成。 | 引用對象,例如「preActivityTaskConfig」:{「ref」:」myShellScript ConfigId「} |
precondition | 選擇是否定義先決條件。在符合所有先決條件之前,資料節點不會標記 READY ""。 | 引用對象,例如「先決條件」:{「ref」:」myPreconditionId「} |
reportProgressTimeout | 遠端工作連續呼叫 reportProgress 的逾時。如果設定,則不回報指定時段進度的遠端活動,可能會視為已停滯而重試。 |
期間 |
resizeClusterBefore跑步 | 在執行此活動之前重新調整叢集大小,以容納指定為輸入或輸出的 DynamoDB 資料節點。注意如果您的活動使用 a |
Boolean |
resizeClusterMax實例 | 調整大小演算法可請求的執行個體數目上限。 | Integer |
retryDelay | 兩次重試嘗試之間的逾時持續時間。 | 期間 |
scheduleType | 排程類型可讓您指定管道定義的物件應該排程在間隔開頭還是間隔結尾。時間序列樣式排程表示執行個體排程在每個間隔的結尾,而 Cron 樣式排程表示執行個體排程在每個間隔的開頭。隨需排程可讓您在每次啟用時執行一次管道。這表示您不必複製或重新建立管道,然後再執行一次。如果您使用隨選排程,則必須在預設物件中指定該排程,且必須是管線中物件的唯一 scheduleType 指定排程。若要使用隨選管線,您只需針對每次後續執行呼叫 ActivatePipeline 作業即可。值為:Cron、ondemand 和 timeseries。 | 列舉 |
scriptVariable | 指定 Amazon 在運行腳本時傳遞EMR給 Hive 的腳本變量。例如,下列範例指令碼變數會將SAMPLE和 FILTER _ DATE 變數傳遞至 Hive:SAMPLE=s3://elasticmapreduce/samples/hive-ads 和
FILTER_DATE=#{format(@scheduledStartTime,'YYYY-MM-dd')}% 。此欄位接受多個值,並可使用 script 和 scriptUri 欄位。此外,無論預備是設為 true 或 false ,scriptVariable 都會正常運作。此欄位在使用
AWS Data Pipeline 表達式和函數,將動態值傳送給 Hive 時特別有用。 |
字串 |
stage | 決定在執行指令碼之前或之後是否啟用預備。蜂巢 11 不允許使用,因此請使用 Amazon EMR AMI 版本 3.2.0 或更高版本。 | Boolean |
執行時間欄位 | 描述 | 槽類型 |
---|---|---|
@activeInstances | 目前已排程的作用中執行個體物件清單。 | 參考物件,例如 "activeInstances" ": {" ref」: "myRunnableObjectId"} |
@actualEndTime | 此物件執行完成的時間。 | DateTime |
@actualStartTime | 此物件執行開始的時間。 | DateTime |
cancellationReason | cancellationReason 如果此物件已取消。 | 字串 |
@cascadeFailedOn | 物件失敗所在的相依鏈的描述。 | 參考物件,例如 "cascadeFailedOn" ": {" ref」: "myRunnableObjectId"} |
emrStepLog | Amazon EMR 步驟日誌僅適用於EMR活動嘗試。 | 字串 |
errorId | errorId 如果此對象失敗。 | 字串 |
errorMessage | errorMessage 如果此對象失敗。 | 字串 |
errorStackTrace | 如果此物件失敗,則為錯誤堆疊追蹤。 | 字串 |
@finishedTime | 此物件完成其執行的時間。 | DateTime |
hadoopJobLog | Hadoop 工作日誌可用於EMR基於活動的嘗試。 | 字串 |
@healthStatus | 反映已達終止狀態之最後一個物件執行個體成功或失敗的物件運作狀態。 | 字串 |
@healthStatusFromInstanceId | 已達終止狀態之最後一個執行個體物件的 ID。 | 字串 |
@ healthStatusUpdated 時間 | 上次更新運作狀態的時間。 | DateTime |
hostname | 選取任務嘗試之用戶端的主機名稱。 | 字串 |
@lastDeactivatedTime | 此物件最後停用的時間。 | DateTime |
@ latestCompletedRun 時間 | 執行完成最近一次執行的時間。 | DateTime |
@latestRunTime | 執行排程最近一次執行的時間。 | DateTime |
@nextRunTime | 下次要排程執行的時間。 | DateTime |
reportProgressTime | 遠端活動最近報告進度的時間。 | DateTime |
@scheduledEndTime | 物件的排程結束時間。 | DateTime |
@scheduledStartTime | 物件的排程啟動時間。 | DateTime |
@status | 此物件的狀態。 | 字串 |
@version | 建立物件使用的管道版本。 | 字串 |
@waitingOn | 此物件等待之相依性清單的描述。 | 參考物件,例如 "waitingOn" ": {" ref」: "myRunnableObjectId"} |
系統欄位 | 描述 | 槽類型 |
---|---|---|
@error | 描述格式錯誤物件的錯誤。 | 字串 |
@pipelineId | 此物件所屬管道的 ID。 | 字串 |
@sphere | 物件範圍代表其在生命週期中的位置:Component 物件會引發執行 Attempt 物件的 Instance 物件。 | 字串 |