hbase的安装和配置请看
http://hunray.iteye.com/admin/blogs/1774583
使用shell建表
create 'gpsinfo','gpsdata'
gpsinfo为表名
gpsdata为columnfamily
import java.io.IOException;
import java.util.Date;
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.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
public class HbaseSave {
public static void main(String[] args) throws Exception {
//建表 create 'gpsinfo','gpsdata'
Configuration HBASE_CONFIG = new Configuration();
HBASE_CONFIG.set("hbase.zookeeper.quorum", "192.168.3.206");
Configuration configuration = HBaseConfiguration.create(HBASE_CONFIG);
try {
HBaseAdmin admin =new HBaseAdmin(configuration);
if (admin.tableExists("gpsinfo")) {
System.out.println("表已经存在!");
HTable table = new HTable(configuration, "gpsinfo");
Put put = new Put(Bytes.toBytes("0800025364"+new Date().getTime()));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("unitid"),Bytes.toBytes("0800025364"));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("lon"),Bytes.toBytes(111.321f));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("lat"),Bytes.toBytes(23.4687f));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("direction"),Bytes.toBytes(180));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("speed"),Bytes.toBytes(62.2f));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("locationstatus"),Bytes.toBytes(1));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("vehiclestatus"),Bytes.toBytes("点火"));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("gpstime"),Bytes.toBytes(new Date().getTime()));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("referenceposition"),Bytes.toBytes("意隆路22号"));
put.add(Bytes.toBytes("gpsdata"),Bytes.toBytes("rawdata"),Bytes.toBytes("7b334673124545711133447852217d"));
table.put(put);
table.close();
}else{
System.out.println("表不存在");
}
configuration.clear();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在此过程中碰到的一些问题:
1. [root@localhost bin]# hadoop namenode -format
-bash: hadoop: command not found
将hadoop/bin路径加入PATH,需要重启机器
[root@localhost bin]# vi /etc/profile
export PATH=$JAVA_HOME/bin:$PATH:/root/Desktop/hadoop-1.1.1/bin
2. myeclipse连接报错:
警告: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
2013-1-22 10:22:36 org.apache.hadoop.hbase.util.RetryCounter sleepUntilNextRetry
确保hbase正常启动了
禁用IPV6,将/etc/hosts文件里面的::1 localhost那一行删掉重启
关闭防火墙
3. hadoop启动,namenode日志文件中
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /var/log/hadoop_data/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:303)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:411)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:379)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:277)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:529)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1403)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1412)
格式化namenode
$ hadoop namenode –format
4. 客户端连接hbase报错:
java.net.UnknownHostException: unknown host: xiekang-pc
在本地配置host
192.168.3.206 xiekang-pc
5. java.net.ConnectException: Connection refused: no further information
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60000
服务器上master地址和localhost/127.0.0.1:60000对不上。
查看http://192.168.3.206:60010/master-status的master地址。
分享到:
相关推荐
1. **引入依赖**: 标签中的"java habse"暗示我们需要Java的HBase客户端库。描述中提到的"所有jar"通常指的是这些库。在Java项目中,这些依赖可以通过Maven或Gradle等构建工具管理。例如,在Maven的`pom.xml`文件中,...
1. **HBase客户端API**:这是Java-HBase开发包的核心,提供了一组Java接口和类,用于连接到HBase集群,创建表,插入、查询和更新数据。例如,`HTableInterface` 和 `HBaseAdmin` 接口,以及 `Put`、`Get` 和 `Scan` ...
例如,可以设置用户角色和权限,控制不同用户对HBase资源的访问。同时,它可能会实时显示HBase集群的状态,包括节点健康状况、内存使用情况、表和Region分布等,帮助管理员及时发现并解决问题。 对于数据分析,该...
如果需要使用 Java 客户端访问 HBase,首先要确保本地 `hosts` 文件包含了服务器的 IP 和 hostname 映射。编写 Java 代码(如 `HbaseTest.java`),实现对 HBase 的操作,包括创建表、查询数据、删除数据等。测试时...
Java访问HBase所需的Jar包是实现Java应用程序与HBase交互的关键。HBase作为一个基于Hadoop文件系统的分布式列式存储数据库,其设计目标是处理大规模的数据并提供亚秒级的访问速度。为了在Java环境中顺利地操作HBase...
在Java中操作HBase,我们需要使用HBase的Java客户端API。首先,确保引入了所有必要的jar包,这些包通常包括hbase-client、hbase-common、hadoop-client等。这些依赖可以使用Maven或Gradle等构建工具管理,或者直接在...
你需要配置HBase的环境变量,并且需要编译Thrift2生成的HBase IDL文件,生成对应的Java客户端代码。 2. **建立连接**:使用`HBaseConfiguration.create()`创建一个配置对象,然后通过`ConnectionFactory.create...
HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用Java API来创建和删除HBase表,并针对不使用Maven的初学者提供必要的jar包...
Java连接HBase主要依赖于Apache HBase提供的Java客户端库,这个库包含了所有必要的类和接口,使得Java应用程序能够与HBase进行交互。HBase是一个分布式、版本化的NoSQL数据库,基于Google的Bigtable设计,运行在...
在Mapper和Reducer中,可以直接访问HBase的行键、列族和值。 最后,我们讨论**协处理器**。HBase的协处理器机制允许在RegionServer端执行自定义逻辑,从而提高数据处理效率和安全性。协处理器分为两种类型:`...
以下是一个Maven项目的示例,导入了HBase客户端库: ```xml <groupId>org.apache.hbase <artifactId>hbase-client <version>1.4.6 ``` 接下来,我们将在Java程序中创建一个配置对象,通过它连接到HBase。这...
3. **编写Java代码**:使用生成的Java客户端代码,创建HBase连接,实例化Thrift客户端,然后调用其提供的方法来访问HBase表。通常包括以下步骤: - 连接Thrift服务器:通过`TSocket`或`TFramedTransport`建立与...
HBase 客户端是指通过编程语言来访问和操作 HBase 数据库的客户端。常见的 HBase 客户端有 Java 客户端、Python 客户端等。 在 Java 中,可以使用 HBase 的 Java API 来访问和操作 HBase 数据库。例如,用户可以...
- **安全性**:封装可以添加权限控制,确保只有授权的代码才能访问HBase。 - **扩展性**:封装层可以实现缓存、批量操作等功能,提高性能。 - **模块化**:封装有助于解耦应用和底层存储,使得更换或升级存储系统...
在本文中,我们将深入探讨如何使用HBase的Java API进行数据的增加、修改和删除操作。HBase是一个基于Google Bigtable...在实际项目中,还可以考虑使用HBase的客户端库如HBaseAdmin和HTablePool,以简化管理和并发操作。
HBase的Java客户端API提供了一系列的类和接口,使得开发者能够方便地在Java程序中创建、读取、更新和删除(CRUD)HBase表的数据。这些主要组件包括: 1. **HBase连接器(Connection)**:是访问HBase集群的入口点,...
1. **HBase依赖**: 开发HBase应用程序时,首先需要在项目中引入HBase的客户端库。HBase 1.2.1的jar包通常包括`hbase-client.jar`,它包含了与HBase通信的所有必要API。 2. **Zookeeper**: HBase依赖Zookeeper进行...
1. **HBase客户端库**:这是与HBase交互的基础,包含了HBase的API,如`org.apache.hadoop.hbase.client.Connection`和`org.apache.hadoop.hbase.client.Table`等,用于创建连接、打开表、执行Get、Put、Scan等操作。...
首先,Java开发人员需要包含Hadoop的客户端库,这些库提供了访问Hadoop集群的接口。Hadoop的客户端jar包通常包含了HDFS(Hadoop Distributed File System)和MapReduce的相关API,允许你读写HDFS中的数据以及执行...
这个源代码包是针对Java开发者的宝贵资源,可以帮助他们深入理解HBase的内部工作原理,优化自己的应用,以及对HBase进行定制化开发。 HBase的核心概念包括: 1. 表(Table):HBase的数据存储在表中,每个表由行键...