Megosztás a következőn keresztül:


Python felhasználó által definiált függvények (UDF) használata az Apache Hive és az Apache Pig használatával a HDInsightban

Megtudhatja, hogyan használhatja a Python felhasználó által definiált függvényeket (UDF) az Apache Hive és az Apache Pig használatával az Apache Hadoopban az Azure HDInsightban.

Python a HDInsighton

Python2.7 alapértelmezés szerint a HDInsight 3.0-s és újabb verzióira van telepítve. Az Apache Hive a Python ezen verziójával használható streamfeldolgozáshoz. A streamfeldolgozás STDOUT és STDIN használatával továbbít adatokat a Hive és az UDF között.

A HDInsight tartalmazza a Jythont is, amely Egy Java-ban írt Python-implementáció. A Jython közvetlenül a Java virtuális gépen fut, és nem használ streamelést. A Jython az ajánlott Python-értelmező a Python és a Pig használatakor.

Előfeltételek

Feljegyzés

A cikkben használt tárfiók az Azure Storage volt, amelyen engedélyezve van a biztonságos átvitel , ezért wasbs a cikk egészében használják.

Tároló konfigurálása

Nincs szükség műveletre, ha a használt tárfiók fajta Storage (general purpose v1) vagy StorageV2 (general purpose v2). A cikkben szereplő folyamat legalább /tezstaginga kimenetet állítja elő. Az alapértelmezett hadoop-konfiguráció a fs.azure.page.blob.dir szolgáltatás HDFSkonfigurációs változójában core-site.xml található/tezstaging. Ez a konfiguráció miatt a könyvtár kimenete lapblobok, amelyek a tárfiók típusa BlobStorageesetén nem támogatottak. A cikk használatához BlobStorage távolítsa el /tezstaging a fs.azure.page.blob.dir konfigurációs változót. A konfiguráció az Ambari felhasználói felületén érhető el. Ellenkező esetben a következő hibaüzenet jelenik meg: Page blob is not supported for this account type.

Figyelmeztetés

A dokumentum lépései a következő feltételezéseket teszik:

  • A Python-szkripteket a helyi fejlesztési környezetben hozza létre.
  • A szkripteket feltöltheti a HDInsightba a scp parancs vagy a megadott PowerShell-szkript használatával.

Ha az Azure Cloud Shellt (bash) szeretné használni a HDInsight használatához, akkor a következőt kell tennie:

  • Hozza létre a szkripteket a Cloud Shell-környezetben.
  • A fájlok a cloud shellből a HDInsightba való feltöltésére használhatók scp .
  • A ssh cloud shell használatával csatlakozhat a HDInsighthoz, és futtathatja a példákat.

Apache Hive UDF

A Python uDF-ként használható a Hive-ből a HiveQL TRANSFORM utasításon keresztül. A következő HiveQL például meghívja a hiveudf.py fürt alapértelmezett Azure Storage-fiókjában tárolt fájlt.

add file wasbs:///hiveudf.py;

SELECT TRANSFORM (clientid, devicemake, devicemodel)
    USING 'python hiveudf.py' AS
    (clientid string, phoneLabel string, phoneHash string)
FROM hivesampletable
ORDER BY clientid LIMIT 50;

A példa a következő:

  1. A add file fájl elején található utasítás hozzáadja a hiveudf.py fájlt az elosztott gyorsítótárhoz, így a fürt összes csomópontja számára elérhető.
  2. Az SELECT TRANSFORM ... USING utasítás kiválasztja az adatokat a hivesampletable. Emellett átadja a clientid, devicemake és devicemodel értékeket a hiveudf.py szkriptnek.
  3. A AS záradék a visszaadott hiveudf.pymezőket írja le.

Fájl létrehozása

A fejlesztői környezetben hozzon létre egy szövegfájlt hiveudf.py. A fájl tartalmaként használja a következő kódot:

#!/usr/bin/env python
import sys
import string
import hashlib

while True:
    line = sys.stdin.readline()
    if not line:
        break

    line = string.strip(line, "\n ")
    clientid, devicemake, devicemodel = string.split(line, "\t")
    phone_label = devicemake + ' ' + devicemodel
    print "\t".join([clientid, phone_label, hashlib.md5(phone_label).hexdigest()])

Ez a szkript a következő műveleteket hajtja végre:

  1. Adatsort olvas be az STDIN-ből.
  2. A záró újvonalas karaktert a program eltávolítja a következővel string.strip(line, "\n "): .
  3. A streamfeldolgozás során egyetlen sor tartalmazza az összes értéket, amely az egyes értékek között tabulátorkarakorral rendelkezik. Így string.split(line, "\t") minden lapon feloszthatja a bemenetet, és csak a mezőket adja vissza.
  4. Ha a feldolgozás befejeződött, a kimenetet egyetlen sorként kell megírni az STDOUT-ba, az egyes mezők között tabulátorral. Például: print "\t".join([clientid, phone_label, hashlib.md5(phone_label).hexdigest()]).
  5. A while hurok addig ismétlődik, amíg nem olvas be.line

A szkript kimenete az összefűzött érték devicemake és devicemodelaz összefűzött érték kivonatának összefűzése.

Fájl feltöltése (rendszerhéj)

A következő parancs lecseréli sshuser a tényleges felhasználónevet, ha eltér. Cserélje le mycluster a tényleges fürtnévre. Győződjön meg arról, hogy a munkakönyvtárban található a fájl.

  1. A scp fájlokat a HDInsight-fürtbe másolhatja. Szerkessze és írja be a parancsot:

    scp hiveudf.py sshuser@mycluster-ssh.azurehdinsight.net:
    
  2. Az SSH használatával csatlakozzon a fürthöz. Szerkessze és írja be a parancsot:

    ssh sshuser@mycluster-ssh.azurehdinsight.net
    
  3. Az SSH-munkamenetben adja hozzá a korábban feltöltött Python-fájlokat a fürt tárhelyéhez.

    hdfs dfs -put hiveudf.py /hiveudf.py
    

Hive UDF használata (shell)

  1. A Hive-hez való csatlakozáshoz használja a következő parancsot a megnyitott SSH-munkamenetből:

    beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
    

    Ez a parancs elindítja a Beeline-ügyfelet.

  2. Írja be a következő lekérdezést a parancssorba 0: jdbc:hive2://headnodehost:10001/> :

    add file wasbs:///hiveudf.py;
    SELECT TRANSFORM (clientid, devicemake, devicemodel)
        USING 'python hiveudf.py' AS
        (clientid string, phoneLabel string, phoneHash string)
    FROM hivesampletable
    ORDER BY clientid LIMIT 50;
    
  3. Az utolsó sor beírása után a feladatnak el kell kezdődnie. A feladat befejezése után a következő példához hasonló kimenetet ad vissza:

    100041    RIM 9650    d476f3687700442549a83fac4560c51c
    100041    RIM 9650    d476f3687700442549a83fac4560c51c
    100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9
    100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9
    100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9
    
  4. A Beeline-ból való kilépéshez írja be a következő parancsot:

    !q
    

Fájl feltöltése (PowerShell)

A PowerShell a Hive-lekérdezések távoli futtatására is használható. Győződjön meg arról, hogy a munkakönyvtár a helyén hiveudf.py található. A szkriptet használó Hive-lekérdezések futtatásához használja a hiveudf.py következő PowerShell-szkriptet:

# Login to your Azure subscription
# Is there an active Azure subscription?
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

# Revise file path as needed
$pathToStreamingFile = ".\hiveudf.py"

# Get cluster info
$clusterName = Read-Host -Prompt "Enter the HDInsight cluster name"
$clusterInfo = Get-AzHDInsightCluster -ClusterName $clusterName
$resourceGroup = $clusterInfo.ResourceGroup
$storageAccountName=$clusterInfo.DefaultStorageAccount.split('.')[0]
$container=$clusterInfo.DefaultStorageContainer
$storageAccountKey=(Get-AzStorageAccountKey `
   -ResourceGroupName $resourceGroup `
   -Name $storageAccountName)[0].Value

# Create an Azure Storage context
$context = New-AzStorageContext `
    -StorageAccountName $storageAccountName `
    -StorageAccountKey $storageAccountKey

# Upload local files to an Azure Storage blob
Set-AzStorageBlobContent `
    -File $pathToStreamingFile `
    -Blob "hiveudf.py" `
    -Container $container `
    -Context $context

Feljegyzés

A fájlok feltöltésével kapcsolatos további információkért tekintse meg az Apache Hadoop-feladatok adatainak feltöltését a HDInsight-dokumentumban .

Hive UDF használata

# Script should stop on failures
$ErrorActionPreference = "Stop"

# Login to your Azure subscription
# Is there an active Azure subscription?
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

# Get cluster info
$clusterName = Read-Host -Prompt "Enter the HDInsight cluster name"
$creds=Get-Credential -UserName "admin" -Message "Enter the login for the cluster"

$HiveQuery = "add file wasbs:///hiveudf.py;" +
                "SELECT TRANSFORM (clientid, devicemake, devicemodel) " +
                "USING 'python hiveudf.py' AS " +
                "(clientid string, phoneLabel string, phoneHash string) " +
                "FROM hivesampletable " +
                "ORDER BY clientid LIMIT 50;"

# Create Hive job object
$jobDefinition = New-AzHDInsightHiveJobDefinition `
    -Query $HiveQuery

# For status bar updates
$activity="Hive query"

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Starting query..."

# Start defined Azure HDInsight job on specified cluster.
$job = Start-AzHDInsightJob `
    -ClusterName $clusterName `
    -JobDefinition $jobDefinition `
    -HttpCredential $creds

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Waiting on query to complete..."

# Wait for completion or failure of specified job
Wait-AzHDInsightJob `
    -JobId $job.JobId `
    -ClusterName $clusterName `
    -HttpCredential $creds

# Uncomment the following to see stderr output
<#
Get-AzHDInsightJobOutput `
   -Clustername $clusterName `
   -JobId $job.JobId `
   -HttpCredential $creds `
   -DisplayOutputType StandardError
#>

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Retrieving output..."

# Gets the log output
Get-AzHDInsightJobOutput `
    -Clustername $clusterName `
    -JobId $job.JobId `
    -HttpCredential $creds

A Hive-feladat kimenetének a következő példához hasonlóan kell megjelennie :

100041    RIM 9650    d476f3687700442549a83fac4560c51c
100041    RIM 9650    d476f3687700442549a83fac4560c51c
100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9
100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9
100042    Apple iPhone 4.2.x    375ad9a0ddc4351536804f1d5d0ea9b9

Apache Pig UDF

A Python-szkriptek uDF-ként használhatók a Pigből az GENERATE utasításon keresztül. A szkriptet Jython vagy C Python használatával is futtathatja.

  • A Jython a JVM-en fut, és natív módon meghívható Pigből.
  • A C Python egy külső folyamat, ezért a JVM-en lévő Pig adatai a Python-folyamatban futó szkriptbe kerülnek. A Python-szkript kimenete vissza lesz küldve a Pigbe.

A Python-értelmező megadásához használja register a Python-szkriptre való hivatkozáskor. Az alábbi példák szkripteket regisztrálnak a Pigben a következő módon myfuncs:

  • A Jython használata: register '/path/to/pigudf.py' using jython as myfuncs;
  • A C Python használata: register '/path/to/pigudf.py' using streaming_python as myfuncs;

Fontos

A Jython használatakor a pig_jython fájl elérési útja lehet helyi vagy WASBS:// elérési út. A C Python használatakor azonban hivatkoznia kell a Pig-feladat elküldéséhez használt csomópont helyi fájlrendszerében található fájlra.

A korábbi regisztrációt követően a példában szereplő Pig Latin ugyanaz mindkét esetben:

LOGS = LOAD 'wasbs:///example/data/sample.log' as (LINE:chararray);
LOG = FILTER LOGS by LINE is not null;
DETAILS = FOREACH LOG GENERATE myfuncs.create_structure(LINE);
DUMP DETAILS;

A példa a következő:

  1. Az első sor betölti a mintaadatfájltLOGS. sample.log Az egyes rekordokat is definiálja chararray.
  2. A következő sor kiszűri a null értékeket, és a művelet eredményét a következőbe LOGtárolja.
  3. Ezután iterálja át a rekordokatLOG, és a Python/Jython szkriptben található metódus meghívásához create_structure használja GENERATE a következőként betöltött metódustmyfuncs. LINE az aktuális rekord a függvénynek való átadására szolgál.
  4. Végül a kimenetek az STDOUT-ba kerülnek a DUMP parancs használatával. Ez a parancs a művelet befejezése után jeleníti meg az eredményeket.

Fájl létrehozása

A fejlesztői környezetben hozzon létre egy szövegfájlt pigudf.py. A fájl tartalmaként használja a következő kódot:

# Uncomment the following if using C Python
#from pig_util import outputSchema


@outputSchema("log: {(date:chararray, time:chararray, classname:chararray, level:chararray, detail:chararray)}")
def create_structure(input):
    if (input.startswith('java.lang.Exception')):
        input = input[21:len(input)] + ' - java.lang.Exception'
    date, time, classname, level, detail = input.split(' ', 4)
    return date, time, classname, level, detail

A Pig Latin példában a LINE bemenet chararray-ként van definiálva, mert nincs konzisztens séma a bemenethez. A Python-szkript konzisztenssé alakítja az adatokat a kimenethez.

  1. Az @outputSchema utasítás a Pignek visszaadott adatok formátumát határozza meg. Ebben az esetben ez egy adatcsomag, amely egy Pig adattípus. A zsák a következő mezőket tartalmazza, amelyek mindegyike chararray (sztringek):

    • dátum – a naplóbejegyzés létrehozásának dátuma
    • idő – a naplóbejegyzés létrehozásának időpontja
    • classname – a bejegyzés által létrehozott osztálynév
    • szint – a naplószint
    • detail – részletes részletek a naplóbejegyzéshez
  2. Ezután a def create_structure(input) függvény határozza meg, hogy a Pig milyen sorelemeket ad át.

  3. A példaadatok sample.logtöbbnyire a dátum, az idő, az osztálynév, a szint és a részletek sémájának felelnek meg. Tartalmaz azonban néhány sort, amelyek a kezdőbetűkkel kezdődnek *java.lang.Exception*. Ezeket a sorokat úgy kell módosítani, hogy megfeleljenek a sémának. Az if utasítás ellenőrzi azokat, majd masszírozza a bemeneti adatokat a *java.lang.Exception* sztring végéhez való áthelyezéshez, így az adatok összhangban vannak a várt kimeneti sémával.

  4. Ezután a split parancs az adatok felosztására szolgál az első négy szóköz karakternél. A kimenet a következőhöz datevan rendelve: , time, classnamelevelés detail.

  5. Végül a rendszer visszaadja az értékeket Pignek.

Amikor az adatok visszakerülnek a Pighez, az utasításban @outputSchema meghatározott konzisztens sémával rendelkezik.

Fájl feltöltése (rendszerhéj)

Az alábbi parancsokban cserélje le sshuser a tényleges felhasználónevet, ha eltér. Cserélje le mycluster a tényleges fürtnévre. Győződjön meg arról, hogy a munkakönyvtárban található a fájl.

  1. A scp fájlokat a HDInsight-fürtbe másolhatja. Szerkessze és írja be a parancsot:

    scp pigudf.py sshuser@mycluster-ssh.azurehdinsight.net:
    
  2. Az SSH használatával csatlakozzon a fürthöz. Szerkessze és írja be a parancsot:

    ssh sshuser@mycluster-ssh.azurehdinsight.net
    
  3. Az SSH-munkamenetben adja hozzá a korábban feltöltött Python-fájlokat a fürt tárhelyéhez.

    hdfs dfs -put pigudf.py /pigudf.py
    

Pig UDF használata (shell)

  1. A sertéshez való csatlakozáshoz használja a következő parancsot a nyitott SSH-munkamenetből:

    pig
    
  2. Írja be a következő utasításokat a parancssorba grunt> :

    Register wasbs:///pigudf.py using jython as myfuncs;
    LOGS = LOAD 'wasbs:///example/data/sample.log' as (LINE:chararray);
    LOG = FILTER LOGS by LINE is not null;
    DETAILS = foreach LOG generate myfuncs.create_structure(LINE);
    DUMP DETAILS;
    
  3. A következő sor beírása után a feladatnak el kell kezdődnie. A feladat befejeződése után a következő adatokhoz hasonló kimenetet ad vissza:

    ((2012-02-03,20:11:56,SampleClass5,[TRACE],verbose detail for id 990982084))
    ((2012-02-03,20:11:56,SampleClass7,[TRACE],verbose detail for id 1560323914))
    ((2012-02-03,20:11:56,SampleClass8,[DEBUG],detail for id 2083681507))
    ((2012-02-03,20:11:56,SampleClass3,[TRACE],verbose detail for id 1718828806))
    ((2012-02-03,20:11:56,SampleClass3,[INFO],everything normal for id 530537821))
    
  4. A quit Grunt-rendszerhéjból való kilépéshez, majd a következő használatával szerkesztheti a pigudf.py fájlt a helyi fájlrendszerben:

    nano pigudf.py
    
  5. A szerkesztőben a következő sor kibontásával távolítsa el a # karaktert a sor elejéről:

    #from pig_util import outputSchema
    

    Ez a sor úgy módosítja a Python-szkriptet, hogy Jython helyett C Pythont használjon. A módosítás után a Ctrl+X billentyűkombinációval lépjen ki a szerkesztőből. A módosítások mentéséhez válassza az Y, majd az Enter lehetőséget .

  6. pig A parancs használatával indítsa újra a rendszerhéjat. Miután a parancssorba grunt> lép, a következővel futtassa a Python-szkriptet a C Python-értelmezővel.

    Register 'pigudf.py' using streaming_python as myfuncs;
    LOGS = LOAD 'wasbs:///example/data/sample.log' as (LINE:chararray);
    LOG = FILTER LOGS by LINE is not null;
    DETAILS = foreach LOG generate myfuncs.create_structure(LINE);
    DUMP DETAILS;
    

    A feladat befejeződése után ugyanazt a kimenetet kell látnia, mint amikor a szkriptet korábban Jython használatával futtatta.

Fájl feltöltése (PowerShell)

A PowerShell a Hive-lekérdezések távoli futtatására is használható. Győződjön meg arról, hogy a munkakönyvtár a helyén pigudf.py található. A szkriptet használó Hive-lekérdezések futtatásához használja a pigudf.py következő PowerShell-szkriptet:

# Login to your Azure subscription
# Is there an active Azure subscription?
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

# Revise file path as needed
$pathToJythonFile = ".\pigudf.py"


# Get cluster info
$clusterName = Read-Host -Prompt "Enter the HDInsight cluster name"
$clusterInfo = Get-AzHDInsightCluster -ClusterName $clusterName
$resourceGroup = $clusterInfo.ResourceGroup
$storageAccountName=$clusterInfo.DefaultStorageAccount.split('.')[0]
$container=$clusterInfo.DefaultStorageContainer
$storageAccountKey=(Get-AzStorageAccountKey `
   -ResourceGroupName $resourceGroup `
   -Name $storageAccountName)[0].Value

# Create an Azure Storage context
$context = New-AzStorageContext `
    -StorageAccountName $storageAccountName `
    -StorageAccountKey $storageAccountKey

# Upload local files to an Azure Storage blob
Set-AzStorageBlobContent `
    -File $pathToJythonFile `
    -Blob "pigudf.py" `
    -Container $container `
    -Context $context

Pig UDF használata (PowerShell)

Feljegyzés

Ha távolról küld el feladatokat a PowerShell használatával, a C Python nem használható értelmezőként.

A PowerShell a Pig Latin-feladatok futtatására is használható. A szkriptet használó pigudf.py Pig Latin-feladat futtatásához használja a következő PowerShell-szkriptet:

# Script should stop on failures
$ErrorActionPreference = "Stop"

# Login to your Azure subscription
# Is there an active Azure subscription?
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# Get cluster info
$clusterName = Read-Host -Prompt "Enter the HDInsight cluster name"
$creds=Get-Credential -UserName "admin" -Message "Enter the login for the cluster"


$PigQuery = "Register wasbs:///pigudf.py using jython as myfuncs;" +
            "LOGS = LOAD 'wasbs:///example/data/sample.log' as (LINE:chararray);" +
            "LOG = FILTER LOGS by LINE is not null;" +
            "DETAILS = foreach LOG generate myfuncs.create_structure(LINE);" +
            "DUMP DETAILS;"

# Create Pig job object
$jobDefinition = New-AzHDInsightPigJobDefinition -Query $PigQuery

# For status bar updates
$activity="Pig job"

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Starting job..."

# Start defined Azure HDInsight job on specified cluster.
$job = Start-AzHDInsightJob `
    -ClusterName $clusterName `
    -JobDefinition $jobDefinition `
    -HttpCredential $creds

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Waiting for the Pig job to complete..."

# Wait for completion or failure of specified job
Wait-AzHDInsightJob `
    -Job $job.JobId `
    -ClusterName $clusterName `
    -HttpCredential $creds

# Uncomment the following to see stderr output
<#
Get-AzHDInsightJobOutput `
    -Clustername $clusterName `
    -JobId $job.JobId `
    -HttpCredential $creds `
    -DisplayOutputType StandardError
#>

# Progress bar (optional)
Write-Progress -Activity $activity "Retrieving output..."

# Gets the log output
Get-AzHDInsightJobOutput `
    -Clustername $clusterName `
    -JobId $job.JobId `
    -HttpCredential $creds

A Pig-feladat kimenetének a következő adatokhoz hasonlóan kell megjelennie:

((2012-02-03,20:11:56,SampleClass5,[TRACE],verbose detail for id 990982084))
((2012-02-03,20:11:56,SampleClass7,[TRACE],verbose detail for id 1560323914))
((2012-02-03,20:11:56,SampleClass8,[DEBUG],detail for id 2083681507))
((2012-02-03,20:11:56,SampleClass3,[TRACE],verbose detail for id 1718828806))
((2012-02-03,20:11:56,SampleClass3,[INFO],everything normal for id 530537821))

Hibaelhárítás

Hibák a feladatok futtatásakor

A hive-feladat futtatásakor az alábbi szöveghez hasonló hibaüzenet jelenhet meg:

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: [Error 20001]: An error occurred while reading or writing to your custom script. It may have crashed with an error.

Ezt a problémát a Python-fájl sorvégződései okozhatják. Sok Windows-szerkesztő alapértelmezés szerint a CRLF-et használja sorvégződésként, de a Linux-alkalmazások általában LF-t várnak.

A következő PowerShell-utasítások használatával eltávolíthatja a CR-karaktereket, mielőtt feltöltené a fájlt a HDInsightba:

Write-Progress -Activity $activity -Status "Waiting for the Pig job to complete..."

# Wait for completion or failure of specified job

PowerShell-szkriptek

A példák futtatásához használt PowerShell-példaszkriptek mindegyike tartalmaz egy megjegyzéssel rendelkező sort, amely a feladat hibakimenetét jeleníti meg. Ha nem látja a feladat várt kimenetét, bontsa ki a következő sort, és ellenőrizze, hogy a hibainformációk hibát jeleznek-e.

$activity="Pig job"

# Progress bar (optional)
Write-Progress -Activity $activity -Status "Starting job..."

A rendszer a hibainformációkat (STDERR) és a feladat eredményét (STDOUT) is naplózza a HDInsight-tárolóba.

Ehhez a feladathoz... Tekintse meg ezeket a fájlokat a blobtárolóban
Hive /HivePython/stderr

/HivePython/stdout

Pig /PigPython/stderr

/PigPython/stdout

Következő lépések

Ha alapértelmezés szerint nem biztosított Python-modulokat kell betöltenie, olvassa el a Modul üzembe helyezése az Azure HDInsightban című témakört.

A Pig, a Hive és a MapReduce használatának egyéb módjaiért tekintse meg az alábbi dokumentumokat: