Vytváření aplikací v Javě pro Apache HBase

Zjistěte, jak vytvořit aplikaci Apache HBase v Javě. Pak použijte aplikaci s HBase ve službě Azure HDInsight.

Kroky v tomto dokumentu používají Apache Maven k vytvoření a sestavení projektu. Maven je softwarový nástroj pro řízení projektů a porozumění, který umožňuje vytvářet software, dokumentaci a sestavy pro projekty Java.

Předpoklady

Testovací prostředí

Prostředí použité pro tento článek bylo počítač s Windows 10. Příkazy byly spouštěny v příkazovém řádku a různé soubory byly upraveny pomocí Poznámkový blok. Odpovídajícím způsobem upravte své prostředí.

Z příkazového řádku zadejte následující příkazy pro vytvoření pracovního prostředí:

IF NOT EXIST C:\HDI MKDIR C:\HDI
cd C:\HDI

Vytvoření projektu Maven

  1. Zadáním následujícího příkazu vytvořte projekt Maven s názvem hbaseapp:

    mvn archetype:generate -DgroupId=com.microsoft.examples -DartifactId=hbaseapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
    cd hbaseapp
    mkdir conf
    

    Tento příkaz vytvoří adresář pojmenovaný hbaseapp v aktuálním umístění, který obsahuje základní projekt Maven. Druhý příkaz změní pracovní adresář na hbaseapp. Třetí příkaz vytvoří nový adresář, confkterý lze použít později. Adresář hbaseapp obsahuje následující položky:

    • pom.xml: Objektový model projektu (POM) obsahuje informace a podrobnosti konfigurace používané k sestavení projektu.
    • src\main\java\com\microsoft\examples: Obsahuje kód aplikace.
    • src\test\java\com\microsoft\examples: Obsahuje testy pro vaši aplikaci.
  2. Odeberte vygenerovaný ukázkový kód. Odstraňte vygenerované soubory AppTest.javatestů a aplikací a App.java zadáním následujících příkazů:

    DEL src\main\java\com\microsoft\examples\App.java
    DEL src\test\java\com\microsoft\examples\AppTest.java
    

Aktualizace objektového modelu projektu

Úplný odkaz na soubor pom.xml naleznete v tématu https://maven.apache.org/pom.html. Otevřete pom.xml zadáním následujícího příkazu:

notepad pom.xml

Přidání závislostí

Do pom.xmloddílu <dependencies> přidejte následující text:

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-shaded-client</artifactId>
    <version>1.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-core</artifactId>
    <version>4.14.1-HBase-1.1</version>
</dependency>

Tato část označuje, že projekt potřebuje komponenty hbase-client a phoenix-core . V době kompilace se tyto závislosti stáhnou z výchozího úložiště Maven. Další informace o této závislosti najdete v centrálním úložišti Maven.

Důležité

Číslo verze klienta hbase-client musí odpovídat verzi Apache HBase, která je k dispozici s vaším clusterem HDInsight. Pomocí následující tabulky vyhledejte správné číslo verze.

Verze clusteru HDInsight Verze Apache HBase, která se má použít
3,6 1.1.2
4.0 2.0.0

Další informace o verzích a komponentách HDInsight najdete v tématu Jaké jsou různé komponenty Apache Hadoop dostupné v HDInsight.

Konfigurace sestavení

Moduly plug-in Maven umožňují přizpůsobit fáze sestavení projektu. Tato část slouží k přidání modulů plug-in, prostředků a dalších možností konfigurace sestavení.

Do souboru přidejte následující kód pom.xml a pak soubor uložte a zavřete. Tento text musí být uvnitř <project>...</project> značek v souboru, například mezi </dependencies> a </project>.

<build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
    <resource>
        <directory>${basedir}/conf</directory>
        <filtering>false</filtering>
        <includes>
        <include>hbase-site.xml</include>
        </includes>
    </resource>
    </resources>
    <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
        </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
        <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">
            </transformer>
        </transformers>
        </configuration>
        <executions>
        <execution>
            <phase>package</phase>
            <goals>
            <goal>shade</goal>
            </goals>
        </execution>
        </executions>
    </plugin>
    </plugins>
</build>

Tato část nakonfiguruje prostředek (conf/hbase-site.xml), který obsahuje informace o konfiguraci HBase.

Poznámka:

Hodnoty konfigurace můžete také nastavit prostřednictvím kódu. Podívejte se na komentáře v příkladu CreateTable .

Tato část také konfiguruje modul plug-in kompilátoru Apache Maven a modul plug-in apache Maven shade. Modul plug-in kompilátoru slouží ke kompilaci topologie. Modul plug-in shade slouží k zabránění duplikování licencí v balíčku JAR vytvořeném mavenem. Tento modul plug-in slouží k zabránění chybě duplicitních licenčních souborů za běhu v clusteru HDInsight. Použití modulu plug-in maven-shade-plugin s ApacheLicenseResourceTransformer implementací zabraňuje chybě.

Modul plug-in maven-shade také vytvoří soubor uber jar, který obsahuje všechny závislosti vyžadované aplikací.

Stažení hbase-site.xml

Pomocí následujícího příkazu zkopírujte konfiguraci HBase z clusteru HBase do conf adresáře. Nahraďte CLUSTERNAME názvem clusteru HDInsight a zadejte příkaz:

scp sshuser@CLUSTERNAME-ssh.azurehdinsight.net:/etc/hbase/conf/hbase-site.xml ./conf/hbase-site.xml

Vytvoření aplikace

Implementace třídy CreateTable

Zadáním následujícího příkazu vytvořte a otevřete nový soubor CreateTable.java. Výběrem možnosti Ano na příkazovém řádku vytvořte nový soubor.

notepad src\main\java\com\microsoft\examples\CreateTable.java

Potom do nového souboru zkopírujte a vložte následující kód Java. Potom soubor zavřete.

package com.microsoft.examples;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;

public class CreateTable {
    public static void main(String[] args) throws IOException {
    Configuration config = HBaseConfiguration.create();

    // Example of setting zookeeper values for HDInsight
    // in code instead of an hbase-site.xml file
    //
    // config.set("hbase.zookeeper.quorum",
    //            "zookeepernode0,zookeepernode1,zookeepernode2");
    //config.set("hbase.zookeeper.property.clientPort", "2181");
    //config.set("hbase.cluster.distributed", "true");
    //
    //NOTE: Actual zookeeper host names can be found using Ambari:
    //curl -u admin:PASSWORD -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts"

    //Linux-based HDInsight clusters use /hbase-unsecure as the znode parent
    config.set("zookeeper.znode.parent","/hbase-unsecure");

    // create an admin object using the config
    HBaseAdmin admin = new HBaseAdmin(config);

    // create the table...
    HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("people"));
    // ... with two column families
    tableDescriptor.addFamily(new HColumnDescriptor("name"));
    tableDescriptor.addFamily(new HColumnDescriptor("contactinfo"));
    admin.createTable(tableDescriptor);

    // define some people
    String[][] people = {
        { "1", "Marcel", "Haddad", "marcel@fabrikam.com"},
        { "2", "Franklin", "Holtz", "franklin@contoso.com" },
        { "3", "Dwayne", "McKee", "dwayne@fabrikam.com" },
        { "4", "Rae", "Schroeder", "rae@contoso.com" },
        { "5", "Rosalie", "burton", "rosalie@fabrikam.com"},
        { "6", "Gabriela", "Ingram", "gabriela@contoso.com"} };

    HTable table = new HTable(config, "people");

    // Add each person to the table
    //   Use the `name` column family for the name
    //   Use the `contactinfo` column family for the email
    for (int i = 0; i< people.length; i++) {
        Put person = new Put(Bytes.toBytes(people[i][0]));
        person.add(Bytes.toBytes("name"), Bytes.toBytes("first"), Bytes.toBytes(people[i][1]));
        person.add(Bytes.toBytes("name"), Bytes.toBytes("last"), Bytes.toBytes(people[i][2]));
        person.add(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"), Bytes.toBytes(people[i][3]));
        table.put(person);
    }
    // flush commits and close the table
    table.flushCommits();
    table.close();
    }
}

Tento kód je CreateTable třída, která vytvoří tabulku s názvem people a naplní ji některými předdefinovanými uživateli.

Implementace třídy SearchByEmail

Zadáním následujícího příkazu vytvořte a otevřete nový soubor SearchByEmail.java. Výběrem možnosti Ano na příkazovém řádku vytvořte nový soubor.

notepad src\main\java\com\microsoft\examples\SearchByEmail.java

Potom do nového souboru zkopírujte a vložte následující kód Java. Potom soubor zavřete.

package com.microsoft.examples;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.util.GenericOptionsParser;

public class SearchByEmail {
    public static void main(String[] args) throws IOException {
    Configuration config = HBaseConfiguration.create();

    // Use GenericOptionsParser to get only the parameters to the class
    // and not all the parameters passed (when using WebHCat for example)
    String[] otherArgs = new GenericOptionsParser(config, args).getRemainingArgs();
    if (otherArgs.length != 1) {
        System.out.println("usage: [regular expression]");
        System.exit(-1);
    }

    // Open the table
    HTable table = new HTable(config, "people");

    // Define the family and qualifiers to be used
    byte[] contactFamily = Bytes.toBytes("contactinfo");
    byte[] emailQualifier = Bytes.toBytes("email");
    byte[] nameFamily = Bytes.toBytes("name");
    byte[] firstNameQualifier = Bytes.toBytes("first");
    byte[] lastNameQualifier = Bytes.toBytes("last");

    // Create a regex filter
    RegexStringComparator emailFilter = new RegexStringComparator(otherArgs[0]);
    // Attach the regex filter to a filter
    //   for the email column
    SingleColumnValueFilter filter = new SingleColumnValueFilter(
        contactFamily,
        emailQualifier,
        CompareOp.EQUAL,
        emailFilter
    );

    // Create a scan and set the filter
    Scan scan = new Scan();
    scan.setFilter(filter);

    // Get the results
    ResultScanner results = table.getScanner(scan);
    // Iterate over results and print  values
    for (Result result : results ) {
        String id = new String(result.getRow());
        byte[] firstNameObj = result.getValue(nameFamily, firstNameQualifier);
        String firstName = new String(firstNameObj);
        byte[] lastNameObj = result.getValue(nameFamily, lastNameQualifier);
        String lastName = new String(lastNameObj);
        System.out.println(firstName + " " + lastName + " - ID: " + id);
        byte[] emailObj = result.getValue(contactFamily, emailQualifier);
        String email = new String(emailObj);
        System.out.println(firstName + " " + lastName + " - " + email + " - ID: " + id);
    }
    results.close();
    table.close();
    }
}

Třídu SearchByEmail lze použít k dotazování na řádky podle e-mailové adresy. Protože používá filtr regulárního výrazu, můžete při použití třídy zadat řetězec nebo regulární výraz.

Implementace třídy DeleteTable

Zadáním následujícího příkazu vytvořte a otevřete nový soubor DeleteTable.java. Výběrem možnosti Ano na příkazovém řádku vytvořte nový soubor.

notepad src\main\java\com\microsoft\examples\DeleteTable.java

Potom do nového souboru zkopírujte a vložte následující kód Java. Potom soubor zavřete.

package com.microsoft.examples;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;

public class DeleteTable {
    public static void main(String[] args) throws IOException {
    Configuration config = HBaseConfiguration.create();

    // Create an admin object using the config
    HBaseAdmin admin = new HBaseAdmin(config);

    // Disable, and then delete the table
    admin.disableTable("people");
    admin.deleteTable("people");
    }
}

Třída DeleteTable vyčistí tabulky HBase vytvořené v tomto příkladu zakázáním a vyřazením tabulky vytvořené CreateTable třídou.

Sestavení a zabalení aplikace

  1. hbaseapp Z adresáře pomocí následujícího příkazu sestavte soubor JAR, který obsahuje aplikaci:

    mvn clean package
    

    Tento příkaz sestaví a zabalí aplikaci do souboru .jar.

  2. Po dokončení hbaseapp/target příkazu obsahuje adresář soubor s názvem hbaseapp-1.0-SNAPSHOT.jar.

    Poznámka:

    Soubor hbaseapp-1.0-SNAPSHOT.jar je uber jar. Obsahuje všechny závislosti potřebné ke spuštění aplikace.

Nahrání souboru JAR a spuštění úloh (SSH)

Následující postup slouží scp ke zkopírování souboru JAR do primárního hlavního uzlu Apache HBase v clusteru HDInsight. Příkaz ssh se pak použije k připojení ke clusteru a spuštění příkladu přímo na hlavním uzlu.

  1. Nahrajte soubor JAR do clusteru. Nahraďte CLUSTERNAME názvem clusteru HDInsight a zadejte následující příkaz:

    scp ./target/hbaseapp-1.0-SNAPSHOT.jar sshuser@CLUSTERNAME-ssh.azurehdinsight.net:hbaseapp-1.0-SNAPSHOT.jar
    
  2. Připojení ke clusteru HBase. Nahraďte CLUSTERNAME názvem clusteru HDInsight a zadejte následující příkaz:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  3. Pokud chcete vytvořit tabulku HBase pomocí aplikace v Javě, použijte v otevřeném připojení ssh následující příkaz:

    yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.CreateTable
    

    Tento příkaz vytvoří tabulku HBase s názvem lidé a naplní ji daty.

  4. Pokud chcete vyhledat e-mailové adresy uložené v tabulce, použijte následující příkaz:

    yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.SearchByEmail contoso.com
    

    Zobrazí se následující výsledky:

    Franklin Holtz - ID: 2
    Franklin Holtz - franklin@contoso.com - ID: 2
    Rae Schroeder - ID: 4
    Rae Schroeder - rae@contoso.com - ID: 4
    Gabriela Ingram - ID: 6
    Gabriela Ingram - gabriela@contoso.com - ID: 6
    
  5. Pokud chcete tabulku odstranit, použijte následující příkaz:

    yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.DeleteTable
    

Nahrání souboru JAR a spuštění úloh (PowerShell)

Následující kroky používají modul AZ Azure PowerShellu k nahrání souboru JAR do výchozího úložiště clusteru Apache HBase. Rutiny HDInsight se pak používají ke vzdálenému spuštění příkladů.

  1. Po instalaci a konfiguraci modulu AZ vytvořte soubor s názvem hbase-runner.psm1. Jako obsah souboru použijte následující text:

     <#
     .SYNOPSIS
     Copies a file to the primary storage of an HDInsight cluster.
     .DESCRIPTION
     Copies a file from a local directory to the blob container for
     the HDInsight cluster.
     .EXAMPLE
     Start-HBaseExample -className "com.microsoft.examples.CreateTable"
     -clusterName "MyHDInsightCluster"
    
     .EXAMPLE
     Start-HBaseExample -className "com.microsoft.examples.SearchByEmail"
     -clusterName "MyHDInsightCluster"
     -emailRegex "contoso.com"
    
     .EXAMPLE
     Start-HBaseExample -className "com.microsoft.examples.SearchByEmail"
     -clusterName "MyHDInsightCluster"
     -emailRegex "^r" -showErr
     #>
    
     function Start-HBaseExample {
     [CmdletBinding(SupportsShouldProcess = $true)]
     param(
     #The class to run
     [Parameter(Mandatory = $true)]
     [String]$className,
    
     #The name of the HDInsight cluster
     [Parameter(Mandatory = $true)]
     [String]$clusterName,
    
     #Only used when using SearchByEmail
     [Parameter(Mandatory = $false)]
     [String]$emailRegex,
    
     #Use if you want to see stderr output
     [Parameter(Mandatory = $false)]
     [Switch]$showErr
     )
    
     Set-StrictMode -Version 3
    
     # Is the Azure module installed?
     FindAzure
    
     # Get the login for the HDInsight cluster
     $creds=Get-Credential -Message "Enter the login for the cluster" -UserName "admin"
    
     # The JAR
     $jarFile = "wasb:///example/jars/hbaseapp-1.0-SNAPSHOT.jar"
    
     # The job definition
     $jobDefinition = New-AzHDInsightMapReduceJobDefinition `
         -JarFile $jarFile `
         -ClassName $className `
         -Arguments $emailRegex
    
     # Get the job output
     $job = Start-AzHDInsightJob `
         -ClusterName $clusterName `
         -JobDefinition $jobDefinition `
         -HttpCredential $creds
     Write-Host "Wait for the job to complete ..." -ForegroundColor Green
     Wait-AzHDInsightJob `
         -ClusterName $clusterName `
         -JobId $job.JobId `
         -HttpCredential $creds
     if($showErr)
     {
     Write-Host "STDERR"
     Get-AzHDInsightJobOutput `
                 -Clustername $clusterName `
                 -JobId $job.JobId `
                 -HttpCredential $creds `
                 -DisplayOutputType StandardError
     }
     Write-Host "Display the standard output ..." -ForegroundColor Green
     Get-AzHDInsightJobOutput `
                 -Clustername $clusterName `
                 -JobId $job.JobId `
                 -HttpCredential $creds
     }
    
     <#
     .SYNOPSIS
     Copies a file to the primary storage of an HDInsight cluster.
     .DESCRIPTION
     Copies a file from a local directory to the blob container for
     the HDInsight cluster.
     .EXAMPLE
     Add-HDInsightFile -localPath "C:\temp\data.txt"
     -destinationPath "example/data/data.txt"
     -ClusterName "MyHDInsightCluster"
     .EXAMPLE
     Add-HDInsightFile -localPath "C:\temp\data.txt"
     -destinationPath "example/data/data.txt"
     -ClusterName "MyHDInsightCluster"
     -Container "MyContainer"
     #>
    
     function Add-HDInsightFile {
         [CmdletBinding(SupportsShouldProcess = $true)]
         param(
             #The path to the local file.
             [Parameter(Mandatory = $true)]
             [String]$localPath,
    
             #The destination path and file name, relative to the root of the container.
             [Parameter(Mandatory = $true)]
             [String]$destinationPath,
    
             #The name of the HDInsight cluster
             [Parameter(Mandatory = $true)]
             [String]$clusterName,
    
             #If specified, overwrites existing files without prompting
             [Parameter(Mandatory = $false)]
             [Switch]$force
         )
    
         Set-StrictMode -Version 3
    
         # Is the Azure module installed?
         FindAzure
    
         # Get authentication for the cluster
         $creds=Get-Credential
    
         # Does the local path exist?
         if (-not (Test-Path $localPath))
         {
             throw "Source path '$localPath' does not exist."
         }
    
         # Get the primary storage container
         $storage = GetStorage -clusterName $clusterName
    
         # Upload file to storage, overwriting existing files if -force was used.
         Set-AzStorageBlobContent -File $localPath `
             -Blob $destinationPath `
             -force:$force `
             -Container $storage.container `
             -Context $storage.context
     }
    
     function FindAzure {
         # Is there an active Azure subscription?
         $sub = Get-AzSubscription -ErrorAction SilentlyContinue
         if(-not($sub))
         {
             Connect-AzAccount
         }
     }
    
     function GetStorage {
         param(
             [Parameter(Mandatory = $true)]
             [String]$clusterName
         )
         $hdi = Get-AzHDInsightCluster -ClusterName $clusterName
         # Does the cluster exist?
         if (!$hdi)
         {
             throw "HDInsight cluster '$clusterName' does not exist."
         }
         # Create a return object for context & container
         $return = @{}
         $storageAccounts = @{}
    
         # Get storage information
         $resourceGroup = $hdi.ResourceGroup
         $storageAccountName=$hdi.DefaultStorageAccount.split('.')[0]
         $container=$hdi.DefaultStorageContainer
         $storageAccountKey=(Get-AzStorageAccountKey `
             -Name $storageAccountName `
         -ResourceGroupName $resourceGroup)[0].Value
         # Get the resource group, in case we need that
         $return.resourceGroup = $resourceGroup
         # Get the storage context, as we can't depend
         # on using the default storage context
         $return.context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
         # Get the container, so we know where to
         # find/store blobs
         $return.container = $container
         # Return storage accounts to support finding all accounts for
         # a cluster
         $return.storageAccount = $storageAccountName
         $return.storageAccountKey = $storageAccountKey
    
         return $return
     }
     # Only export the verb-phrase things
     export-modulemember *-*
    

    Tento soubor obsahuje dva moduly:

    • Add-HDInsightFile – slouží k nahrání souborů do clusteru
    • Start-HBaseExample – používá se ke spuštění dříve vytvořených tříd.
  2. hbase-runner.psm1 Uložte soubor do hbaseapp adresáře.

  3. Zaregistrujte moduly v Azure PowerShellu. Otevřete nové okno Azure PowerShellu a upravte následující příkaz nahrazením CLUSTERNAME názvu clusteru. Pak zadejte následující příkazy:

    cd C:\HDI\hbaseapp
    $myCluster = "CLUSTERNAME"
    Import-Module .\hbase-runner.psm1
    
  4. K nahrání clusteru hbaseapp-1.0-SNAPSHOT.jar použijte následující příkaz.

    Add-HDInsightFile -localPath target\hbaseapp-1.0-SNAPSHOT.jar -destinationPath example/jars/hbaseapp-1.0-SNAPSHOT.jar -clusterName $myCluster
    

    Po zobrazení výzvy zadejte přihlašovací jméno a heslo clusteru. Příkaz nahraje hbaseapp-1.0-SNAPSHOT.jar do example/jars umístění v primárním úložišti clusteru.

  5. Pokud chcete vytvořit tabulku pomocí hbaseapppříkazu , použijte následující příkaz:

    Start-HBaseExample -className com.microsoft.examples.CreateTable -clusterName $myCluster
    

    Po zobrazení výzvy zadejte přihlašovací jméno a heslo clusteru.

    Tento příkaz vytvoří v clusteru HDInsight tabulku s názvem lidé v HBase. Tento příkaz nezobrazuje žádný výstup v okně konzoly.

  6. Pokud chcete vyhledat položky v tabulce, použijte následující příkaz:

    Start-HBaseExample -className com.microsoft.examples.SearchByEmail -clusterName $myCluster -emailRegex contoso.com
    

    Po zobrazení výzvy zadejte přihlašovací jméno a heslo clusteru.

    Tento příkaz používá SearchByEmail třídu k vyhledání všech řádků, ve kterých contactinformation je rodina sloupců a email sloupec, obsahuje řetězec contoso.com. Měli byste obdržet následující výsledky:

    Franklin Holtz - ID: 2
    Franklin Holtz - franklin@contoso.com - ID: 2
    Rae Schroeder - ID: 4
    Rae Schroeder - rae@contoso.com - ID: 4
    Gabriela Ingram - ID: 6
    Gabriela Ingram - gabriela@contoso.com - ID: 6
    

    Použití fabrikam.com pro -emailRegex hodnotu vrátí uživatele, kteří mají v poli e-mailu fabrikam.com . Regulární výrazy můžete použít také jako hledaný termín. Například ^r vrátí e-mailové adresy, které začínají písmenem "r".

  7. Pokud chcete tabulku odstranit, použijte následující příkaz:

    Start-HBaseExample -className com.microsoft.examples.DeleteTable -clusterName $myCluster
    

Žádné výsledky nebo neočekávané výsledky při použití start-HBaseExample

Pomocí parametru -showErr můžete zobrazit standardní chybu (STDERR), která se vytvoří při spuštění úlohy.

Další kroky

Naučte se používat SQLLine s Apache HBase.