Az Azure Data Lake Storage Gen1 elérése az Azure Databricksből
A Microsoft bejelentette az Azure Data Lake Storage Gen1 (korábbi nevén Azure Data Lake Store, más néven ADLS) tervezett kivonását, és javasolja, hogy minden felhasználó az Azure Data Lake Storage Gen2-be migráljon. A Databricks azt javasolja, hogy frissítsen az Azure Data Lake Storage Gen2-re a legjobb teljesítmény és az új funkciók érdekében.
Az Azure Data Lake Storage Gen1 kétféleképpen érhető el:
- Adja át a Microsoft Entra ID hitelesítő adatait, más néven hitelesítő adatokat.
- Alkalmazáspéldány közvetlen használata.
Automatikus hozzáférés a Microsoft Entra-azonosító hitelesítő adataival
Az Azure Databricks-fürtökről automatikusan hitelesítheti magát az Azure Data Lake Storage Gen1-ben ugyanazzal a Microsoft Entra-azonosítóval, amelyet az Azure Databricksbe való bejelentkezéshez használ. Ha engedélyezi a fürtöt a Microsoft Entra ID hitelesítő adatok átadásához, a fürtön futtatott parancsok anélkül olvashatják és írhatják az adatokat az Azure Data Lake Storage Gen1-ben, hogy a szolgáltatásnév hitelesítő adatait kellene konfigurálnia a tárolóhoz való hozzáféréshez.
A teljes beállítási és használati utasításokért lásd: Access Azure Data Lake Storage a Microsoft Entra ID hitelesítő adatok átengedése (örökölt) használatával.
Szolgáltatásnév létrehozása és engedélyek megadása
Ha a kiválasztott hozzáférési módszerhez megfelelő engedélyekkel rendelkező szolgáltatásnév szükséges, és nem rendelkezik ilyennel, kövesse az alábbi lépéseket:
- Hozzon létre egy Microsoft Entra-azonosítót (korábbi nevén Azure Active Directory- alkalmazást) és szolgáltatásnevet, amely hozzáfér az erőforrásokhoz. Vegye figyelembe a következő tulajdonságokat:
application-id
: Az ügyfélalkalmazást egyedileg azonosító azonosító.directory-id
: A Microsoft Entra ID-példányt egyedileg azonosító azonosító.service-credential
: Az alkalmazás identitásának igazolására használt sztring.
- Regisztrálja a szolgáltatásnevet, és adja meg a megfelelő szerepkör-hozzárendelést (például közreműködőt) az Azure Data Lake Storage Gen1-fiókban.
Közvetlen hozzáférés a Spark API-khoz szolgáltatásnév és OAuth 2.0 használatával
Az Azure Data Lake Storage Gen1-fiókjából való olvasáshoz konfigurálhatja a Sparkot a szolgáltatás hitelesítő adatainak használatára a jegyzetfüzetben az alábbi kódrészlettel:
spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("fs.adl.oauth2.client.id", "<application-id>")
spark.conf.set("fs.adl.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"))
spark.conf.set("fs.adl.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
ebben:
dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
Lekéri a titkos kulcs hatókörében titkos kódként tárolt tárfiók hozzáférési kulcsát.
A hitelesítő adatok beállítása után standard Spark- és Databricks API-k használatával érheti el az erőforrásokat. Példa:
val df = spark.read.format("parquet").load("adl://<storage-resource>.azuredatalakestore.net/<directory-name>")
dbutils.fs.ls("adl://<storage-resource>.azuredatalakestore.net/<directory-name>")
Az Azure Data Lake Storage Gen1 címtárszintű hozzáférés-vezérlést biztosít, így a szolgáltatásnévnek hozzáféréssel kell rendelkeznie az olvasni kívánt könyvtárakhoz, valamint az Azure Data Lake Storage Gen1 erőforráshoz.
Hozzáférés metaadattáron keresztül
A metaadattárban megadott helyek eléréséhez adl://
Spark-beállításként meg kell adnia a Hadoop hitelesítőadat-konfigurációs beállításait a fürt létrehozásakor. Ehhez adja hozzá az spark.hadoop.
előtagot a megfelelő Hadoop-konfigurációs kulcsokhoz, hogy propagálja őket a metaadattár által használt Hadoop-konfigurációkba:
spark.hadoop.fs.adl.oauth2.access.token.provider.type ClientCredential
spark.hadoop.fs.adl.oauth2.client.id <application-id>
spark.hadoop.fs.adl.oauth2.credential <service-credential>
spark.hadoop.fs.adl.oauth2.refresh.url https://login.microsoftonline.com/<directory-id>/oauth2/token
Figyelmeztetés
- Ezek a hitelesítő adatok a fürthöz hozzáférő összes felhasználó számára elérhetők.
Azure Data Lake Storage Gen1-erőforrás vagy mappa csatlakoztatása
Az 1. generációs Azure Data Lake Storage-erőforrás vagy mappa csatlakoztatásához használja a következő parancsot:
Python
configs = {"fs.adl.oauth2.access.token.provider.type": "ClientCredential",
"fs.adl.oauth2.client.id": "<application-id>",
"fs.adl.oauth2.credential": dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"),
"fs.adl.oauth2.refresh.url": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}
# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "adl://<storage-resource>.azuredatalakestore.net/<directory-name>",
mount_point = "/mnt/<mount-name>",
extra_configs = configs)
Scala
val configs = Map(
"fs.adl.oauth2.access.token.provider.type" -> "ClientCredential",
"fs.adl.oauth2.client.id" -> "<application-id>",
"fs.adl.oauth2.credential" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"),
"fs.adl.oauth2.refresh.url" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "adl://<storage-resource>.azuredatalakestore.net/<directory-name>",
mountPoint = "/mnt/<mount-name>",
extraConfigs = configs)
ebben:
<mount-name>
Egy DBFS-elérési út, amely azt jelzi, hogy az Azure Data Lake Storage Gen1-fiók vagy a benne lévő (a megadottsource
) mappa hol lesz csatlakoztatva a DBFS-ben.dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
Lekéri a titkos kulcs hatókörében titkos kódként tárolt tárfiók hozzáférési kulcsát.
A tárolóban lévő fájlokat úgy érheti el, mintha helyi fájlok lennének, például:
Python
df = spark.read.format("text").load("/mnt/<mount-name>/....")
df = spark.read.format("text").load("dbfs:/mnt/<mount-name>/....")
Scala
val df = spark.read.format("text").load("/mnt/<mount-name>/....")
val df = spark.read.format("text").load("dbfs:/mnt/<mount-name>/....")
Szolgáltatás hitelesítő adatainak beállítása több fiókhoz
A konfigurációs kulcsokhoz hozzáadva account.<account-name>
több Azure Data Lake Storage Gen1-fiókhoz is beállíthat szolgáltatás hitelesítő adatokat egyetlen Spark-munkamenetben való használatra. Ha például hitelesítő adatokat szeretne beállítani mindkét fiókhoz a hozzáféréshez adl://example1.azuredatalakestore.net
, és adl://example2.azuredatalakestore.net
ezt a következőképpen teheti meg:
spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("fs.adl.account.example1.oauth2.client.id", "<application-id-example1>")
spark.conf.set("fs.adl.account.example1.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential-example1>"))
spark.conf.set("fs.adl.account.example1.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id-example1>/oauth2/token")
spark.conf.set("fs.adl.account.example2.oauth2.client.id", "<application-id-example2>")
spark.conf.set("fs.adl.account.example2.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential-example2>"))
spark.conf.set("fs.adl.account.example2.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id-example2>/oauth2/token")
Ez a fürt Spark-konfigurációja esetén is működik:
spark.hadoop.fs.adl.oauth2.access.token.provider.type ClientCredential
spark.hadoop.fs.adl.account.example1.oauth2.client.id <application-id-example1>
spark.hadoop.fs.adl.account.example1.oauth2.credential <service-credential-example1>
spark.hadoop.fs.adl.account.example1.oauth2.refresh.url https://login.microsoftonline.com/<directory-id-example1>/oauth2/token
spark.hadoop.fs.adl.account.example2.oauth2.client.id <application-id-example2>
spark.hadoop.fs.adl.account.example2.oauth2.credential <service-credential-example2>
spark.hadoop.fs.adl.account.example2.oauth2.refresh.url https://login.microsoftonline.com/<directory-id-example2>/oauth2/token
Az alábbi jegyzetfüzet bemutatja, hogyan érheti el közvetlenül és csatlakoztatással az Azure Data Lake Storage Gen1-et.