所需要的包有:
commons-codec-1.4.jar
commons-logging-1.1.1.jar
hadoop-0.20.2-core.jar
hbase-0.90.2.jar
log4j-1.2.16.jar
zookeeper-3.3.2.jar
背景:
假设有一个不知道是干什么表:)
表里需要存入人员和其相对应的部门信息
代码:
import java.util.ArrayList;
import java.util.List;
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.Delete;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
public class HbaseAddEdtDel {
public static Configuration configuration=null;
static {
configuration = HBaseConfiguration.create();
configuration.set("hbase.master", "192.168.0.201:60000");
configuration.set("hbase.zookeeper.quorum","192.168.0.201,192.168.0.202,192.168.0.203");
configuration.set("hbase.zookeeper.property.clientPort", "2181");
}
public static void main(String[] args) throws Exception {
HBaseAdmin admin = new HBaseAdmin(configuration);
if (admin.tableExists("riapguh")) {
System.out.println("删除 table");
admin.disableTable("riapguh");
admin.deleteTable("riapguh");
}
//创建riapguh表
System.out.println("创建 table");
HTableDescriptor tableDescripter = new HTableDescriptor("riapguh".getBytes());//创建表
tableDescripter.addFamily(new HColumnDescriptor("user"));//创建列簇user
tableDescripter.addFamily(new HColumnDescriptor("dpt"));//创建列簇dpt
admin.createTable(tableDescripter);
HTable table = new HTable(configuration, "riapguh");
//插入数据
System.out.println("add riapguh data");
List<Put> putuser = new ArrayList<Put>();
Put user1 = new Put(new String("用户A").getBytes());
//写入用户员信息
user1.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0001").getBytes());
user1.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户A").getBytes());
//写入部门信息
user1.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_001").getBytes());
user1.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门A").getBytes());
putuser.add(user1);
Put user2 = new Put(new String("用户B").getBytes());
//写入用户员信息
user2.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0002").getBytes());
user2.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户B").getBytes());
//写入部门信息
user2.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_002").getBytes());
user2.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门B").getBytes());
putuser.add(user2);
Put user3 = new Put(new String("用户C").getBytes());
//写入用户员信息
user3.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_0003").getBytes());
user3.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户C").getBytes());
//写入部门信息
user3.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_003").getBytes());
user3.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门C").getBytes());
putuser.add(user3);
table.put(putuser);
table.flushCommits();
//更新用户B
Put updateb = new Put(new String("用户B").getBytes());
//写入用户员信息
updateb.add(new String("user").getBytes(), new String("user_code").getBytes(), new String("u_000xsx").getBytes());
updateb.add(new String("user").getBytes(), new String("user_name").getBytes(), new String("u_用户xsx").getBytes());
//写入部门信息
updateb.add(new String("dpt").getBytes(), new String("dpt_code").getBytes(), new String("d_00xsx").getBytes());
updateb.add(new String("dpt").getBytes(), new String("dpt_name").getBytes(), new String("d_部门xsx").getBytes());
table.put(updateb);
table.flushCommits();
//HBaseBasic.selectByRowKey("riapguh");
System.out.println("-------------删除用户C---------------------");
//删除用户C
//able.delete(new Delete(new String("用户C").getBytes()));
List<Delete> deld = new ArrayList<Delete>();
deld.add(new Delete(new String("用户C").getBytes()));
table.delete(deld);
table.flushCommits();
//HBaseBasic.selectByRowKey("riapguh");
}
}
分享到:
相关推荐
假设有一个不知道是干什么表:) 表里需要存入人员和其相对应的部门信息 HBaseAdmin admin = new HBaseAdmin(configuration); List<Put> putuser = new ArrayList();
4. **测试**:创建表并插入数据,验证HBase是否正常工作。 对于Hadoop 0.20.2,这是一个较早的版本,其主要特性包括: 1. **MapReduce**:提供了大规模数据处理的计算框架,通过拆分任务到多台机器并行处理。 2. *...
2. 插入数据:通过`put '表名', '行键', '列族:列限定符', '值'`命令插入数据。 3. 查询数据:`get '表名', '行键'`获取整行数据,或`scan '表名'`进行全表扫描,可以指定过滤器等条件。 4. 删除数据:`delete '...
Phoenix支持创建表、索引,以及更新、删除和查询数据。其特有的物理计划和优化器能够根据查询条件选择最佳的执行路径,提升查询效率。 5. **性能优化** 在实际应用中,为了最大化利用Phoenix和HBase的性能,我们...
HBase 元数据修复工具包。 ①修改 jar 包中的application.properties,重点是 zookeeper.address、zookeeper.nodeParent、hdfs.root.dir配置项,hdfs 最好写 ip; ②将core-site.xml、hdfs-site.xml添加到BOOT-INF/...
并提供了以类SQL的方式来读写HBase表中的数据。对HBase的API做了一层抽象,统一了HBase1.x和HBase2.x的实现,并提供了读写HBase的ORM的支持,同时,sdk还对HBase thrift 的客户端API进行了池化封装,(类似JedisPool...
Phoenix提供了丰富的SQL功能,包括创建表、插入数据、更新、删除、联接、子查询、聚合函数等。这些特性使得Phoenix在处理大数据时具有很高的灵活性和便利性。例如,用户可以通过CREATE TABLE语句定义HBase表的Schema...
2. **插入数据**:使用`put`命令将数据写入表的特定行和列。 3. **查询数据**:使用`get`命令获取数据,可以指定行键和列限定符。 4. **扫描操作**:使用`scan`命令可以获取表中的一系列行,支持过滤器进行条件筛选...
一旦设置完成,你就可以在Squirrel SQL Client中创建新的数据库连接,选择刚才创建的Phoenix驱动,然后输入HBase集群的相关连接信息,如Zookeeper的主机名和端口。这样,你就能够通过SQL语句直接查询和操作HBase中的...
全称为Hadoop Distributed File System上的基础结构(HBase on Hadoop Distributed File System),是一种分布式的、面向列的开源数据库,它构建在Apache Hadoop文件系统(HDFS)之上,提供高可靠性、高性能、可伸缩...
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
通过深入学习和研究`hbase-2.4.11`的源码,开发者不仅可以理解HBase的基本原理,还能掌握如何优化性能,解决实际应用中的问题,为大数据处理提供更强大的支持。无论是对HBase的开发、运维还是调优,这份源码都是宝贵...
同时,复杂的SQL查询可能会导致大量的HBase扫描,需要合理设计表结构和索引来避免性能瓶颈。 总的来说,"phoenix-hbase-1.4-4.16.1-bin"为HBase引入了SQL的便利性,使得大数据分析更为高效。但使用时也需注意其与...
在HBase中,数据存储在表中,每个表由行键(Row Key)、列族(Column Family)、列限定符(Column Qualifier)和时间戳(Timestamp)四部分组成。这种结构使得HBase非常适合处理大规模稀疏数据集。 HBase的2.4.11...
在shell中,可以尝试创建表、插入数据并查询,以确认HBase与Hadoop的集成正常。 在生产环境中,可能还需要考虑HBase的高可用性、安全性以及性能调优等复杂问题。例如,配置多个HMaster和RegionServer以实现故障转移...
- 插入数据:通过`put`命令向表中插入数据,指定行键和列族:列:版本的数据。 - 查询数据:使用`get`命令按行键获取数据,或者使用`scan`进行扫描查询。 - 更新数据:更新数据相当于插入新版本,HBase会保留旧版本...
phoenix-client-hbase-2.2-5.1.2.jar
一旦运行起来,你可以通过HBase shell或编程接口进行数据操作,创建表、插入数据、执行查询等。 总的来说,HBase 2.0.2是一个强大且灵活的大数据存储解决方案,尤其适用于需要实时访问海量结构化数据的场景。通过...
hbase-client-2.1.0-cdh6.3.0.jar
hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz,hbase-1.2.6.1-bin.tar.gz