ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.25MB ,
资源ID:2131172      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2131172.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(非关系型大数据库大作业.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

非关系型大数据库大作业.docx

1、非关系型大数据库大作业实验三HBase环境搭建、sehll操作及Java API编程实验步骤:1.搭建Zookeeper和HBase1.ntp时间同步服务器搭建与使用安装ntp服务端(master)# apt-get install ntp启动ntp服务# /etc/init.d/ntp start修改配置文件# vim /etc/ntp.conf修改容如下:重启ntp服务# /etc/init.d/ntp restart1.2安装ntp客户端(slaver1、slaver2)使用ntpdate命令,如果不存在这个命令,则先安装apt-get install ntp同步服务器时间# /usr/

2、sbin/ntpdate 10.49.85.172设置定时同步# vim /etc/crontab1.3 ulimit 和 nproc设置(集群均配置)HBase是数据库,会在同一时间使用很多的文件句柄。大多数Ubuntu系统使用的默认值1024是不能满足的,所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成 OutOfMemoryError异常。需要澄清的,这两个设置是针对操作系统的,不是Hbase本身的。有一个常见的错误是Hbase运行的用户,和设置最大值的用户不是一个用户。在Hbase启动的时候,第一行日志会现在ulimi

3、t信息,所以你最好检查一下。1)修改limits.conf文件# vim /etc/security/limits.conf 添加如下容:2)修改common-session文件# vim /etc/pam.d/common-session添加如下容:重启系统1.4 Zookeeper集群环境安装过程详解1)解压zookeepertar zxvf zookeeper-3.4.5.tar.gz2)修改zoo.cfg配置文件进入到zookeeper的conf目录下将zoo_sample.cfg文件拷贝一份,命名为为zoo.cfgvim zoo.cfg修改容如下:配置文件中server.id=hos

4、t:port:port中的第一个port是从机器(follower)连接到主机器(leader)的端口号,第二个port是进行leadership选举的端口号。接下来在dataDir所指定的目录下创建一个文件名为myid的文件,文件中的容只有一行,为本主机对应的id值,也就是上图中server.id中的id。例如:在服务器1中的myid的容应该写入1,在服务器2中的myid的容应该写入2,在服务器3中的myid的容应该写入3。3)同时创建log目录# mkdir log4)修改环境变量# vim /etc/profile# source /etc/profile# scp -r /root/z

5、ookeeper-3.4.5/ cc-slaver1:/root/# scp -r /root/zookeeper-3.4.5/ cc-slaver2:/root/在对应slaver节点同时修改profile文件,添加export ZOOKEEPER_HOME=/root/zookeeper-3.4.5export CLASSPATH=.:$ZOOKEEPER_HOME/lib:$CLASSPATHexport PATH=$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$PATH同时:在slaver1节点中# pwd/soft/zookeeper# mkdir

6、 data# echo 2 myid在slaver2节点中# pwd/soft/zookeeper# mkdir data# echo 3 myid1.5 启动zookeeper集群在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本:# zkServer.sh start如下图所示:其中,QuorumPeerMain是zookeeper进程,启动正常。出现错误可以通过# tail -f /soft/zookeeper/zookeeper.out如上依次启动了所有机器上的Zookeeper之后可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是L

7、eader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果:通过上面状态查询结果可见,cc-slaver1是集群的Leader,其余的两个结点是Follower。另外,可以通过客户端脚本,连接到ZooKeeper集群上。对于客户端来说,ZooKeeper是一个整体(ensemble),连接到ZooKeeper集群实际上感觉在独享整个集群的服务,所以,你可以在任何一个结点上建立到服务集群的连接,例如:# zkCli.sh -server cc-slaver2:21811.6 停止zookeeper进程在ZooKeeper集群的每个结点上,执行停止ZooKee

8、per服务的脚本:# zkServer.sh stop至此,Zookeeper集群安装完成。1.7HBase的安装和配置# tar -zxvf hbase-1.2.4.tar.gz1)配置conf/hbase-env.sh修改容如下:一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群,即Hbase默认自带一个zookeep集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目常自己管理一个zookeeper集群更便于优化配置提高集群工作效率,但需要配置Hbase。需要修改con

9、f/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.在本实验中,我们采用独立运行zookeeper集群的方式,故将其属性值改为false。2)配置conf/hbase-site.xml配置如下:hbase.rootdirhdfs:/10.49.85.172:9000/hbasehbase.masterhdfs:/10.49.85.172:60000hbase.master.info.port60010hbase.regionserver.info.port60030hbase.zookee

10、per.property.dataDirfile:/root/zookeeper-3.4.5/datahbase.cluster.distributedtruehbase.zookeeper.quorumcc-master,cc-slaver1,cc-slaver23)配置conf/regionservers写入:cc-slaver1、cc-slaver2在这里列出了你希望运行的全部 HRegionServer,一行写一个host (就像Hadoop里面的 slaver 一样). 列在这里的server会随着集群的启动而启动,集群的停止而停止。4)hadoop配置文件拷入# cp /hadoo

11、p-2.6.5/etc/hadoop/hdfs-site.xml /hbase-1.2.4/conf# cp /hadoop-2.6.5/etc/hadoop/core-site.xml /hbase-1.2.4/conf5)分发hbase# scp -r /root/hbase-1.2.4 cc-slaver1:/root# scp -r /root/hbase-1.2.4 cc-slaver2:/root配置环境变量# vim /etc/profile在末尾添加如下容6)运行和测试在master上执行:(1)# start-all.sh (2)# zkServer.sh start(各个节

12、点均执行)(3)# start-hbase.sh (涵盖web管理界面的启动)使用jps查看进程通过浏览器查看60010,60030端口查看10.49.85.172:60010/浏览器主节点信息7)多节点启动HMaster# hbase-daemon.sh start master在其他子节点同时启动HMaster可以做等待备份作用;2.使用HBase shell命令进行表的创建,增加删除修改操作。Hbase脚本启动:hbaseshell创建表在member表中添加几条数据修改表数据删除数据3使用Java API进行表的创建,增加删除修改操作。向表中添加数据:更新表updateTable:删除

13、所有列deleteAllColumn:删除列deleteColumn:删除表deleteTable:删除所有表getAllTables:获取结果getResult:获取某一列的值getResultByColumn:查询某列的多版本getResultByVersion:遍历查询getResultByScann:具体代码如下:import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.

14、hadoop.hbase.Cell;import org.apache.hadoop.hbase.CellUtil;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.KeyValue;import org.apache.hadoop.hbase.MasterNotRunningExceptio

15、n;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.ZooKeeperConnectionException;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HTable;import org.apach

16、e.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 Hbase / 声明静态配置 static Configuration conf = null; static conf = HBaseConfigurati

17、on.create(); conf.set(hadoop.home.dir,hdfs:/10.49.85.172:9000/hbase); /conf.set(hadoop.home.dir, hdfs:/ns/hbas); conf.set(hbase.zookeeper.property.clientPort, 2181); /hbase.zookeeper.quorum值不能采用IP方式,必须 使用名称 conf.set(hbase.zookeeper.quorum, cc-master,cc-slaver1,cc-slaver2); /conf.set(hbase.master, 60

18、000); / System.setProperty(hadoop.home.dir, hdfs:/ns/hbase); / Hbase获取所有的表信息 public static List getAllTables() throws MasterNotRunningException, ZooKeeperConnectionException, IOException HBaseAdmin admin = new HBaseAdmin(conf); List tables = null; if (admin != null) try HTableDescriptor allTable = a

19、dmin.listTables(); if (allTable.length 0) tables = new ArrayList(); for (HTableDescriptor hTableDescriptor : allTable) tables.add(hTableDescriptor.getNameAsString(); System.out.println(hTableDescriptor.getNameAsString(); catch (IOException e) e.printStackTrace(); return tables; /* * 创建表 * * tableNam

20、e 表名 * * family 列族列表 */ public static void creatTable(String tableName, String family) throws Exception HBaseAdmin admin = new HBaseAdmin(conf);/ HTableDescriptor desc = new HTableDescriptor(tableName); HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName); / System.out.println(=

21、); for (int i = 0; i family.length; i+) desc.addFamily(new HColumnDescriptor(familyi); if (admin.tableExists(tableName) System.out.println(table Exists!); System.exit(0); else System.out.println(=); admin.createTable(desc); System.out.println(create table Success!); /* * 为表添加数据(适合知道有多少列族的固定表) * * ro

22、wKey rowKey * * tableName 表名 * * column1 第一个列族列表 * * value1 第一个列的值的列表 * * column2 第二个列族列表 * * value2 第二个列的值的列表 */ public static void addData(String rowKey, String tableName, String column1, String value1, String column2, String value2) throws IOException Put put = new Put(Bytes.toBytes(rowKey);/ 设置r

23、owkey HTable table = new HTable(conf, Bytes.toBytes(tableName); / HTabel负责跟记录相关的操作如增删改查等 / 获取所有的列族 HColumnDescriptor columnFamilies = table.getTableDescriptor() .getColumnFamilies(); for (int i = 0; i columnFamilies.length; i+) String familyName = columnFamiliesi.getNameAsString(); / 获取列族名 if (famil

24、yName.equals(article) / article列族put数据 for (int j = 0; j column1.length; j+) put.add(Bytes.toBytes(familyName), Bytes.toBytes(column1j), Bytes.toBytes(value1j); if (familyName.equals(author) / author列族put数据 for (int j = 0; j column2.length; j+) put.add(Bytes.toBytes(familyName), Bytes.toBytes(column

25、2j), Bytes.toBytes(value2j); table.put(put); System.out.println(add data Success!); /* * 根据rwokey查询 * * rowKey rowKey * * tableName 表名 */ public static Result getResult(String tableName, String rowKey) throws IOException Get get = new Get(Bytes.toBytes(rowKey); HTable table = new HTable(conf, Bytes.

26、toBytes(tableName);/ 获取表/ Result result = table.get(get);/ for (KeyValue kv : result.list() / System.out.println(family: + Bytes.toString(kv.getFamily();/ System.out/ .println(qualifier: + Bytes.toString(kv.getQualifier();/ System.out.println(value: + Bytes.toString(kv.getValue();/ System.out.printl

27、n(Timestamp: + kv.getTimestamp();/ System.out.println(-);/ Result result = table.get(get); for (Cell cell : result.rawCells() System. out .println( Rowkey : +Bytes. toString (result.getRow()+ Familiy:Quilifier : +Bytes.toString (CellUtil.cloneQualifier (cell)+ Value : +Bytes.toString (CellUtil.clone

28、Value (cell) + Timestamp: + cell.getTimestamp() ); return result; /* * 遍历查询hbase表 * * tableName 表名 */ public static void getResultScann(String tableName) throws IOException Scan scan = new Scan(); ResultScanner rs = null; HTable table = new HTable(conf, Bytes.toBytes(tableName); try rs = table.getScanner(scan); for (Result r : rs) for (KeyValue kv : r.list() System.out.println(row: + Byte

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2