热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hbase与Maven工程的Spring配置笔记

1、HBase基本操作hbaseshell:连接到正在运行的HBase实例help:显示一些基本的使用信息以及命令示例。需要注意的是:表名,行,列都必须使用引号括起来crea

1、HBase基本操作

hbase shell:                                   连接到正在运行的HBase实例
help:                                          显示一些基本的使用信息以及命令示例。 需要注意的是: 表名, 行, 列都必须使用引号括起来
create 'test', 'cf':                           创建一个新表, 必须要指定表明和列族名
list 'test':                                   列出 test 表的信息
put 'test', 'row1', 'cf:a', 'value1'            往表中插入数据,
put 'test', 'row2', 'cf:b', 'value2'            我们插入了三行数据, 第一行的row key 是 row1, 列是 cf:a, 其值是 value1.HBase 中的列是由列族前缀, 冒号以及列名后缀组成
put 'test', 'row3', 'cf:c', 'value3'
scan 'test'                                     一次扫描 HBase 表中的所有数据
get 'test', 'row1'                              一次获取一行数据
disable 'test'                                  在某些情况下如果你想要删除表或是改变其设置, 需要先禁用表
enable 'test'                                   启用表
drop 'test'                                     删除表

quit:                                          退出HBase Shell, 但是 HBase 实例仍然在后台运行
stop-hbase.sh                                   bin/start-hbase.sh 脚本可以很方便的启动所有 HBase 守护进程, 同样的, bin/stop-hbase.sh 脚本可以很方便的停止所有 HBase 守护进程
jps                                             来确保 HMaster 和 HRegionServer 进程都已经关闭

2、示例工程配置

【pom.xml】

自己结合工程:

    UTF-8
    2.5.1
    2.4.0.RELEASE
    
  
    
      org.springframework.data
      spring-data-hadoop
      2.4.0.RELEASE
    
   
      org.apache.hbase
      hbase-client
      1.2.1
    

网上例子:

    
        UTF-8
        1.2.2
        2.4.0.RELEASE
    

    
        
            org.apache.hbase
            hbase-client
            ${hbase.version}
        

        
            org.springframework.data
            spring-data-hadoop
            ${spring-data-hadoop.version}
        
    

【Spring配置文件-直接指定】

  web.xml中到applicationContext.xml:

  
    contextConfigLocation
    classpath:applicationContext.xml
  
  创建一个 Spring 配置文件 spring-hbase.xml,在该文件中配置与 HBase 连接相关的信息。直接指定 HDFS 地址以及 ZooKeeper 的地址和端口号。

自己结合工程

  写到了applicationContext.xml中,不建立spring-hbase.xml:

xmlns:hdp="http://www.springframework.org/schema/hadoop"
xsi:schemaLocation中加:
http://www.springframework.org/schema/hadoop
http://www.springframework.org/schema/hadoop/spring-hadoop.xsd

	
	
	fs.default.name=hdfs://192.168.1.100:9001
	
	
	
	
		
	

网上例子:




    
    
        fs.defaultFS="hdfs://localhost:9000"
    

    
    

    
    

3、测试代码

自己结合工程-测试:

package com.whut.monitor.hbase.test;
import 略;

//@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(locatiOns= "classpath:applicationContext.xml")
public class HBaseTest {

    private static final String TABLE_NAME    = "test";
    private static final String ROW_KEY       = "row1";
    private static final String COLUMN_FAMILY = "cf";
    private static final String QUALIFIER     = "a";
    @Test
    public void test() {
        // 加载Spring配置文件
        ApplicationContext applicatiOnContext= new ClassPathXmlApplicationContext("applicationContext.xml");
        // 获取HbaseTemplate
        HbaseTemplate hbaseTemplate = (HbaseTemplate) applicationContext.getBean("hbaseTemplate");
        // 通过表名和rowKey获取最近一行数据
        String result = hbaseTemplate.get(TABLE_NAME, ROW_KEY, new RowMapper() {
            public String mapRow(Result result, int rowNum) throws Exception {
                return Bytes.toString(result.getValue(COLUMN_FAMILY.getBytes(), QUALIFIER.getBytes()));
            }
        });
        System.out.println(result); // 输出结果是:value1
    }

}

自己结合工程-IHBaseDao.java中写法:

package com.whut.monitor.dao;
public interface IHBaseDao {
	String find(String tableName, String key, final String family, final String qualifier);
}

HBaseDaoImpl.java:
package com.whut.monitor.dao.impl;
import 略;

@Component
public class HBaseDaoImpl implements IHBaseDao {
	@Resource(name="hbaseTemplate")
	private HbaseTemplate hbaseTemplate;

	@Override
	public String find(String tableName, String key, final String family, final String qualifier) {
		String result = hbaseTemplate.get(tableName, key, new RowMapper() {
			public String mapRow(Result result, int rowNum) throws Exception {
				return Bytes.toString(result.getValue(family.getBytes(), qualifier.getBytes()));
			}
		});
		return result;
	}
}
  添加数据:
	public Boolean execute(String tableName, final String key,final String family,final String qualifier,final String value) {    
        return hbaseTemplate.execute(tableName, new TableCallback() {  
            public Boolean doInTable(HTableInterface table) throws Throwable {  
                boolean flag = false;  
                try{  
                    byte[] rowkey = key.getBytes();  
                    Put put = new Put(rowkey);  
                    put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier), Bytes.toBytes(value));  
                    table.put(put);  
                 flag = true;  
                }catch(Exception e){  
                    e.printStackTrace();  
                }  
                return flag;  
            }  
        });
		System.out.println("test poi jfz sandeepin");;
		return true;
    }  
  可以测试了,以上是最简单的调通流程,真正使用得还好翻官方文档,不断深入!

推荐阅读
  • 本文整理了Java中org.apache.hadoop.hbase.client.Increment.getDurability()方法的一些代码示例,展示了 ... [详细]
  • importorg.apache.hadoop.hdfs.DistributedFileSystem;导入方法依赖的package包类privatevoidtestHSyncOpe ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文整理了Java中org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc.getTypeInfo()方法的一些代码示例,展 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
author-avatar
kcz1596369
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有