Sdílet prostřednictvím


Import z dotazu Hive

Důležité

Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.

Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).

Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.

Tento článek popisuje, jak pomocí modulu Import dat v Machine Learning Studiu (classic) získat data z clusterů Hadoop a distribuovaného úložiště HDInsight.

Poznámka

Platí pro: pouze Machine Learning Studio (classic)

Podobné moduly pro přetažení jsou dostupné v návrháři Azure Machine Learning.

Import dat z Hivu je zvláště užitečný pro načítání velkých datových sad nebo pokud chcete data předem zpracovat pomocí úlohy MapReduce před načtením dat do experimentu strojového učení.

Důležité

Od 31. července 2018 byla Microsoft Azure HDInsight verze 3.3 poslední verzí HDInsight na Windows. Pokud máte nějaké clustery HDInsight na Windows 3.3 nebo starší, musíte migrovat do HDInsight v Linuxu (HDInsight verze 3.5 nebo novější). Další informace o vyřazených verzích služby HDInsight najdete v části Vyřazené verze. Machine Learning Studio (classic) bude v určitých scénářích podporovat HDInsight v Linuxu.

Podpora služby HDInsight v Linuxu

Machine Learning Studio (classic) podporuje HDInsight v Linuxu v následujících scénářích:

  • Objekt blob Hadoop 2.7.3 (HDI 3.6) jako výchozí, sekundární ADLS
  • Objekt blob Sparku 2.1.0 (HDI 3.6) jako výchozí, sekundární ADLS
  • Objekt blob Sparku 2.2.0 (HDI 3.6) jako výchozí, sekundární ADLS
  • Objekt blob Sparku 2.3.0 (HDI 3.6) jako výchozí, sekundární ADLS

Známé problémy

Existuje několik známých problémů s používáním modulu Import Dat pro dotazy Hive se službou HDInsight v Linuxu:

Import dat z dotazů Hive

Použití průvodce

Modul obsahuje nového průvodce, který vám pomůže zvolit možnost úložiště, vybrat z existujících předplatných a účtů a rychle nakonfigurovat všechny možnosti.

  1. Přidejte do experimentu modul Importovat data . Modul najdete v sadě Studio (classic) v kategorii Vstup a výstup dat .

  2. Klikněte na Spustit Průvodce importem dat a postupujte podle pokynů.

  3. Po dokončení konfigurace zkopírujte data do experimentu tak, že kliknete pravým tlačítkem myši na modul a vyberete Spustit vybraný.

Pokud potřebujete upravit existující datové připojení, průvodce načte všechny předchozí podrobnosti konfigurace, abyste nemuseli začít znovu od začátku.

Ruční nastavení vlastností importu

Následující kroky popisují ruční konfiguraci zdroje importu.

  1. Přidejte do experimentu modul Importovat data . Modul najdete v sadě Studio (classic) v kategorii Vstup a výstup dat .

  2. Jako zdroj dat vyberte Dotaz Hive.

  3. Do textového pole dotazu databáze Hive zadejte data, která chcete číst pomocí HiveQL.

    HiveQL je dotazovací jazyk podobný SQL, který se dá použít také k agregaci dat a filtrování dat před přidáním dat do Machine Learning Studia (classic). Dotaz Hive však musí vrátit data v tabulkovém formátu.

    Tento příkaz je například platný dotaz Hive:

    SELECT <column list> FROM table WHERE <expression>;

  4. Klikněte na textové pole URI serveru HCatalog a zadejte plně kvalifikovaný název clusteru.

    Pokud jste například vytvořili cluster s názvem mycluster001, použijte tento formát: https://mycluster001.azurehdinsight.net

  5. Klikněte na textové pole s názvem uživatelského účtu Hadoop a vložte do uživatelského účtu Hadoop, který jste použili při zřizování clusteru.

  6. Klikněte na textové pole heslo uživatelského účtu Hadoop a zadejte přihlašovací údaje, které jste použili při zřizování clusteru.

    Další informace o pojmenování a ověřování clusteru pro Hadoop najdete v tématu Zřizování clusterů Hadoop ve službě HDInsight.

  7. V části Umístění výstupních dat vyberte možnost, která označuje, kde jsou uložena data. Pokud jsou data v distribuovaném systému souborů Hadoop (HDFS), musí být přístupná přes stejný účet a heslo, které jste právě zadali. Pokud jsou data v Azure, zadejte umístění a přihlašovací údaje účtu úložiště.

    • HDFS: Zadejte nebo vložte identifikátor URI serveru HDFS. Nezapomeňte použít název clusteru HDInsight bez předpony HTTPS:// .

    • Azure: Jako název účtu úložiště Azure zadejte název účtu Azure. Pokud je například úplná adresa URL účtu https://myshared.blob.core.windows.netúložiště , zadejte myshared.

    • Klíč úložiště Azure: Zkopírujte a vložte klíč, který je k dispozici pro přístup k účtu úložiště.

    • Jako název kontejneru Azure zadejte výchozí kontejner clusteru. Informace o tom, který kontejner se má použít, najdete v části Tipy.

  8. Vyberte možnosti Použít výsledky uložené v mezipaměti , pokud neočekáváte, že se data budou moc měnit, nebo pokud chcete zabránit opětovnému načtení dat při každém spuštění experimentu.

    Pokud je tato možnost vybraná, pokud se parametry modulu nezmění, experiment načte data při prvním spuštění modulu a potom použije verzi datové sady uloženou v mezipaměti.

    Pokud chcete datovou sadu znovu načíst do každé iterace datové sady experimentu, zrušte výběr možnosti Použít výsledky uložené v mezipaměti . Výsledky se také znovu načtou, když dojde ke změnám parametrů importu dat.

  9. Spusťte experiment.

Výsledky

Po dokončení klikněte na výstupní datovou sadu a vyberte Vizualizovat , abyste zjistili, jestli se data úspěšně importovala.

Pokud dojde k chybám, zkontrolujte chybějící hodnoty, další prázdné sloupce nebo nekompatibilní datové typy.

Příklady

Příklady konfigurace clusteru HDInsight a použití dotazů Hive v experimentech strojového učení najdete v těchto zdrojích informací:

I když Hive nabízí vynikající funkce pro mnoho druhů vyčištění a předběžného zpracování dat, po importu můžete najít tyto nástroje užitečné pro přípravu dat pro modelování:

  • Pomocí upravit metadata a další moduly můžete změnit názvy sloupců, určit, které sloupce obsahují popisky a funkce, a zadat datový typ sloupce. Příklady najdete v tématu Zpracování datových sad.

  • Post-process text data using Python, to remove interpunkce, flag parts of speech a mnoho dalšího. Příklady najdete v tématu Klasifikace textu.

  • Zkombinujte několik tabulek z různých zdrojů do jedné tabulky trénovacích dat. Příklady najdete v tématu Prediktivní údržba.

Technické poznámky

Tato část obsahuje podrobnosti o implementaci, tipy a odpovědi na nejčastější dotazy.

Určení výchozího kontejneru

Pokud jste cluster vytvořili přijetím všech výchozích hodnot, kontejner se stejným názvem jako cluster byl vytvořen ve stejnou dobu, kdy byl cluster vytvořen. Tento kontejner je výchozím kontejnerem clusteru. Pokud jste ale při vytváření clusteru zvolili možnost VLASTNÍ VYTVOŘENÍ , máte k dispozici dvě možnosti pro výběr výchozího kontejneru. První možností je vybrat existující kontejner. Když to uděláte, stane se tento kontejner výchozím kontejnerem úložiště pro cluster. Druhá možnost je Vytvořit výchozí kontejner. Při použití této možnosti má výchozí kontejner stejný název jako cluster.

Volání skriptů Pythonu z dotazu Hive

Pomocí modulu Importovat data můžete spouštět dotazy Hive, které volají UDF Pythonu ke zpracování záznamů.

Další informace najdete v tématu Použití Pythonu s Hivem a Pigem ve službě HDInsight.

Zabránění problémům s nedostatkem paměti při použití Hivu k předběžnému zpracování dat

Při použití dotazů Hive k extrakci záznamů ze zdrojů velkých objemů dat je někdy výchozí konfigurace clusteru Hadoop příliš omezená na podporu spuštění úlohy MapReduce. Například v těchto poznámkách k verzi pro HDInsight jsou výchozí nastavení definována jako cluster se čtyřmi uzly.

Pokud požadavky úlohy MapReduce překračují dostupnou kapacitu, dotazy Hive můžou vrátit chybovou zprávu o nedostatku paměti, která způsobí selhání operace importu dat. Pokud k tomu dojde, můžete změnit výchozí přidělení paměti pro dotazy Hive v modulu Import dat , jak je znázorněno tady:

Increase memory to maximum allowed on cluster

V tomto příkladu se příkazy set mapreduce.map.memory.mb a set mapreduce.reduce.memory.mb slouží ke zvýšení množství paměti, aby se použilo maximum povolené v clusteru.

Časté dotazy

Jak se můžu vyhnout zbytečnému načítání stejných dat

Pokud se zdrojová data změní, můžete datovou sadu aktualizovat a přidat nová data opětovným spuštěním importu dat. Pokud ale nechcete při každém spuštění experimentu znovu číst ze zdroje, vyberte možnost Použít výsledky uložené v mezipaměti na hodnotu TRUE. Pokud je tato možnost nastavená na hodnotu PRAVDA, modul zkontroluje, jestli se experiment spustil dříve pomocí stejných zdrojových a stejných vstupních možností a pokud se najde předchozí spuštění, data v mezipaměti se použijí místo opětovného načtení dat ze zdroje.

Můžu filtrovat data při čtení ze zdroje

Samotný modul Import dat nepodporuje filtrování při čtení dat.

Pokud chcete data před načtením do Machine Learning Studia (classic) filtrovat, použijte k agregaci a transformaci dat dotaz Hive nebo úlohu MapReduce.

Po načtení do nástroje Machine Learning Studio (Classic) existuje také několik možností filtrování dat:

  • K získání požadovaných dat použijte vlastní skript jazyka R.
  • Modul Rozdělit data s relativním výrazem nebo regulárním výrazem můžete izolovat požadovaná data a pak je uložit jako datovou sadu.

Poznámka

Pokud zjistíte, že jste načetli více dat, než potřebujete, můžete datovou sadu uloženou v mezipaměti přepsat tak, že si přečtete novou datovou sadu a uložíte ji se stejným názvem jako starší a větší data.

Parametry modulu

Name Rozsah Typ Výchozí Description
Zdroj dat Seznam Zdroj dat nebo jímka Azure Blob Storage Zdrojem dat může být HTTP, FTP, anonymní HTTPS nebo FTPS, soubor v úložišti objektů blob v Azure, tabulka Azure, Azure SQL Database, místní databáze SQL Server, tabulka Hive nebo koncový bod OData.
Dotaz databáze Hive Libovolný Streamreader Dotaz HQL
Identifikátor URI serveru HCatalog Libovolný Řetězec Koncový bod Templetonu
Uživatelské jméno hadoopu Libovolný Řetězec Uživatelské jméno hadoop HDFS/HDInsight
Heslo uživatelského účtu Hadoop Libovolný Securestring Heslo Hadoop HDFS/HDInsight
Umístění výstupních dat Libovolný DataLocation HDFS Určení HDFS nebo Azure pro outputDir
Identifikátor URI serveru HDFS Libovolný Řetězec Koncový bod rest HDFS
Azure storage account name Libovolný Řetězec Azure storage account name
Klíč úložiště Azure Libovolný Securestring Klíč úložiště Azure
Název kontejneru Azure Libovolný Řetězec Název kontejneru Azure
Datový obsah Seznam (podmnožina) Obsah adresy URL OData Typ formátu dat
Zdrojová adresa URL Libovolný Řetězec Adresa URL zdroje dat Power Query
Použití výsledků uložených v mezipaměti PRAVDA/NEPRAVDA Logická hodnota FALSE description

Výstupy

Název Typ Description
Datová sada výsledků Tabulka dat Datová sada se staženými daty

Výjimky

Výjimka Description
Chyba 0027 K výjimce dochází, když dva objekty musí mít stejnou velikost, ale nejsou.
Chyba 0003 K výjimce dochází v případě, že jeden nebo více vstupů má hodnotu null nebo je prázdné.
Chyba 0029 Při předání neplatného identifikátoru URI dojde k výjimce.
Chyba 0030 K výjimce dochází v případě, že není možné stáhnout soubor.
Chyba 0002 K výjimce dochází v případě, že jeden nebo více parametrů nelze analyzovat nebo převést ze zadaného typu na typ požadovaný cílovou metodou.
Chyba 0009 K výjimce dojde, pokud je nesprávně zadán název účtu úložiště Azure nebo název kontejneru.
Chyba 0048 K výjimce dochází, když není možné otevřít soubor.
Chyba 0015 K výjimce dochází v případě, že připojení k databázi selhalo.
Chyba 0046 K výjimce dochází v případě, že není možné vytvořit adresář v zadané cestě.
Chyba 0049 K výjimce dochází v případě, že není možné analyzovat soubor.

Seznam chyb specifických pro moduly Studio (Classic) najdete v tématu Machine Learning Kódy chyb.

Seznam výjimek rozhraní API najdete v tématu Machine Learning kódy chyb rozhraní REST API.

Viz také

Import dat
Export dat
Import z webové adresy URL přes HTTP
Import z Azure SQL Database
Import z tabulky Azure
Import z Azure Blob Storage
Import z poskytovatelů datových kanálů
Import z místní databáze SQL Server