HBase设计之HBase配置管理类接口设计(4)
来源:互联网 发布:在淘宝上买了二手钢琴 编辑:程序博客网 时间:2024/06/05 10:09
利用Eclipse进行HBase应用开发时,至少需要确定三个配置信息,如下表所示:
#hbase config#HMaster服务部署主机及端口号hbase.master=hdp-wuyong:60010#Zookeeper端口号hbase.zookeeper.property.clientPort=2181#Zookeeper服务部署主机信息hbase.zookeeper.quorum=hdp-songjiang,hdp-lujunyi,hdp-wuyong
我们将以上信息配置进hadoop.config.properties文件中,系统调用HBase接口方法之前,初始化加载此配置信息即可。
对HBase配置信息的管理,我们专门设计了一个工具类,叫做HBaseConfigUtil,主要功能包括初始化加载HBase配置信息、构建HBase Configuration实例、检查与HBase集群的通信以及关闭相关链接等。主要代码如下所示:
import java.io.File;import java.util.HashMap;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HConnectionManager;import com.hnepri.common.util.PropertiesUtil;/** * Description: HBase配置管理工具类<br> * Copyright: Copyright (c) 2015<br> * Company: 河南电力科学研究院智能电网所<br> * @author shangbingbing 2015-01-01编写 * @version 1.0 */public class HBaseConfigUtil { /** * 加载解析HBase自定义配置信息。<br> * 需在系统启动时调用此方法加载自定义配置信息,否则将采用默认配置或者无法连接HBase。 */ public static void loadHBaseConfigProperties() { HashMap<String,String> pps = PropertiesUtil.readProperties("hbase.config.properties"); HBaseConfigUtil.setHbaseConfigItemList(pps); } private static Configuration configuration = null; /** * hbase配置信息列表,其中key中存储参数名称,譬如master.hadoop;value中存储参数值,譬如master.hadoop:60010等 */ private static HashMap<String,String> hbaseConfigItemList = new HashMap<String,String>(); /** * 获取hbase配置信息列表 * @return */ public static HashMap<String, String> getHBaseConfigItemList() { return hbaseConfigItemList; } /** * 设置hbase配置信息列表 * @param hbaseConfigItemList */ public static void setHbaseConfigItemList(HashMap<String, String> hbaseConfigItemList) { HBaseConfigUtil.hbaseConfigItemList = hbaseConfigItemList; } /** * 添加hbase配置信息 * @param key * @param value */ public static void addHBaseConfigItem(String key,String value) { if(hbaseConfigItemList.containsKey(key)) { hbaseConfigItemList.remove(key); } hbaseConfigItemList.put(key, value); } /** * 删除hbase配置信息 * @param key */ public static void removeHBaseConfigItem(String key) { if(hbaseConfigItemList.containsKey(key)) { hbaseConfigItemList.remove(key); } } /** * 获取HBase Configuration对象 * @return */ public static Configuration getHBaseConfig() { if(configuration == null) { configuration = HBaseConfiguration.create(); try { //解决winutils.exe不存在的问题 File workaround = new File("."); System.getProperties().put("hadoop.home.dir", workaround.getAbsolutePath()); new File("./bin").mkdirs(); new File("./bin/winutils.exe").createNewFile();// conf.addResource("hbase-site.xml"); //初始化设置zookeeper相关配置信息 if(hbaseConfigItemList != null && hbaseConfigItemList.size() > 0) { for(String key : hbaseConfigItemList.keySet()) { String value = hbaseConfigItemList.get(key); configuration.set(key, value); } } } catch (Exception ex) { System.out.println(ex.toString()); } } return configuration; } /** * 刷新重置HBase配置对象 */ public static void initHBaseConfig() { configuration = null; } /** * 关闭所有连接 */ public static void closeAllConnections() { HConnectionManager.deleteAllConnections(); } /** * 关闭当前连接 */ public static void closeConnection() { HConnectionManager.deleteConnection(configuration); } /** * 检查客户端与HBase集群的通信状况。 * @return 返回true则表示正常,false表示异常。 */ public static boolean checkHBaseAvailable() { try { HBaseAdmin.checkHBaseAvailable(configuration); return true; } catch (Exception e) { return false; } }}
阅读全文
0 0
- HBase设计之HBase配置管理类接口设计(4)
- hbase设计
- Database之HBase表设计
- Hbase之表的设计
- HBase学习之五:HBase的RowKey设计原则
- HBase学习之六: hbase的预分区设计
- HBase学习之六: hbase的预分区设计
- HBase学习之HBase的RowKey设计原则
- HBase学习之五:HBase的RowKey设计原则
- HBase设计之RowKey行键设计规范(2)
- HBase设计之RowKey行键生成器工具(3)
- hbase快速入门之---表设计(使用建议)
- hbase的rowkey设计之字典顺序
- HBase之表的设计原则
- HBase性能调优之模式设计
- HBase总结(十八)Hbase rowkey设计一
- HBase总结(十八)Hbase rowkey设计一
- HBase总结(十八)Hbase rowkey设计一
- IOS命令行打包 问题整理(1)
- java.net.SocketException四大异常解决方案
- POJ
- BZOJ 3669: [Noi2014]魔法森林 动点spfa
- A
- HBase设计之HBase配置管理类接口设计(4)
- 树莓派新手上路
- JQ测验
- 使用ImageLoader从网上获取图片 及添加数据库,listview展示 Gson解析
- 使用windows远程桌面连接ubuntu
- C++写ATM机
- Truck History-(prime-算法)
- 安全工具介绍
- Spark Storage之MemoryStore