Java API 实现HBase的数据添加与过滤查询
包依赖比较麻烦,找了好久,我用的CDH5.0 现将所依赖的包的列表清单如下:

public class EmployeeDao {
/**
	 * @param args
	 */
	public static Configuration configuration;
	  static {
		    configuration = new Configuration();
		    String filePath = "hbase-site.xml";
		    Path path = new Path(filePath);
		    configuration.addResource(path);
		    configuration = HBaseConfiguration.create(configuration);
	  }
	  //使用过滤器实现查询
	  public List<Employee> QueryEmployeeByName(String name) throws Exception {
		    String rowKey = name;
		    HTable table = new HTable(configuration, "employee".getBytes());
		    Scan scan = new Scan();
		    // select ..... from .. where filter
		    scan.addColumn("info".getBytes(), "age".getBytes());
		    scan.addColumn("info".getBytes(), "sex".getBytes());
		    RowFilter filter = new RowFilter(CompareOp.EQUAL,
				    new RegexStringComparator(rowKey));
		    scan.setFilter(filter);
		    List<Employee> list = new ArrayList<Employee>();
		    ResultScanner rScanner = table.getScanner(scan);
    for (Result rs : rScanner) {
			      Employee e = new Employee();
			      for (KeyValue kValue : rs.list()) {
				        if ("sex".equalsIgnoreCase(new String(kValue.getQualifier()))) {
					          e.setSex(new String(kValue.getValue()));
				        }
				        if ("age".equalsIgnoreCase(new String(kValue.getQualifier()))) {
					          e.setAge(Integer.parseInt((new String(kValue.getValue()))));
				        }
			      }
			      list.add(e);
		    }
		    return list;
	  }
	  // 插入一个单元格数据
	  public static void insertOneRow(String tableName, String rowkey,
			    String columnFamily, String column, String value) throws Exception {
		    HTable table = new HTable(configuration, tableName);
		    Put put = new Put(Bytes.toBytes(rowkey));
		    put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
				    Bytes.toBytes(value));
		    table.put(put);// 放入表
		    table.close();// 释放资源
	  }
  public static void main(String[] args) throws Exception {
		    // TODO Auto-generated method stub
		    EmployeeDao dao = new EmployeeDao();
		    List<Employee> l = dao.QueryEmployeeByName("oftenlin");
		    for (Employee e : l) {
			      System.out.println("Name:oftenlin," + "Sex:" + e.getSex() + ",Age:"+ e.getAge());
		    }
		    //insertOneRow("employee","allen","info","scholl","shi yan mid school");
		    insertOneRow("employee","gold fly","info","scholl","shi yan mid school");
		    System.out.println("写入成功!");
	  }
}
hbase-site.xml 的清单
<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera Manager-->
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://CentOS-cm:8020/hbase</value>
  </property>
  <property>
    <name>hbase.client.write.buffer</name>
    <value>2097152</value>
  </property>
  <property>
    <name>hbase.client.pause</name>
    <value>100</value>
  </property>
  <property>
    <name>hbase.client.retries.number</name>
    <value>35</value>
  </property>
  <property>
    <name>hbase.client.scanner.caching</name>
    <value>100</value>
  </property>
  <property>
    <name>hbase.client.keyvalue.maxsize</name>
    <value>10485760</value>
  </property>
  <property>
    <name>hbase.rpc.timeout</name>
    <value>60000</value>
  </property>
  <property>
    <name>hbase.snapshot.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.security.authentication</name>
    <value>simple</value>
  </property>
  <property>
    <name>zookeeper.session.timeout</name>
    <value>60000</value>
  </property>
  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
  </property>
  <property>
    <name>zookeeper.znode.rootserver</name>
    <value>root-region-server</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>CentOS-server3,CentOS-server2,CentOS-server1</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
</configuration>
Java API 实现HBase的数据添加与过滤查询的更多相关文章
- HBase 6、用Phoenix Java api操作HBase
		开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ... 
- 通过Java Api与HBase交互(转)
		HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ... 
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
		转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ... 
- 通过Java Api与HBase交互
		HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ... 
- HBase总结(十二)Java API 与HBase交互实例
		HBase提供了Java Api的訪问接口,掌握这个就跟Java应用使用RDBMS时须要JDBC一样重要 import java.io.IOException; import org.apache.h ... 
- JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32
		Java使用API访问Hbase报错: 我的hbase主节点是spark1 java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名 修改主机hosts文 ... 
- Java API 操作HBase Shell
		HBase Shell API 操作 创建工程 本实验的环境实在ubuntu18.04下完成,首先在改虚拟机中安装开发工具eclipse. 然后创建Java项目名字叫hbase-test 配置运行环境 ... 
- Java Api与HBase交互实例
		import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ... 
- linux 下通过过 hbase 的Java api 操作hbase
		hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ... 
随机推荐
- ui组件--弹出层layer的使用
			帮助文档 下载地址 演示地址 
- Mysql tablespace
			对于innodb引擎的独立表空间,参考:http://blog.csdn.net/imzoer/article/details/8287938, 关键有两个变量:innodb_file_per_tab ... 
- Eclipse启动时出现错误 An internal error occurred during: “Updating indexes”
			在Eclipse的workspace下有个.metadata文件夹,Eclipse出现异常的log文件就在这个目录下. 最近出现了这样的错误: 查看日志文件发现: !ENTRY org.ecl ... 
- css设置网页文本选中样式
			网页的默认的文本选中颜色是蓝底白字(大多应该是吧),这个样子: 感觉并不是特别好看,可以通过CSS3的一个特性,一个CSS3的伪类选择器::selection来设置文本被选中时的状态,比如本博客的主题 ... 
- HBase参数配置及说明(转)
			版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp.dir 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默 ... 
- Android中Thread和Service的区别zz
			1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位.可以用 Thread 来执行一些异步的操作. 2). Service:Service 是android的一种机制,当 ... 
- hdu 2203:亲和串(水题,串的练习)
			亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ... 
- 免费电子书:C#代码整洁之道
			(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:<Clean Code(代码整洁之道)>是一本经典的著作,那么对于编写整洁 ... 
- Intellij Idea 使用
			一.使用前需要修改的配置: 1.当类实现Serializable接口时,自动生成 serialVersionUID 1)Setting->Inspections->java->Ser ... 
- ZLL主机接口的信息处理流程
			主机接口的信息处理流程 在我们翻译的文档中是用电脑端来模拟主机的,电脑代替网关发送主机接口命令的环节是在zll_controller.c中实现的,(在下载的文件中已经提供了其对应的可执行文件zllCm ... 
