本實(shí)例采用Eclipse開(kāi)發(fā)工具。
啟動(dòng)Eclipse,啟動(dòng)以后,出現(xiàn)如下圖所示界面,點(diǎn)擊ok按鈕。
啟動(dòng)進(jìn)入Eclipse以后的程序開(kāi)發(fā)界面如下圖所示。
點(diǎn)擊界面頂部的“File”菜單,在彈出的子菜單(如下圖所示)中選擇“New”,再選擇子菜單中的“Project”。
這時(shí)會(huì)彈出一個(gè)Java工程創(chuàng)建對(duì)話(huà)框(如下圖所示),在“Project name”文本框中輸入“HBaseTest”,在“JRE”選項(xiàng)卡中選中第2項(xiàng)“Use a project specific JRE”,然后點(diǎn)擊界面底部的“Next”按鈕。
在彈出的界面中(如下圖所示),用鼠標(biāo)點(diǎn)擊“Libraries”選項(xiàng)卡,然后,點(diǎn)擊界面右側(cè)的“Add External JARs…”按鈕。
在彈出的“JAR Selection”界面中(如下圖所示),進(jìn)入到“/home/hadoop/hbase/lib”目錄,選中該目錄下的所有jar文件,一共有111個(gè)jar文件(注意,不要選中ruby目錄),然后,點(diǎn)擊界面底部的“確定”按鈕。
然后可以看到j(luò)ar包都添加進(jìn)去了,再點(diǎn)擊界面(如下圖所示)底部的“Finish”按鈕。
如果彈出這個(gè)對(duì)話(huà)框,點(diǎn)擊“yes”。
在界面(如下圖所示)左側(cè)的“HBaseTest”工程名稱(chēng)上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“New”,再在彈出的子菜單中選擇“Class”。
在彈出的“New Java Class”對(duì)話(huà)框(如下圖所示)中,在“Name”文本框中輸入“HBaseTest”,然后,點(diǎn)擊界面底部的“Finish”按鈕。
在代碼窗口中(如下圖所示),HBaseTest.java代碼內(nèi)容輸入。
HBaseTest.java代碼內(nèi)容具體如下:
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
public class HbaseTest {
public static Configuration configuration;
public static Connection connection;
public static Admin admin;
public static void main(String[] args)throws IOException{
init();
createTable("HbaseTest",new String[]{"score"});
insterRow("HbaseTest","zhangsan","score","English","69");
insterRow("HbaseTest","zhangsan","score","Math","86");
close();
}
//建立連接
public static void init(){
configuration = HBaseConfiguration.create();
configuration.set("hbase.rootdir","hdfs://localhost/hbase");
try{
connection = ConnectionFactory.createConnection(configuration);
admin = connection.getAdmin();
}catch (IOException e){
e.printStackTrace();
}
}
//關(guān)閉連接
public static void close(){
try{
if(admin != null){
admin.close();
}
if(null != connection){
connection.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
/*
* 創(chuàng)建表,參數(shù)tableName為表的名稱(chēng),字符串?dāng)?shù)組fields為存儲(chǔ)記錄各個(gè)域名稱(chēng)的數(shù)組。
* 要求當(dāng)HBase已經(jīng)存在名為tableName的表的時(shí)候,先刪除原有的表,然后再創(chuàng)建新的表。
*/
public static void createTable(String tableName, String[] fields) throws IOException {
init();
TableName tablename = TableName.valueOf(tableName);
if (admin.tableExists(tablename)) {
System.out.println("該表已存在,刪除后重建。");
admin.disableTable(tablename);
admin.deleteTable(tablename);
}
HTableDescriptor htd = new HTableDescriptor(tablename);
for (String str : fields) {
HColumnDescriptor hcd = new HColumnDescriptor(str);
htd.addFamily(hcd);
}
admin.createTable(htd);
close();
}
//向表添加數(shù)據(jù)
public static void insterRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {
init();
Table table = connection.getTable(TableName.valueOf(tableName));
Put put = new Put(rowKey.getBytes());
put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());
table.put(put);
table.close();
close();
}
}
在開(kāi)始運(yùn)行程序之前,需要啟動(dòng)HDFS和HBase。
然后,如下圖所示,點(diǎn)擊界面中的運(yùn)行圖標(biāo)右側(cè)的“倒三角”,在彈出的菜單中選擇“Run As”,再在彈出的菜單中點(diǎn)擊“1 Java Application”,開(kāi)始運(yùn)行程序。
運(yùn)行結(jié)束后,可以到HBase Shell交互式環(huán)境中,使用如下命令查看HbaseTest表是否創(chuàng)建成功:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-754057.html
或者在eclipse右側(cè)可以看到創(chuàng)建成功的表:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754057.html
到了這里,關(guān)于HBase Java API編程實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!