Skapa Java-program för Apache HBase

Lär dig hur du skapar ett Apache HBase-program i Java. Använd sedan programmet med HBase i Azure HDInsight.

Stegen i det här dokumentet använder Apache Maven för att skapa och skapa projektet. Maven är ett verktyg för projekthantering och förståelse för programvara som gör att du kan skapa programvara, dokumentation och rapporter för Java-projekt.

Förutsättningar

Testmiljö

Miljön som används för den här artikeln var en dator som kör Windows 10. Kommandona kördes i en kommandotolk och de olika filerna redigerades med Anteckningar. Ändra i enlighet med detta för din miljö.

Från en kommandotolk anger du följande kommandon för att skapa en arbetsmiljö:

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

Skapa ett Maven-projekt

  1. Ange följande kommando för att skapa ett Maven-projekt med namnet hbaseapp:

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

    Det här kommandot skapar en katalog med namnet hbaseapp på den aktuella platsen, som innehåller ett grundläggande Maven-projekt. Det andra kommandot ändrar arbetskatalogen till hbaseapp. Det tredje kommandot skapar en ny katalog, conf, som kan användas senare. Katalogen hbaseapp innehåller följande objekt:

    • pom.xml: Projektobjektmodellen (POM) innehåller information och konfigurationsinformation som används för att skapa projektet.
    • src\main\java\com\microsoft\examples: Innehåller programkoden.
    • src\test\java\com\microsoft\examples: Innehåller tester för ditt program.
  2. Ta bort den genererade exempelkoden. Ta bort de genererade test- och programfilerna AppTest.javaoch App.java genom att ange följande kommandon:

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

Uppdatera projektobjektmodellen

En fullständig referens för pom.xml-filen finns i https://maven.apache.org/pom.html. Öppna pom.xml genom att ange följande kommando:

notepad pom.xml

Lägga till beroenden

I pom.xmllägger du till följande text i avsnittet <dependencies> :

<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>

Det här avsnittet anger att projektet behöver komponenterna hbase-client och phoenix-core . Vid kompileringstillfället laddas dessa beroenden ned från maven-standardlagringsplatsen. Du kan använda Maven Central Repository Search för att lära dig mer om det här beroendet.

Viktigt!

Versionsnumret för hbase-klienten måste matcha den version av Apache HBase som tillhandahålls med ditt HDInsight-kluster. Använd följande tabell för att hitta rätt versionsnummer.

HDInsight-klusterversion Apache HBase-version att använda
3,6 1.1.2
4.0 2.0.0

Mer information om HDInsight-versioner och -komponenter finns i Vad är de olika Apache Hadoop-komponenterna som är tillgängliga med HDInsight.

Skapa konfiguration

Med Maven-plugin-program kan du anpassa byggfaserna i projektet. Det här avsnittet används för att lägga till plugin-program, resurser och andra konfigurationsalternativ för bygge.

Lägg till följande kod i pom.xml filen och spara och stäng sedan filen. Den här texten måste finnas i taggarna <project>...</project> i filen, till exempel mellan </dependencies> och </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>

Det här avsnittet konfigurerar en resurs (conf/hbase-site.xml) som innehåller konfigurationsinformation för HBase.

Kommentar

Du kan också ange konfigurationsvärden via kod. Se kommentarerna i exemplet CreateTable .

Det här avsnittet konfigurerar även Plugin-programmet Apache Maven Compiler och Plugin-programmet Apache Maven Shade. Plugin-programmet för kompileraren används för att kompilera topologin. Plugin-programmet shade används för att förhindra licensduplicering i JAR-paketet som har skapats av Maven. Det här plugin-programmet används för att förhindra felet "duplicerade licensfiler" vid körning i HDInsight-klustret. Om du använder maven-shade-plugin med implementeringen ApacheLicenseResourceTransformer förhindras felet.

Plugin-programmet maven-shade-ger också en uber-jar som innehåller alla beroenden som krävs av programmet.

Ladda ned hbase-site.xml

Använd följande kommando för att kopiera HBase-konfigurationen från HBase-klustret till conf katalogen. Ersätt CLUSTERNAME med ditt HDInsight-klusternamn och ange sedan kommandot:

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

Skapa programmet

Implementera en CreateTable-klass

Ange följande kommando för att skapa och öppna en ny fil CreateTable.java. Välj Ja i kommandotolken för att skapa en ny fil.

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

Kopiera och klistra sedan in följande Java-kod i den nya filen. Stäng sedan filen.

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();
    }
}

Den här koden är CreateTable klassen som skapar en tabell med namnet people och fyller den med vissa fördefinierade användare.

Implementera en SearchByEmail-klass

Ange följande kommando för att skapa och öppna en ny fil SearchByEmail.java. Välj Ja i kommandotolken för att skapa en ny fil.

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

Kopiera och klistra sedan in följande Java-kod i den nya filen. Stäng sedan filen.

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();
    }
}

Klassen SearchByEmail kan användas för att fråga efter rader via e-postadress. Eftersom det använder ett filter för reguljära uttryck kan du ange antingen en sträng eller ett reguljärt uttryck när du använder klassen.

Implementera en DeleteTable-klass

Ange följande kommando för att skapa och öppna en ny fil DeleteTable.java. Välj Ja i kommandotolken för att skapa en ny fil.

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

Kopiera och klistra sedan in följande Java-kod i den nya filen. Stäng sedan filen.

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");
    }
}

Klassen DeleteTable rensar upp de HBase-tabeller som skapats i det här exemplet genom att inaktivera och släppa tabellen som skapats av CreateTable klassen.

Skapa och paketera programmet

  1. Från katalogen hbaseapp använder du följande kommando för att skapa en JAR-fil som innehåller programmet:

    mvn clean package
    

    Det här kommandot skapar och paketar programmet i en .jar-fil.

  2. När kommandot har slutförts hbaseapp/target innehåller katalogen en fil med namnet hbaseapp-1.0-SNAPSHOT.jar.

    Kommentar

    Filen hbaseapp-1.0-SNAPSHOT.jar är en uber-jar. Den innehåller alla beroenden som krävs för att köra programmet.

Ladda upp JAR och kör jobb (SSH)

Följande steg använder scp för att kopiera JAR-filen till den primära huvudnoden i Apache HBase i HDInsight-klustret. Kommandot ssh används sedan för att ansluta till klustret och köra exemplet direkt på huvudnoden.

  1. Ladda upp jar-filen till klustret. Ersätt CLUSTERNAME med ditt HDInsight-klusternamn och ange sedan följande kommando:

    scp ./target/hbaseapp-1.0-SNAPSHOT.jar sshuser@CLUSTERNAME-ssh.azurehdinsight.net:hbaseapp-1.0-SNAPSHOT.jar
    
  2. Anslut till HBase-klustret. Ersätt CLUSTERNAME med ditt HDInsight-klusternamn och ange sedan följande kommando:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  3. Om du vill skapa en HBase-tabell med Java-programmet använder du följande kommando i din öppna ssh-anslutning:

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

    Det här kommandot skapar en HBase-tabell med namnet people och fyller den med data.

  4. Om du vill söka efter e-postadresser som lagras i tabellen använder du följande kommando:

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

    Du får följande resultat:

    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. Om du vill ta bort tabellen använder du följande kommando:

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

Ladda upp JAR och kör jobb (PowerShell)

Följande steg använder Azure PowerShell AZ-modulen för att ladda upp JAR-filen till standardlagringen för ditt Apache HBase-kluster. HDInsight-cmdletar används sedan för att fjärrköra exemplen.

  1. När du har installerat och konfigurerat AZ-modulen skapar du en fil med namnet hbase-runner.psm1. Använd följande text som filens innehåll:

     <#
     .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 *-*
    

    Den här filen innehåller två moduler:

    • Add-HDInsightFile – används för att ladda upp filer till klustret
    • Start-HBaseExample – används för att köra de klasser som skapades tidigare
  2. hbase-runner.psm1 Spara filen i hbaseapp katalogen.

  3. Registrera modulerna med Azure PowerShell. Öppna ett nytt Azure PowerShell-fönster och redigera följande kommando genom att CLUSTERNAME ersätta med namnet på klustret. Ange sedan följande kommandon:

    cd C:\HDI\hbaseapp
    $myCluster = "CLUSTERNAME"
    Import-Module .\hbase-runner.psm1
    
  4. Använd följande kommando för att ladda upp hbaseapp-1.0-SNAPSHOT.jar till klustret.

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

    När du uppmanas till det anger du namnet och lösenordet för klusterinloggning (administratör). Kommandot laddar upp hbaseapp-1.0-SNAPSHOT.jar till platsen example/jars i det primära lagringsutrymmet för klustret.

  5. Om du vill skapa en tabell med hjälp av hbaseappanvänder du följande kommando:

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

    När du uppmanas till det anger du namnet och lösenordet för klusterinloggning (administratör).

    Det här kommandot skapar en tabell med namnet people i HBase i ditt HDInsight-kluster. Det här kommandot visar inga utdata i konsolfönstret.

  6. Om du vill söka efter poster i tabellen använder du följande kommando:

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

    När du uppmanas till det anger du namnet och lösenordet för klusterinloggning (administratör).

    Det här kommandot använder SearchByEmail klassen för att söka efter rader där kolumnfamiljen contactinformationemail och kolumnen innehåller strängen contoso.com. Du bör få följande resultat:

    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
    

    Om du använder fabrikam.com för -emailRegex värdet returneras de användare som har fabrikam.com i e-postfältet. Du kan också använda reguljära uttryck som sökord. Till exempel returnerar ^r e-postadresser som börjar med bokstaven "r".

  7. Om du vill ta bort tabellen använder du följande kommando:

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

Inga resultat eller oväntade resultat när du använder Start-HBaseExample

Använd parametern -showErr för att visa standardfelet (STDERR) som skapas när jobbet körs.

Nästa steg

Lär dig hur du använder SQLLine med Apache HBase