Tworzenie aplikacji Java dla bazy danych Apache HBase
Dowiedz się, jak utworzyć aplikację Apache HBase w języku Java. Następnie użyj aplikacji z bazą danych HBase w usłudze Azure HDInsight.
Kroki opisane w tym dokumencie używają narzędzia Apache Maven do tworzenia i kompilowania projektu. Maven to narzędzie do zarządzania projektami oprogramowania i zrozumienia, które umożliwia tworzenie oprogramowania, dokumentacji i raportów dla projektów Java.
Wymagania wstępne
Klaster Apache HBase w usłudze HDInsight. Zobacz Rozpoczynanie pracy z bazą danych Apache HBase.
Narzędzie Apache Maven poprawnie zainstalowane zgodnie z apache. Maven to system kompilacji projektu dla projektów Java.
Klient SSH. Aby uzyskać więcej informacji, zobacz Łączenie się z usługą HDInsight (Apache Hadoop) przy użyciu protokołu SSH.
Edytor tekstów. W tym artykule użyto Notatnika Microsoft.
Środowisko testowe
Środowisko używane w tym artykule było komputerem z systemem Windows 10. Polecenia zostały wykonane w wierszu polecenia, a różne pliki zostały edytowane za pomocą Notatnika. Zmodyfikuj odpowiednio środowisko.
W wierszu polecenia wprowadź następujące polecenia, aby utworzyć środowisko robocze:
IF NOT EXIST C:\HDI MKDIR C:\HDI
cd C:\HDI
Tworzenie projektu Maven
Wprowadź następujące polecenie, aby utworzyć projekt Maven o nazwie hbaseapp:
mvn archetype:generate -DgroupId=com.microsoft.examples -DartifactId=hbaseapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false cd hbaseapp mkdir conf
To polecenie tworzy katalog o nazwie
hbaseapp
w bieżącej lokalizacji, który zawiera podstawowy projekt Maven. Drugie polecenie zmienia katalog roboczy nahbaseapp
. Trzecie polecenie tworzy nowy katalog ,conf
którego można użyć później. Kataloghbaseapp
zawiera następujące elementy:pom.xml
: Model obiektów projektu (POM) zawiera informacje i szczegóły konfiguracji używane do kompilowania projektu.src\main\java\com\microsoft\examples
: zawiera kod aplikacji.src\test\java\com\microsoft\examples
: zawiera testy dla aplikacji.
Usuń wygenerowany przykładowy kod. Usuń wygenerowane pliki
AppTest.java
testów i aplikacji, aApp.java
następnie wprowadź następujące polecenia:DEL src\main\java\com\microsoft\examples\App.java DEL src\test\java\com\microsoft\examples\AppTest.java
Aktualizowanie modelu obiektów projektu
Aby uzyskać pełną dokumentację pliku pom.xml, zobacz https://maven.apache.org/pom.html. Otwórz plik pom.xml
, wprowadzając następujące polecenie:
notepad pom.xml
Dodawanie zależności
W pom.xml
pliku dodaj następujący tekst w <dependencies>
sekcji :
<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>
Ta sekcja wskazuje, że projekt wymaga składników hbase-client i phoenix-core . W czasie kompilacji te zależności są pobierane z domyślnego repozytorium Maven. Aby dowiedzieć się więcej na temat tej zależności, możesz użyć wyszukiwania centralnego repozytorium Maven.
Ważne
Numer wersji klienta hbase-client musi być zgodny z wersją bazy danych Apache HBase dostarczonej z klastrem usługi HDInsight. Skorzystaj z poniższej tabeli, aby znaleźć prawidłowy numer wersji.
Wersja klastra usługi HDInsight | Wersja bazy danych Apache HBase do użycia |
---|---|
3,6 | 1.1.2 |
4.0 | 2.0.0 |
Aby uzyskać więcej informacji na temat wersji i składników usługi HDInsight, zobacz Co to są różne składniki platformy Apache Hadoop dostępne w usłudze HDInsight.
Konfiguracja kompilacji
Wtyczki Maven umożliwiają dostosowanie etapów kompilacji projektu. Ta sekcja służy do dodawania wtyczek, zasobów i innych opcji konfiguracji kompilacji.
Dodaj następujący kod do pom.xml
pliku, a następnie zapisz i zamknij plik. Ten tekst musi znajdować się wewnątrz <project>...</project>
tagów w pliku, na przykład między </dependencies>
i </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>
Ta sekcja umożliwia skonfigurowanie zasobu (conf/hbase-site.xml
), który zawiera informacje o konfiguracji bazy danych HBase.
Uwaga
Można również ustawić wartości konfiguracji za pomocą kodu. Zobacz komentarze w przykładzie CreateTable
.
Ta sekcja umożliwia również skonfigurowanie wtyczki kompilatora Apache Maven i wtyczki Apache Maven Shade. Wtyczka kompilatora służy do kompilowania topologii. Wtyczka cieniowania służy do zapobiegania duplikowaniu licencji w pakiecie JAR utworzonym przez narzędzie Maven. Ta wtyczka służy do zapobiegania błędowi "zduplikowanych plików licencji" w czasie wykonywania w klastrze usługi HDInsight. Użycie wtyczki maven-shade-plugin z implementacją ApacheLicenseResourceTransformer
uniemożliwia błąd.
Wtyczka maven-shade-plugin tworzy również plik jar uber zawierający wszystkie zależności wymagane przez aplikację.
Pobieranie hbase-site.xml
Użyj następującego polecenia, aby skopiować konfigurację bazy danych HBase z klastra conf
HBase do katalogu. Zastąp CLUSTERNAME
ciąg nazwą klastra usługi HDInsight, a następnie wprowadź polecenie:
scp sshuser@CLUSTERNAME-ssh.azurehdinsight.net:/etc/hbase/conf/hbase-site.xml ./conf/hbase-site.xml
Tworzenie aplikacji
Implementowanie klasy CreateTable
Wprowadź następujące polecenie, aby utworzyć i otworzyć nowy plik CreateTable.java
. Wybierz pozycję Tak po wyświetleniu monitu, aby utworzyć nowy plik.
notepad src\main\java\com\microsoft\examples\CreateTable.java
Następnie skopiuj i wklej następujący kod Java do nowego pliku. Następnie zamknij plik.
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();
}
}
Ten kod jest klasą CreateTable
, która tworzy tabelę o nazwie people
i wypełnia ją niektórymi wstępnie zdefiniowanymi użytkownikami.
Implementowanie klasy SearchByEmail
Wprowadź następujące polecenie, aby utworzyć i otworzyć nowy plik SearchByEmail.java
. Wybierz pozycję Tak po wyświetleniu monitu, aby utworzyć nowy plik.
notepad src\main\java\com\microsoft\examples\SearchByEmail.java
Następnie skopiuj i wklej następujący kod Java do nowego pliku. Następnie zamknij plik.
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();
}
}
Klasa SearchByEmail
może służyć do wykonywania zapytań dotyczących wierszy według adresu e-mail. Ponieważ używa filtru wyrażenia regularnego, można podać ciąg lub wyrażenie regularne podczas korzystania z klasy.
Implementowanie klasy DeleteTable
Wprowadź następujące polecenie, aby utworzyć i otworzyć nowy plik DeleteTable.java
. Wybierz pozycję Tak po wyświetleniu monitu, aby utworzyć nowy plik.
notepad src\main\java\com\microsoft\examples\DeleteTable.java
Następnie skopiuj i wklej następujący kod Java do nowego pliku. Następnie zamknij plik.
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");
}
}
Klasa DeleteTable
czyści tabele HBase utworzone w tym przykładzie przez wyłączenie i usunięcie tabeli utworzonej przez klasę CreateTable
.
Kompilowanie i pakowanie aplikacji
hbaseapp
W katalogu użyj następującego polecenia, aby skompilować plik JAR zawierający aplikację:mvn clean package
To polecenie kompiluje i pakuje aplikację do pliku .jar.
Po zakończeniu
hbaseapp/target
polecenia katalog zawiera plik o nazwiehbaseapp-1.0-SNAPSHOT.jar
.Uwaga
Plik
hbaseapp-1.0-SNAPSHOT.jar
jest plikiem jar uber. Zawiera wszystkie zależności wymagane do uruchomienia aplikacji.
Przekazywanie pliku JAR i uruchamianie zadań (SSH)
Poniższe kroki umożliwiają scp
skopiowanie pliku JAR do podstawowego węzła głównego bazy danych Apache HBase w klastrze usługi HDInsight. Polecenie ssh
jest następnie używane do nawiązywania połączenia z klastrem i uruchamiania przykładu bezpośrednio w węźle głównym.
Przekaż plik jar do klastra. Zastąp
CLUSTERNAME
ciąg nazwą klastra usługi HDInsight, a następnie wprowadź następujące polecenie:scp ./target/hbaseapp-1.0-SNAPSHOT.jar sshuser@CLUSTERNAME-ssh.azurehdinsight.net:hbaseapp-1.0-SNAPSHOT.jar
Połącz się z klastrem HBase. Zastąp
CLUSTERNAME
ciąg nazwą klastra usługi HDInsight, a następnie wprowadź następujące polecenie:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Aby utworzyć tabelę HBase przy użyciu aplikacji Java, użyj następującego polecenia w otwartym połączeniu ssh:
yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.CreateTable
To polecenie tworzy tabelę HBase o nazwie people i wypełnia ją danymi.
Aby wyszukać adresy e-mail przechowywane w tabeli, użyj następującego polecenia:
yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.SearchByEmail contoso.com
Otrzymasz następujące wyniki:
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
Aby usunąć tabelę, użyj następującego polecenia:
yarn jar hbaseapp-1.0-SNAPSHOT.jar com.microsoft.examples.DeleteTable
Przekazywanie pliku JAR i uruchamianie zadań (PowerShell)
W poniższych krokach użyj modułu AZ programu Azure PowerShell, aby przekazać plik JAR do domyślnego magazynu dla klastra Apache HBase. Polecenia cmdlet usługi HDInsight są następnie używane do zdalnego uruchamiania przykładów.
Po zainstalowaniu i skonfigurowaniu modułu AZ utwórz plik o nazwie
hbase-runner.psm1
. Użyj następującego tekstu jako zawartości tego pliku:<# .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 *-*
Ten plik zawiera dwa moduły:
- Add-HDInsightFile — służy do przekazywania plików do klastra
- Start-HBaseExample — służy do uruchamiania utworzonych wcześniej klas
hbase-runner.psm1
Zapisz plik whbaseapp
katalogu.Zarejestruj moduły w programie Azure PowerShell. Otwórz nowe okno programu Azure PowerShell i zmodyfikuj następujące polecenie, zastępując
CLUSTERNAME
ciąg nazwą klastra. Następnie wprowadź następujące polecenia:cd C:\HDI\hbaseapp $myCluster = "CLUSTERNAME" Import-Module .\hbase-runner.psm1
Użyj następującego polecenia, aby przekazać element do klastra
hbaseapp-1.0-SNAPSHOT.jar
.Add-HDInsightFile -localPath target\hbaseapp-1.0-SNAPSHOT.jar -destinationPath example/jars/hbaseapp-1.0-SNAPSHOT.jar -clusterName $myCluster
Po wyświetleniu monitu wprowadź nazwę logowania klastra (administratora) i hasło. Polecenie przekazuje element
hbaseapp-1.0-SNAPSHOT.jar
doexample/jars
lokalizacji w magazynie podstawowym klastra.Aby utworzyć tabelę przy użyciu
hbaseapp
polecenia , użyj następującego polecenia:Start-HBaseExample -className com.microsoft.examples.CreateTable -clusterName $myCluster
Po wyświetleniu monitu wprowadź nazwę logowania klastra (administratora) i hasło.
To polecenie tworzy tabelę o nazwie people in HBase w klastrze usługi HDInsight. To polecenie nie wyświetla żadnych danych wyjściowych w oknie konsoli.
Aby wyszukać wpisy w tabeli, użyj następującego polecenia:
Start-HBaseExample -className com.microsoft.examples.SearchByEmail -clusterName $myCluster -emailRegex contoso.com
Po wyświetleniu monitu wprowadź nazwę logowania klastra (administratora) i hasło.
To polecenie używa
SearchByEmail
klasy do wyszukiwania dowolnych wierszy, w którychcontactinformation
rodzina kolumn iemail
kolumna zawiera ciągcontoso.com
. Powinny zostać wyświetlone następujące wyniki: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
Użycie fabrikam.com wartości
-emailRegex
zwraca użytkowników, którzy mają fabrikam.com w polu poczty e-mail. Możesz również użyć wyrażeń regularnych jako terminu wyszukiwania. Na przykład program ^r zwraca adresy e-mail rozpoczynające się literą "r".Aby usunąć tabelę, użyj następującego polecenia:
Start-HBaseExample -className com.microsoft.examples.DeleteTable -clusterName $myCluster
Brak wyników lub nieoczekiwanych wyników podczas korzystania z polecenia Start-HBaseExample
Użyj parametru -showErr
, aby wyświetlić błąd standardowy (STDERR), który jest generowany podczas uruchamiania zadania.
Następne kroki
Dowiedz się, jak używać usługi SQLLine z bazą danych Apache HBase