Hadoop学习笔记—15.HBase框架学习(基础实践篇)
2015-04-09 22:41
666 查看
一、HBase的安装配置
1.1 伪分布模式安装
伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster、HRegionServer以及ZooKeeper都在一台计算机上来模拟。首先,准备好HBase的安装包,我这里使用的是HBase-0.94.7的版本,已经上传至百度网盘之中(URL:http://pan.baidu.com/s/1pJ3HTY7)
(1)通过FTP将hbase的安装包拷贝到虚拟机hadoop-master中,并执行一系列操作:解压缩、重命名、设置环境变量
①解压缩:tar -zvxf hbase-0.94.7-security.tar.gz
②重命名:mv hbase-94.7-security hbase
③设置环境变量:vim /etc/profile,增加内容如下,修改后重新生效:source /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=.:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
(2)进入hbase/conf目录下,修改hbase-env.sh文件:
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=true #告诉HBase使用它自己的zookeeper实例,分布式模式下需要设置为false
(3)在hbase/conf目录下,继续修改hbase-site.xml文件:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
(4)【可选步凑】修改regionservers文件,将localhost改为主机名:hadoop-master
(5)启动HBase:start-hbase.sh
PS:由上一篇可知,HBase是建立在Hadoop HDFS之上的,因此在启动HBase之前要确保已经启动了Hadoop,启动Hadoop的命令是:start-all.sh
(6)验证是否启动HBase:jps
package hbase; import java.io.IOException; 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.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.util.Bytes; public class MobileLogQueryApp { private static final String TABLE_NAME = "wlan_log"; private static final String FAMILY_NAME = "cf"; /** * HBase Java API基本使用示例 * * @throws Exception */ public static void main(String[] args) throws Exception { scan(TABLE_NAME,"13600217502"); System.out.println(); scanPeriod(TABLE_NAME, "136"); } /* * 查询手机13600217502的所有上网记录 */ public static void scan(String tableName, String mobileNum) throws IOException { HTable table = new HTable(getConfiguration(), tableName); Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes(mobileNum + ":/")); scan.setStopRow(Bytes.toBytes(mobileNum + "::")); ResultScanner scanner = table.getScanner(scan); int i = 0; for (Result result : scanner) { System.out.println("Scan: " + i + " " + result); i++; } } /* * 查询134号段的所有上网记录 */ public static void scanPeriod(String tableName, String period) throws IOException { HTable table = new HTable(getConfiguration(), tableName); Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes(period + "/")); scan.setStopRow(Bytes.toBytes(period + ":")); scan.setMaxVersions(1); ResultScanner scanner = table.getScanner(scan); int i = 0; for (Result result : scanner) { System.out.println("Scan: " + i + " " + result); i++; } } /* * 获取HBase配置 */ private static Configuration getConfiguration() { Configuration conf = HBaseConfiguration.create(); conf.set("hbase.rootdir", "hdfs://hadoop-master:9000/hbase"); // 使用eclipse时必须添加这个,否则无法定位 conf.set("hbase.zookeeper.quorum", "hadoop-master"); return conf; } }
View Code
这里主要进行了两个查询操作:按指定手机号码查询 和 按指定手机号码网段区间查询,执行结果如下所示:
参考资料
(1)吴超,《Hadoop深入浅出》:http://www.superwu.cn(2)新城主力唱好,《HBase Java API》:http://www.cnblogs.com/NicholasLee/archive/2012/09/13/2683432.html
作者:周旭龙
出处:http://www.cnblogs.com/edisonchou/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
相关文章推荐
- Hadoop学习笔记—15.HBase框架学习(基础实践篇)
- Hadoop学习笔记—15.HBase框架学习(基础实践篇)
- Hadoop之HBase框架学习基础实践篇(笔记16)
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
- 大数据技术学习笔记之Hadoop框架基础4-MapReduceshuffer过程详解及zookeeper框架学习
- hadoop基础学习-环境及实践(一)
- C# Hadoop学习笔记(七)—C#的云计算框架借鉴(下)
- Hadoop 学习笔记——mapreduce框架详解
- hadoop 学习笔记:mapreduce框架详解
- hadoop学习笔记——基础知识及安装
- hadoop 学习笔记:mapreduce框架详解
- hadoop学习笔记1:零IT基础的准备
- 《深入理解Android:Telephon原理剖析与最佳实践》学习笔记(系统框架)
- pyqt 学习基础 实践2 基于oschina笔记软件的初步界面
- hadoop 学习笔记:mapreduce框架详解
- C# Hadoop学习笔记(五)—设计粗浅的C#的云计算框架
- Hadoop基础入门学习笔记(基本概念)
- C# Hadoop学习笔记(四)—设计自己的云计算框架