Hbase API 建立表錯誤記錄 for Docker 容器部署叢集
阿新 • • 發佈:2020-05-01
Hbase API 建立表錯誤記錄
Demo方法:
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; public class CreateTableDemo { public static void main(String[] args) throws Exception{ Configuration config = HBaseConfiguration.create();// 獲取連線資訊 //建立連線 try(Connection connection = ConnectionFactory.createConnection(config)) { Admin admin = connection.getAdmin(); HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("weGamer")); HColumnDescriptor cf1 = new HColumnDescriptor("personalinfo"); HColumnDescriptor cf2 = new HColumnDescriptor("recordinfo"); HColumnDescriptor cf3 = new HColumnDescriptor("assetsinfo"); tableDescriptor.addFamily(cf1); tableDescriptor.addFamily(cf2); tableDescriptor.addFamily(cf3); System.out.println("Createing table. "); //Do create admin.createTable(tableDescriptor); System.out.println("Done."); } } }
執行編譯報錯:
HBase Master應該繫結的埠。預設為:16000
容器內主機名沒有在客戶端繫結/ect/hosts 在末尾追加
vim /etc/hosts
172.20.0.2 hadoop-master 55c923f2c306
再次編譯執行報錯:
HBase RegionServer繫結的埠。預設為:16020
容器內主機名沒有在客戶端繫結/ect/hosts 在末尾追加
vim /etc/hosts
172.20.0.3 hadoop-slave1 hadoop-slave1.day2_beimei6-net
執行報錯:
這個執行時異常,我們之前的表因為反覆建立了,我們去 UI 檢視一下。
表是存在的,我們測試改個名字
我們再次編譯執行:
最終我們看到成功了,然後我們是三臺Docker容器,我們為了後面的不會再次出現這個錯誤,我們把 salve2 節點的 hbase 的HRegionServer機器主機名
容器內主機名沒有在客戶端繫結/ect/hosts 在末尾追加
vim /etc/hosts
172.20.0.4 hadoop-slave2 hadoop-slave2.day2_beimei6-net
應用程式對資料的讀寫操作都是通過和HRegion通訊完成,16020埠是RegionServer繫結的埠。