閱讀491 返回首頁    go 微信


控製台快速開始__快速入門_批量計算-阿裏雲

控製台快速開始例子

本文檔將介紹如何使用控製台來提交一個作業,目的是統計一個日誌文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數。

如果您還沒開通批量計算服務,請先開通

步驟預覽

  • 作業準備
    • 上傳數據文件到OSS
    • 上傳任務程序到OSS
  • 使用控製台提交作業
  • 查看作業狀態
  • 查看結果

1. 作業準備

本作業是統計一個日誌文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數。

該作業包含3個任務: split, count 和 merge:

  • split 任務會把日誌文件分成 3 份。
  • count 任務會統計每份日誌文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數(count 任務需要配置InstanceCount為3,表示同時啟動3個 count 任務)。
  • merge 任務會把 count 的結果統一合並起來。

DAG圖例:

DAG圖例

(1) 上傳數據文件到OSS

下載本例子所需的數據: log-count-data.txt

將 log-count-data.txt 上傳到:

oss://your-bucket/log-count/log-count-data.txt

  • your-bucket如表示您自己創建的bucket,本例子假設region為: cn-shenzhen.
  • 如何上傳到OSS,請參考OSS上傳文檔

(2) 上傳任務程序到OSS

本例子的作業程序是使用python編寫的, 下載本例子所需的程序: log-count.tar.gz

本例子不需要改動示例代碼。直接將 log-count.tar.gz 上傳到 oss,如上傳到:

oss://your-bucket/log-count/log-count.tar.gz。

如何上傳前麵已經講過。

  • BatchCompute 隻支持以 tar.gz 為後綴的壓縮包, 請注意務必用以上方式(gzip)打包, 否則將會無法解析。
  • 如果你要修改代碼,可以解壓後修改,然後要用下麵的方法打包:

命令如下:

  1. > cd log-count #進入目錄
  2. > tar -czf log-count.tar.gz * #打包,將所有這個目錄下的文件打包到 log-count.tar.gz

可以運行這條命令查看壓縮包內容:

  1. $ tar -tvf log-count.tar.gz

可以看到以下列表:

  1. conf.py
  2. count.py
  3. merge.py
  4. split.py

2. 使用控製台提交作業

登錄BatchCompute控製台

然後點擊”作業列表”—“提交作業”進行作業提交。請注意選擇合適Region(該region需要和bucket的region一致)。

提交作業

這裏使用了AutoCluster提交作業, 匿名集群需要至少配置2個參數, 其中:

  • 可用的鏡像ID, 可以使用係統提供的Image,也可以自行製作鏡像, 請看使用鏡像

  • 實例規格(InstanceType,實例類型),請看 目前支持類型

如果需要運行本例子,還需把 PackagePath (作業打包上傳的OSS路徑,本例子中為 oss://your-bucket/log-count/log-count.tar.gz)、

StdoutRedirectPath、StderrRedirectPath(任務結果和錯誤的輸出地址),修改成與上文對應的您的OSS路徑(本例子中為:oss://your-bucket/log-count/logs/)。

作業JSON模板如下,具體參數含義請參照這裏

  1. {
  2. "DAG": {
  3. "Dependencies": {
  4. "split": [
  5. "count"
  6. ],
  7. "count": [
  8. "merge"
  9. ],
  10. "merge": []
  11. },
  12. "Tasks": {
  13. "split": {
  14. "InstanceCount": 1,
  15. "LogMapping": {},
  16. "AutoCluster": {
  17. "ResourceType": "OnDemand",
  18. "InstanceType": "bcs.a2.large",
  19. "ImageId": "img-ubuntu"
  20. },
  21. "Parameters": {
  22. "Command": {
  23. "EnvVars": {},
  24. "CommandLine": "python split.py",
  25. "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
  26. },
  27. "InputMappingConfig": {
  28. "Lock": true
  29. },
  30. "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
  31. "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
  32. },
  33. "InputMapping": {
  34. "oss://your-bucket/log-count/": "/home/input/"
  35. },
  36. "OutputMapping": {
  37. "/home/output/": "oss://your-bucket/log-count/"
  38. },
  39. "MaxRetryCount": 0,
  40. "Timeout": 21600,
  41. "ClusterId": ""
  42. },
  43. "merge": {
  44. "InstanceCount": 1,
  45. "LogMapping": {},
  46. "AutoCluster": {
  47. "ResourceType": "OnDemand",
  48. "InstanceType": "bcs.a2.large",
  49. "ImageId": "img-ubuntu"
  50. },
  51. "Parameters": {
  52. "Command": {
  53. "EnvVars": {},
  54. "CommandLine": "python merge.py",
  55. "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
  56. },
  57. "InputMappingConfig": {
  58. "Lock": true
  59. },
  60. "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
  61. "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
  62. },
  63. "InputMapping": {
  64. "oss://your-bucket/log-count/": "/home/input/"
  65. },
  66. "OutputMapping": {
  67. "/home/output/": "oss://your-bucket/log-count/"
  68. },
  69. "MaxRetryCount": 0,
  70. "Timeout": 21600,
  71. "ClusterId": ""
  72. },
  73. "count": {
  74. "InstanceCount": 3,
  75. "LogMapping": {},
  76. "AutoCluster": {
  77. "ResourceType": "OnDemand",
  78. "InstanceType": "bcs.a2.large",
  79. "ImageId": "img-ubuntu"
  80. },
  81. "Parameters": {
  82. "Command": {
  83. "EnvVars": {},
  84. "CommandLine": "python count.py",
  85. "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
  86. },
  87. "InputMappingConfig": {
  88. "Lock": true
  89. },
  90. "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
  91. "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
  92. },
  93. "InputMapping": {
  94. "oss://your-bucket/log-count/": "/home/input/"
  95. },
  96. "OutputMapping": {
  97. "/home/output/": "oss://your-bucket/log-count/"
  98. },
  99. "MaxRetryCount": 0,
  100. "Timeout": 21600,
  101. "ClusterId": ""
  102. }
  103. }
  104. },
  105. "Description": "batchcompute job",
  106. "Priority": 0,
  107. "JobFailOnInstanceFail": true,
  108. "Type": "DAG",
  109. "Name": "log-count"
  110. }

確定各個參數及路徑填寫正確後,點擊左下角的“提交作業”,並確認。

3. 查看作業狀態

點擊作業列表中最新提交的log-count作業,可以查看詳情:

作業詳情

點擊任務名稱 split,可以查看任務詳情:

任務詳情

點擊綠色方塊,可以查看實例的日誌:

查看日誌

4. 查看結果

您可以登錄OSS控製台 查看your-bucket 這個bucket下麵的這個文件:/log-count/merge_result.json。

內容應該如下:

  1. {"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}

最後更新:2016-12-05 15:22:39

  上一篇:go 開通批量計算__快速入門_批量計算-阿裏雲
  下一篇:go 命令行快速開始1__快速入門_批量計算-阿裏雲