Azure Blob Store 设置¶
Driverless AI 可供您在 Driverless AI 应用程序内探索 Azure Blob Store 数据源。
请注意:根据您所安装的 Docker 版本,在启动 Driverless AI Docker 映像时,使用 docker run --runtime=nvidia
(>= Docker 19.03) 或 nvidia-docker
(< Docker 19.03) 命令。使用 docker version
检查所使用的 Docker 版本。
使用 Azure Blob Store 连接器的受支持数据源¶
以下数据源可与 Azure Blob Store 连接器一起使用。
Blob 存储
以下数据源可与 Azure Blob Store 连接器一起使用,同时还可使用 HDFS 连接器。
配置属性说明¶
以下配置属性专用于启用 Azure Blob 存储。
azure_blob_account_name
: Microsoft Azure 存储帐户名称。这应该是创建帐户时创建的 dns 前缀(例如,”mystorage”)。azure_blob_account_key
: 指定映射至帐户名称的帐户密钥。azure_connection_string
: 可指定新的连接字符串。利用此选项,您可以覆盖主机、端口和/或帐户名称。例如,azure_connection_string = "DefaultEndpointsProtocol=http;AccountName=<account_name>;AccountKey=<account_key>;BlobEndpoint=http://<host>:<port>/<account_name>;"
azure_blob_init_path
: 指定在 Azure Blob Store 浏览器 UI 中显示的 Azure Blob Store 启动路径。enabled_file_systems
: 您要启用的文件系统。为使数据连接器正常运行,必须进行此项配置。
以下其他配置属性可用于启用 HDFS 连接器以连接至 Azure Data Lake Gen 1(也可连接至 Azure Data Lake Gen 2)。
hdfs_config_path
: HDFS 配置文件夹路径位置。此文件夹可包含多个配置文件。hdfs_app_classpath
: HDFS classpath。hdfs_app_supported_schemes
: 受支持的模式列表用于初始检查,以确保将为连接器提供有效输入。
示例 1:启用 Azure Blob Store 数据连接器¶
此示例在启动 Driverless AI Docker 映像时,通过指定环境变量来启用 Azure Blob Store 数据连接器。这让用户能使用帐户名称引用 Azure 存储帐户中储存的数据,例如:https://mystorage.blob.core.windows.net
.
nvidia-docker run \
--pid=host \
--init \
--rm \
--shm-size=256m \
-e DRIVERLESS_AI_ENABLED_FILE_SYSTEMS="file,azrbs" \
-e DRIVERLESS_AI_AZURE_BLOB_ACCOUNT_NAME="mystorage" \
-e DRIVERLESS_AI_AZURE_BLOB_ACCOUNT_KEY="<access_key>" \
-p 12345:12345 \
-v /tmp/dtmp/:/tmp \
-v /tmp/dlog/:/log \
-v /tmp/dlicense/:/license \
-v /tmp/ddata/:/data \
-u $(id -u):$(id -g) \
h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx
此示例展示了如何在 config.toml 文件中配置 Azure Blob Store 选项,然后在 Docker 中启动 Driverless AI 时指定此文件。
配置 Driverless AI config.toml 文件。设置以下配置选项:
enabled_file_systems = "file, upload, azrbs"
azure_blob_account_name = "mystorage"
azure_blob_account_key = "<account_key>"
将 config.toml 文件挂载至 Docker 容器。
nvidia-docker run \ --pid=host \ --init \ --rm \ --shm-size=256m \ --add-host name.node:172.16.2.186 \ -e DRIVERLESS_AI_CONFIG_FILE=/path/in/docker/config.toml \ -p 12345:12345 \ -v /local/path/to/config.toml:/path/in/docker/config.toml \ -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -v /tmp/dtmp/:/tmp \ -v /tmp/dlog/:/log \ -v /tmp/dlicense/:/license \ -v /tmp/ddata/:/data \ -u $(id -u):$(id -g) \ h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx
此示例展示了在本机安装中启动 Driverless AI 时,如何在 config.toml 文件中启用 Azure Blob Store 数据连接器。这让用户能使用帐户名称引用 Azure 存储帐户中储存的数据,例如:https://mystorage.blob.core.windows.net
.
导出 Driverless AI config.toml 文件或将其添加至 ~/.bashrc。例如:
# DEB and RPM export DRIVERLESS_AI_CONFIG_FILE="/etc/dai/config.toml" # TAR SH export DRIVERLESS_AI_CONFIG_FILE="/path/to/your/unpacked/dai/directory/config.toml"
在 config.toml 文件中指定以下配置选项。
# File System Support # upload : standard upload feature # file : local file system/server file system # hdfs : Hadoop file system, remember to configure the HDFS config folder path and keytab below # dtap : Blue Data Tap file system, remember to configure the DTap section below # s3 : Amazon S3, optionally configure secret and access key below # gcs : Google Cloud Storage, remember to configure gcs_path_to_service_account_json below # gbq : Google Big Query, remember to configure gcs_path_to_service_account_json below # minio : Minio Cloud Storage, remember to configure secret and access key below # snow : Snowflake Data Warehouse, remember to configure Snowflake credentials below (account name, username, password) # kdb : KDB+ Time Series Database, remember to configure KDB credentials below (hostname and port, optionally: username, password, classpath, and jvm_args) # azrbs : Azure Blob Storage, remember to configure Azure credentials below (account name, account key) # jdbc: JDBC Connector, remember to configure JDBC below. (jdbc_app_configs) # hive: Hive Connector, remember to configure Hive below. (hive_app_configs) # recipe_url: load custom recipe from URL # recipe_file: load custom recipe from local file system enabled_file_systems = "file, azrbs" # Azure Blob Store Connector credentials azure_blob_account_name = "mystorage" azure_blob_account_key = "<account_key>"
完成后,保存更改,然后停止/重启 Driverless AI。
示例 3:启用 HDFS 连接器以连接至 Azure Data Lake Gen 1¶
此示例启用了 HDFS 连接器以连接至 Azure Data Lake Gen 1。这让用户能使用 adl uri 引用 Azure Data Lake 上储存的数据,例如:adl://myadl.azuredatalakestore.net
.
创建用于服务到服务身份验证的 Azure AD web 应用程序:https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-service-to-service-authenticate-using-active-directory
将 web 应用程序的信息添加至 Hadoop
core-site.xml
配置文件中:
<configuration> <property> <name>fs.adl.oauth2.access.token.provider.type</name> <value>ClientCredential</value> </property> <property> <name>fs.adl.oauth2.refresh.url</name> <value>Token endpoint created in step 1.</value> </property> <property> <name>fs.adl.oauth2.client.id</name> <value>Client ID created in step 1</value> </property> <property> <name>fs.adl.oauth2.credential</name> <value>Client Secret created in step 1</value> </property> <property> <name>fs.defaultFS</name> <value>ADL URIt</value> </property> </configuration>
记录 Hadoop Classpath 并添加
azure-datalake-store.jar
文件。此文件可在任何 Hadoop 版本的以下路径中找到:$HADOOP_HOME/share/hadoop/tools/lib/*
.
echo "$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*"
配置 Driverless AI config.toml 文件。设置以下配置选项:
enabled_file_systems = "upload, file, hdfs, azrbs, recipe_file, recipe_url" hdfs_config_path = "/path/to/hadoop/conf" hdfs_app_classpath = "/hadoop/classpath/" hdfs_app_supported_schemes = "['adl://']"
将 config.toml 文件挂载至 Docker 容器。
nvidia-docker run \ --pid=host \ --init \ --rm \ --shm-size=256m \ --add-host name.node:172.16.2.186 \ -e DRIVERLESS_AI_CONFIG_FILE=/path/in/docker/config.toml \ -p 12345:12345 \ -v /local/path/to/config.toml:/path/in/docker/config.toml \ -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -v /tmp/dtmp/:/tmp \ -v /tmp/dlog/:/log \ -v /tmp/dlicense/:/license \ -v /tmp/ddata/:/data \ -u $(id -u):$(id -g) \ h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx
创建用于服务到服务身份验证的 Azure AD web 应用程序。https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-service-to-service-authenticate-using-active-directory
将 web 应用程序的信息添加至 hadoop
core-site.xml
配置文件中:
<configuration> <property> <name>fs.adl.oauth2.access.token.provider.type</name> <value>ClientCredential</value> </property> <property> <name>fs.adl.oauth2.refresh.url</name> <value>Token endpoint created in step 1.</value> </property> <property> <name>fs.adl.oauth2.client.id</name> <value>Client ID created in step 1</value> </property> <property> <name>fs.adl.oauth2.credential</name> <value>Client Secret created in step 1</value> </property> <property> <name>fs.defaultFS</name> <value>ADL URIt</value> </property> </configuration>
记录 Hadoop Classpath 并添加``azure-datalake-store.jar``文件。此文件可在任何 Hadoop 版本的以下路径中找到:
$HADOOP_HOME/share/hadoop/tools/lib/*
echo "$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*"
配置 Driverless AI config.toml 文件。设置以下配置选项:
enabled_file_systems = "upload, file, hdfs, azrbs, recipe_file, recipe_url" hdfs_config_path = "/path/to/hadoop/conf" hdfs_app_classpath = "/hadoop/classpath/" hdfs_app_supported_schemes = "['adl://']"
完成后,保存更改,然后停止/重启 Driverless AI。
示例 4:启用 HDFS 连接器以连接至 Azure Data Lake Gen 2¶
此示例启用了 HDFS 连接器以连接至 Azure Data Lake Gen 2。这让用户能使用 Azure Blob 文件系统驱动程序引用 Azure Data Lake 上储存的数据,例如:abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>
.
创建 Azure 服务主体:https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal
将权限授予步骤 1 中创建的服务主体,以访问 Blob:https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad
将 web 应用程序的信息添加至 Hadoop
core-site.xml
配置文件中:
<configuration> <property> <name>fs.azure.account.auth.type</name> <value>OAuth</value> </property> <property> <name>fs.azure.account.oauth.provider.type</name> <value>org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider</value> </property> <property> <name>fs.azure.account.oauth2.client.endpoint</name> <value>Token endpoint created in step 1.</value> </property> <property> <name>fs.azure.account.oauth2.client.id</name> <value>Client ID created in step 1</value> </property> <property> <name>fs.azure.account.oauth2.client.secret</name> <value>Client Secret created in step 1</value> </property> </configuration>
记录 Hadoop Classpath 并添加所需的 jar 文件。这些文件可在 Hadoop 3.2 版和更高版本的以下路径中找到:
$HADOOP_HOME/share/hadoop/tools/lib/*
echo "$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*"请注意:ABFS 仅支持 3.2 或更高版本的 Hadoop。
配置 Driverless AI config.toml 文件。设置以下配置选项:
enabled_file_systems = "upload, file, hdfs, azrbs, recipe_file, recipe_url" hdfs_config_path = "/path/to/hadoop/conf" hdfs_app_classpath = "/hadoop/classpath/" hdfs_app_supported_schemes = "['abfs://']"
将 config.toml 文件挂载至 Docker 容器。
nvidia-docker run \ --pid=host \ --init \ --rm \ --shm-size=256m \ --add-host name.node:172.16.2.186 \ -e DRIVERLESS_AI_CONFIG_FILE=/path/in/docker/config.toml \ -p 12345:12345 \ -v /local/path/to/config.toml:/path/in/docker/config.toml \ -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -v /tmp/dtmp/:/tmp \ -v /tmp/dlog/:/log \ -v /tmp/dlicense/:/license \ -v /tmp/ddata/:/data \ -u $(id -u):$(id -g) \ h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx
创建 Azure 服务主体。https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal
将权限授予步骤 1 中创建的服务主体,以访问 Blob:https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad
将 web 应用程序的信息添加至 hadoop
core-site.xml
配置文件中:
<configuration> <property> <name>fs.azure.account.auth.type</name> <value>OAuth</value> </property> <property> <name>fs.azure.account.oauth.provider.type</name> <value>org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider</value> </property> <property> <name>fs.azure.account.oauth2.client.endpoint</name> <value>Token endpoint created in step 1.</value> </property> <property> <name>fs.azure.account.oauth2.client.id</name> <value>Client ID created in step 1</value> </property> <property> <name>fs.azure.account.oauth2.client.secret</name> <value>Client Secret created in step 1</value> </property> </configuration>
记录 Hadoop Classpath 并添加所需的 jar 文件。这些文件可在 Hadoop 3.2 版和更高版本的以下路径中找到:
$HADOOP_HOME/share/hadoop/tools/lib/*
echo "$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*"请注意:ABFS 仅支持 3.2 或更高版本的 Hadoop
配置 Driverless AI config.toml 文件。设置以下配置选项:
enabled_file_systems = "upload, file, hdfs, azrbs, recipe_file, recipe_url" hdfs_config_path = "/path/to/hadoop/conf" hdfs_app_classpath = "/hadoop/classpath/" hdfs_app_supported_schemes = "['abfs://']"
完成后,保存更改,然后停止/重启 Driverless AI。
常见问题解答¶
能否使用专用端点连接至我的存储帐户?
能。如果 Driverless AI 位于已允许的 VNET 中,则可使用专用端点。
Driverless AI 是否支持安全传输?
支持。Azure Blob Store 连接器通过 HTTPS 执行所有连接。
Driverless AI 是否支持分层命名空间?
支持。
能否使用 Azure 托管标识 (MSI) 访问 DataLake?
能。如果 Driverless AI 在具有托管标识的 Azure 虚拟机上运行,即能使用。若要启用 HDFS 连接器以使用 MSI 进行身份验证,则请添加至 core-site.xml:
对于 Gen 1:
<property> <name>fs.adl.oauth2.access.token.provider.type</name> <value>MSI</value> </property>对于 Gen 2:
<property> <name>fs.azure.account.auth.type</name> <value>OAuth</value> </property> <property> <name>fs.azure.account.oauth.provider.type</name> <value>org.apache.hadoop.fs.azurebfs.oauth2.MsiTokenProvider</value> </property>