本文汇总了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均为示例。