hbase基本开发-插入表-创新互联
创建maven项目
成都创新互联主要从事网站设计制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务望城,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220pom.xml文件内容: 3个依赖包 hbase-client hadoop-hdfs jdk.tools
连接hbase的两种方法:
配置法(不一定要按图配置,程序会默认去读classpath下的配置文件,可以通过System.out.println(ClassLoader.getSystemResource("").toString());获取)
1 在main文件夹下,建立resources文件夹,在resources文件夹下建立hbase文件,hbase文件夹下放hbase-site.xml配置文件(主要用到里面的zookeeper配置信息)
配置文件主要内容如下:
hbase-site.xml
代码:
package myHbase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.Cell.Type;
import org.apache.hadoop.hbase.CellBuilder;
import org.apache.hadoop.hbase.CellBuilderFactory;
import org.apache.hadoop.hbase.CellBuilderType;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class SimpleTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Configuration hBaseConfig = HBaseConfiguration.create();
HBaseAdmin.available(hBaseConfig);
Connection connection = ConnectionFactory.createConnection(hBaseConfig);
TableName table1 = TableName.valueOf("test");
Table table = connection.getTable(table1);
CellBuilder cb = CellBuilderFactory.create(CellBuilderType.SHALLOW_COPY);
cb.setRow(Bytes.toBytes("row3"));
cb.setFamily(Bytes.toBytes("cf"));
cb.setQualifier("qualifier1".getBytes());
cb.setValue(Bytes.toBytes("mjj2"));
cb.setType(Type.Put);
Cell cell = cb.build();
Put p = new Put(Bytes.toBytes("row3"));
p.add(cell);
table.put(p);
connection.close();
}
}
配置不正确报错(zookeeper的连接丢失):
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.MasterNotRunningException: java.io.IOException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
代码里设定zookeeper:
package myHbase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.Cell.Type;
import org.apache.hadoop.hbase.CellBuilder;
import org.apache.hadoop.hbase.CellBuilderFactory;
import org.apache.hadoop.hbase.CellBuilderType;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class SimpleTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Configuration hBaseConfig = HBaseConfiguration.create();
hBaseConfig.set("hbase.zookeeper.quorum", "192.168.50.107");
hBaseConfig.set("hbase.zookeeper.property.clientPort", "2181");
HBaseAdmin.available(hBaseConfig);
Connection connection = ConnectionFactory.createConnection(hBaseConfig);
TableName table1 = TableName.valueOf("test");
Table table = connection.getTable(table1);
CellBuilder cb = CellBuilderFactory.create(CellBuilderType.SHALLOW_COPY);
cb.setRow(Bytes.toBytes("row3"));
cb.setFamily(Bytes.toBytes("cf"));
cb.setQualifier("qualifier1".getBytes());
cb.setValue(Bytes.toBytes("mjj2"));
cb.setType(Type.Put);
Cell cell = cb.build();
Put p = new Put(Bytes.toBytes("row3"));
p.add(cell);
table.put(p);
connection.close();
}
}
重要: windows上一定要配置/etc/hosts. 添加一条 192.168.50.107 rhel -------其中rhel 为 hbase机子的主机名。原因未知。
否则报错:
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: can not resolve rhel,16000,1530027948780
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:hbase基本开发-插入表-创新互联
本文路径:http://azwzsj.com/article/pocji.html