# 示例 - Fluid访问HDFS所需的特殊配置

如果选择HDFS作为Alluxio的底层存储系统,并且HDFS具有特殊的配置时,Alluxio同样需要进行额外配置,以使得Alluxio能够 正常访问挂载的HDFS集群.

本文档展示了如何在Fluid中以声明式的方式完成Alluxio所需的特殊配置. 更多信息请参考在HDFS上配置Alluxio (opens new window)

# 前提条件

请参考Fluid安装文档 (opens new window)完成安装

# 运行示例

从HDFS配置文件创建ConfigMap

$ kubectl create configmap <configmap-name> --from-file=/path/to/hdfs-site.xml --from-file=/path/to/core-site.xml

创建Dataset资源对象

$ cat << EOF > dataset.yaml
apiVersion: data.fluid.io/v1alpha1
kind: Dataset
metadata:
  name: my-hdfs
spec:
  mounts:
    - mountPoint: hdfs://<namenode>:<port>
      name: hdfs
EOF
$ kubectl create -f dataset.yaml

创建AlluxioRuntime资源对象

$ cat << EOF > runtime.yaml
apiVersion: data.fluid.io/v1alpha1
kind: AlluxioRuntime
metadata:
  name: my-hdfs
spec:
  ...
  hadoopConfig: <configmap-name>
  ...
EOF

configmap-name须为之前创建的ConfigMap资源对象, 该ConfigMap必须与创建的AlluxioRuntime同处于同一Namespace. 其中必须包含以hdfs-site.xmlcore-site.xml为键的键值对. Fluid会检查 该ConfigMap中的内容,并从中选取hdfs-site.xml以及core-site.xml的键值对并以文件的形式挂载到Alluxio的各个Pod中.

$ kubectl create -f runtime.yaml

在Alluxio中查看HDFS配置文件

待Alluxio集群启动后,ConfigMap中的HDFS配置文件将被挂载到 alluxio-master Pod 和 alluxio-worker Pod中各容器的/hdfs-config目录下:

$ kubectl exec my-hdfs-master-0 -- ls /hdfs-config
hdfs-site.xml  core-site.xml

至此, Alluxio能够根据用户指定的配置文件正常地访问HDFS集群.