全部產品
Search
文件中心

E-MapReduce:常見問題

更新時間:Jul 01, 2024

本文匯總了Alluxio使用時的常見問題。

錯誤提示:No FileSystem for scheme: alluxio

如果您是在建立E-MapReduce叢集時選擇的Alluxio服務,是不會出現此類問題的。通常情況下,此類問題是由於您在E-MapReduce叢集建立後,通過添加服務的方式添加的Alluxio服務,添加服務後沒有重啟服務。

添加完Alluxio服務後,您需要重啟服務來載入Hadoop配置。重啟服務的具體操作,請參見重啟服務

如何排查Alluxio服務狀態異常的問題?

您需要報錯資訊先尋找Alluxio服務異常的節點,找到異常資訊,然後查看Alluxio服務的異常日誌來確認問題。

通常情況下,Alluxio服務的日誌位於/mnt/disk1/log/alluxio/目錄下。

如何對OSS進行緩衝加速?

E-MapReduce預設使用HDFS作為Alluxio的UFS,對於OSS目錄建議作為掛載點來使用。

您可以使用如下代碼,對OSS上的資料進行緩衝加速。命令樣本如下所示。
alluxio fs mount --option fs.oss.accessKeyId=<OSS_ACCESS_KEY_ID> \
  --option fs.oss.accessKeySecret=<OSS_ACCESS_KEY_SECRET> \
  --option fs.oss.endpoint=<OSS_ENDPOINT> \
  /oss_dir <path>/
程式碼範例中的參數描述如下:
  • <OSS_ACCESS_KEY_ID>:阿里雲帳號的AccessKey ID。
  • <OSS_ACCESS_KEY_SECRET>:阿里雲帳號的AccessKey Secret。
  • <OSS_ENDPOINT>:OSS的地區。您可以在OSS的控制台查看,通常為oss-xxxx-internal.aliyuncs.com形式。EMR叢集需要和OSS在同一Region下,建議使用內網Endpoint,例如oss-cn-shanghai-internal.aliyuncs.com
  • <path>:OSS上檔案的路徑。例如,oss://<OSS_YOURBUCKETNAME>/<OSS_DIRECTORY><OSS_YOURBUCKETNAME>為您OSS Bucket的名稱。

如何配置Alluxio參數?

您可以通過配置全域參數和動態傳入配置兩種方式修改Alluxio參數。
  • 配置全域參數

    您可以在E-MapReduce控制台的Alluxio服務頁面,修改配置項,詳細資料請參見管理組件參數

  • 動態傳入配置
    • Alluxio Shell
      您可以登入叢集,通過-Dproperty=value格式的命令,添加自訂配置,程式碼範例如下所示。
      alluxio fs copyFromLocal hello.txt /dir/tmp -Dalluxio.user.file.writetype.default=CACHE_THROUGH
      說明 代碼中的hello.txt為您本地的檔案,/dir/tmp為Alluxio檔案系統中的目錄。copyFromLocal 命令的用法,請參見常見命令
    • Spark作業

      您可以通過對Spark executor的spark.executor.extraJavaOptions和Spark drivers的spark.driver.extraJavaOptions添加-Dproperty=value格式的命令,向Spark作業傳遞JVM環境參數。

      例如,提交Spark作業時,將Alluxio寫類型設定為CACHE_THROUGH,程式碼片段樣本如下所示。
      spark-submit \
      --conf 'spark.driver.extraJavaOptions=-Dalluxio.user.file.writetype.default=CACHE_THROUGH' \
      --conf 'spark.executor.extraJavaOptions=-Dalluxio.user.file.writetype.default=CACHE_THROUGH' \
    • MapReduce作業

      您可以在hadoop jaryarn jar命令後添加-Dproperty=value格式的命令,向MapReduce作業傳遞屬性。

      例如,在MapReduce作業中,將Alluxio寫類型設定為CACHE_THROUGH,程式碼片段樣本如下所示。
      hadoop jar <HADOOP_HOME>/share/hadoop/mapreduce/hadoop-mapreduce-examples-x.x.x.jar wordcount \
      -Dalluxio.user.file.writetype.default=CACHE_THROUGH \
      -libjars /<PATH_TO_ALLUXIO>/client/alluxio-x.x.x.-client.jar \
      <path1> <path2>
      說明 程式碼範例中的<path1>為輸入檔案的路徑,<path2>為輸出檔案的目錄,x.x.x為JAR包的具體版本號碼。<HADOOP_HOME>/share/hadoop/mapreduce/hadoop-mapreduce-examples-x.x.x.jar<PATH_TO_ALLUXIO>/client/alluxio-x.x.x.-client.jar均為樣本。