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.
Požadavky
Cluster Apache HBase ve službě HDInsight. Viz Začínáme s Apache HBase.
Apache Maven je správně nainstalovaný podle Apache. Maven je systém sestavení projektu pro projekty Java.
Klient SSH. Další informace najdete v tématu Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH.
Pokud používáte PowerShell, potřebujete modul AZ.
Textový editor Tento článek používá Microsoft Notepad.
Testovací prostředí
Prostředí použité pro tento článek bylo počítač s Windows 10. Příkazy se spustily na příkazovém řádku a různé soubory byly upraveny pomocí Poznámkového bloku. 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
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ář nahbaseapp
. Třetí příkaz vytvoří nový adresář,conf
který 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.
Odeberte vygenerovaný ukázkový kód. Odstraňte vygenerované soubory
AppTest.java
testů a aplikací aApp.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.xml
oddí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
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.
Po dokončení
hbaseapp/target
příkazu obsahuje adresář soubor s názvemhbaseapp-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.
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
Připojte se ke clusteru HBase. Nahraďte
CLUSTERNAME
názvem clusteru HDInsight a zadejte následující příkaz:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
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.
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
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ů.
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.
hbase-runner.psm1
Uložte soubor dohbaseapp
adresáře.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
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
doexample/jars
umístění v primárním úložišti clusteru.Pokud chcete vytvořit tabulku pomocí
hbaseapp
pří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.
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ýchcontactinformation
je rodina sloupců aemail
sloupec, obsahuje řetězeccontoso.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".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.