光速网络网站,代卖货平台,路由器端口转发做网站访问量,宁波男科医院目录
1 实验名称
2 实验目的
3 实验内容
4 实验原理
5 实验过程或源代码
5.1 Hbase数据库的安装
5.2 创建表
5.3 添加数据、删除数据、删除表
5.4 使用Java操作HBase
6 实验结果
6.1 Hbase数据库的安装
6.2 创建表
6.3 添加数据、删除数据、删除表
6.4 使用Java操…目录
1 实验名称
2 实验目的
3 实验内容
4 实验原理
5 实验过程或源代码
5.1 Hbase数据库的安装
5.2 创建表
5.3 添加数据、删除数据、删除表
5.4 使用Java操作HBase
6 实验结果
6.1 Hbase数据库的安装
6.2 创建表
6.3 添加数据、删除数据、删除表
6.4 使用Java操作Hbase 1 实验名称 HBase的安装与基本操作
2 实验目的 1. 了解HBase 的概述及历史理解HBase 的数据模型理解HBase 的系统架构学会HBase 的环境部署 2、了解HBase 的数据模型和基本操作。
3 实验内容 1Hbase数据库的安装 2创建表 3添加数据、删除数据、删除表 4使用Java操作HBase
4 实验原理 Hbase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统利用Hbase技术可在廉价的PC Server上搭建大规模结构化存储集群。HBase以表的形式存储数据数据模型如下图HBase数据模型所示。表中的数据划分为多个Region并由Master分配给对应的RegionServer进行管理。 Hbase是一个分布式的、面向列的开源数据库它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是Hbase基于列的而不是基于行的模式。Hbase使用和 BigTable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列一个或多个列组成一个ColumnFamily一个Fmaily下的列位于一个HFile中易于缓存数据。表是疏松的存储的因此用户可以给行定义各种不同的列。在Hbase中数据按主键排序同时表按主键划分为多个Region。每个Region包含了表中一段RowKey区间范围内的数据HBase的一张数据表开始只包含一个Region随着表中数据的增多当一个Region的大小达到容量上限后会分裂成两个Region。您可以在创建表时定义Region的RowKey区间或者在配置文件中定义Region的大小。
5 实验过程或源代码
5.1 Hbase数据库的安装 1.将HBase解压到/app目录下
mkdir /app
cd /opt
tar -zxvf hbase-2.1.1-bin.tar.gz -C /app 2.配置JDK的路径将JDK的路径配置到conf/下的hbase-env.sh中。输入echo $JAVA_HOME来复制JAVA_HOME的路径编辑HBaseconf目录下的hbase-env.sh文件将其中的JAVA_HOME指向到Java的安装目录最后保存设置。 3. 编辑hbase-site.xml文件在configuration标签中添加如下内容 configurationpropertynamehbase.rootdir/namevaluefile:///root/data/hbase/data/value/propertypropertynamehbase.zookeeper.property.dataDir/namevalue/root/data/hbase/zookeeper/value/propertyproperty namehbase.unsafe.stream.capability.enforce/namevaluefalse/value/property
/configuration 4.将Hbase的bin目录配置到/etc/profile中vim /etc/profile在etc/profile的文件末尾添加如下内容
# SET HBASE_enviroment
HBASE_HOME/app/hbase-2.1.1
export PATH$PATH:$HBASE_HOME/bin 5.使刚刚的配置生效source /etc/profile输入命令start-dfs.sh来启动Hadoop输入jps查看是否启动成功接着我们输入start-hbase.sh来启动HBase同样输入jps查看是否启动成功。
5.2 创建表 1.启动HBase输入hbase shell进入到Hbase shell命令行窗口新建一个名为test的表create test,data继续在HBase中创建两张表表名分别为dept,emp列都为data命令行create dept,data create emp,data。 2.创建完毕保存评测。
5.3 添加数据、删除数据、删除表 1.启动HBase输入hbase shell进入到Hbase shell命令行窗口。 2.在HBase中创建表mytable列为data并在列族data中添加三行数据
行号分别为row1row2row3
列名分别为data:1data:2data:3
值分别为zhangsanzhangsanfengzhangwuji。
5.4 使用Java操作HBase 1.使用Java代码在HBase中创建表。命令行start-dfs.sh start-hbase.sh。代码实现如下
Configuration config HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
Connection connection ConnectionFactory.createConnection(config); //config为前文的配置对象
Admin admin connection.getAdmin(); //使用连接对象获取Admin对象
TableName tableName TableName.valueOf(dept);//定义表名
//TableDescriptor对象通过TableDescriptorBuilder构建
TableDescriptorBuilder tableDescriptor TableDescriptorBuilder.newBuilder(tableName);
ColumnFamilyDescriptor family ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes (data)).build();//构建列族对象
tableDescriptor.setColumnFamily(family);//设置列族
admin.createTable(tableDescriptor.build());//创建表
tableName TableName.valueOf(emp);//定义表名
//TableDescriptor对象通过TableDescriptorBuilder构建
tableDescriptor TableDescriptorBuilder.newBuilder(tableName);
family ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(data)).build();//构建列族对象
tableDescriptor.setColumnFamily(family);//设置列族
admin.createTable(tableDescriptor.build());//创建表 2.使用Java代码向HBase集群中创建表并添加数据。代码实现如下
Configuration config HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection connection ConnectionFactory.createConnection(config); //config为前文的配置对象Admin admin connection.getAdmin(); //使用连接对象获取Admin对象TableName tableName TableName.valueOf(tb_step2);//定义表名
//TableDescriptor对象通过TableDescriptorBuilder构建TableDescriptorBuilder tableDescriptor TableDescriptorBuilder.newBuilder(tableName);ColumnFamilyDescriptor family ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(data)).build();//构建列族对象tableDescriptor.setColumnFamily(family);//设置列族admin.createTable(tableDescriptor.build());//创建表Table table connection.getTable(tableName);//获取Table对象try {byte[] row Bytes.toBytes(row1); //定义行Put put new Put(row); //创建Put对象byte[] columnFamily Bytes.toBytes(data); //列簇byte[] qualifier Bytes.toBytes(String.valueOf(1)); //列byte[] value Bytes.toBytes(张三丰); //值put.addColumn(columnFamily, qualifier, value);table.put(put); //向表中添加数据row Bytes.toBytes(row2); //定义行put new Put(row); //创建Put对象columnFamily Bytes.toBytes(data); //列簇qualifier Bytes.toBytes(String.valueOf(2)); //列value Bytes.toBytes(张无忌); //值put.addColumn(columnFamily, qualifier, value);table.put(put); //向表中添加数据} finally {//使用完了要释放资源table.close();} 3.获取HBase中已存在表的数据并输出。代码实现如下
Configuration config HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection connection ConnectionFactory.createConnection(config); //config为前文的配置对象Admin admin connection.getAdmin(); //使用连接对象获取Admin对象TableName tableName TableName.valueOf(t_step3);//定义表名Table table connection.getTable(tableName);//获取Table对象//获取数据Get get new Get(Bytes.toBytes(row1)); //定义get对象Result result table.get(get); //通过table对象获取数据// System.out.println(Result: result);//很多时候我们只需要获取“值” 这里表示获取 data:1 列族的值byte[] valueBytes result.getValue(Bytes.toBytes(data), Bytes.toBytes(1)); //获取到的是字节数组//将字节转成字符串String valueStr new String(valueBytes,utf-8);System.out.println(value: valueStr);tableName TableName.valueOf(table_step3);//定义表名table connection.getTable(tableName);//获取Table对象Scan scan new Scan();ResultScanner scanner table.getScanner(scan);try {for (Result scannerResult: scanner) {// System.out.println(Scan: scannerResult);byte[] row scannerResult.getRow();System.out.println(rowName: new String(row,utf-8));}} finally {scanner.close();} 4.删除表。代码实现如下
Configuration config HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection connection ConnectionFactory.createConnection(config); //config为前文的配置对象Admin admin connection.getAdmin(); //使用连接对象获取Admin对象 TableName tableName TableName.valueOf(t_step4);admin.disableTable(tableName); //禁用表admin.deleteTable(tableName); //删除表
6 实验结果
6.1 Hbase数据库的安装 1.复制JAVA_HOME的路径 2.编辑HBaseconf目录下的hbase-env.sh文件 3.etc/profile的文件末尾添加内容 4.启动成功 6.2 创建表 1.Hbase shell命令行窗口 2.成功新建一个名为test的表 3.余下两张表创建成功 6.3 添加数据、删除数据、删除表 1.创建表mytable 6.4 使用Java操作Hbase 1.使用Java代码在HBase中创建表。 2.使用Java代码向HBase集群中创建表并添加数据。 3.获取HBase中已存在表的数据 4.删除表。