推荐设备MORE

网站建设平台—深圳石岩微信

网站建设平台—深圳石岩微信

行业知识

追忆HBaes布署与java顾客端浏览,追忆hbaes布署ja

日期:2021-02-18
我要分享

追忆HBaes布署与java顾客端浏览,追忆hbaes布署java

好长时间没搭起來测测了,今日随手搭起來用用。結果碰到了许多难题,下边逐一表明

一、布署

简易考虑,我应用了stand-alone方式。立即免费下载缓解压力就可以,留意的是必须修改hbase-site.xml:

 configuration 
 property 
 name hbase.rootdir /name 
 value file:///root/zhangtieying/hbase /value 
 /property 
 property 
 name hbase.zookeeper.property.dataDir /name 
 value /root/zhangtieying/zookeeper /value 
 /property 
 /configuration 

此外,留意改动/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
10.1.f04
10.20.14.16 dt16
10.20.14.17 dt17
10.20.14.18 dt18
10.20.14.19 dt19
10.20.14.20 dt20
10.20.14.21 dt21
10.20.14.22 dt22
10.20.14.23 dt23
10.20.14.24 dt24
10.20.14.25 dt25

f04主导机名,要和具体ip10.1.102.104相匹配上

ccf04加上主导机名的方式:vim /work:

NETWORKING=yes
f04

二、java顾客端联接

这儿得出我的检测编码(一部分编码是copy的)

/**
 * Created by Michael on 2015/6/20.
import java.util.ArrayList;
import java.util.List;
.apache.hadoop.conf.Configuration;
.apache.hadoop.hbase.HBaseConfiguration;
.apache.hadoop.hbase.HColumnDescriptor;
.apache.hadoop.hbase.HTableDescriptor;
.apache.hadoop.hbase.KeyValue;
.apache.hadoop.hbase.client.Delete;
.apache.hadoop.hbase.client.Get;
.apache.hadoop.hbase.client.HBaseAdmin;
.apache.hadoop.hbase.client.HTable;
.apache.hadoop.hbase.client.Put;
.apache.hadoop.hbase.client.Result;
.apache.hadoop.hbase.client.ResultScanner;
.apache.hadoop.hbase.client.Scan;
.apache.hadoop.hbase.util.Bytes;
public class TestHbase {
 static Configuration conf=null;
 static{
 conf=HBaseConfiguration.create();//hbase的配备信息内容
 conf.set( hbase.zookeeper.quorum , 10.1.102.104:2181 //zookeeper的详细地址
 public static void main(String[] args)throws Exception {
 TestHbase t=new TestHbase();
 t.createTable( test-zty , new String[]{ name , age });
 //t.insertRow( test-zty , 2 , age , myage , 100 
 // t.getOneDataByRowKey( test-zty , 2 
 //t.showAll( test 
 /***
 * 建立一张表
 * 并特定列簇
 * */
 public void createTable(String tableName,String cols[])throws Exception{
 HBaseAdmin admin=new HBaseAdmin(conf);//顾客端管理方法专用工具类
 if(admin.tableExists(tableName)){
 System.out.println( 此表早已存有....... 
 }else{
 HTableDescriptor table=new HTableDescriptor(tableName);
 for(String c:cols){
 HColumnDescriptor col=new HColumnDescriptor(c);//列簇名
 table.addFamily(col);//加上到此表格中
 admin.createTable(table);//建立一个表
 admin.close();
 System.out.println( 建立表取得成功! 
 * 加上数据信息,
 * 提议应用大批量加上
 * @param tableName 表名
 * @param row 行号
 * @param columnFamily 列簇
 * @param column 列
 * @param value 实际的值
 * **/
 public void insertRow(String tableName, String row,
 String columnFamily, String column, String value) throws Exception {
 HTable table = new HTable(conf, tableName);
 Put put = new Put(Bytes.toBytes(row));
 // 主要参数出各自:列族、列、值
 put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),
 Bytes.toBytes(value));
 table.put(put);
 table.close();//关掉
 System.out.println( 插进一总数据取得成功! 
 * 删掉一总数据
 * @param tableName 表名
 * @param row rowkey
 * **/
 public void deleteByRow(String tableName,String rowkey)throws Exception{
 HTable h=new HTable(conf, tableName);
 Delete d=new Delete(Bytes.toBytes(rowkey));
 h.delete(d);//删掉一总数据
 h.close();
 * 删掉好几条数据信息
 * @param tableName 表名
 * @param row rowkey
 * **/
 public void deleteByRow(String tableName,String rowkey[])throws Exception{
 HTable h=new HTable(conf, tableName);
 List Delete list=new ArrayList Delete 
 for(String k:rowkey){
 Delete d=new Delete(Bytes.toBytes(k));
 list.add(d);
 h.delete(list);//删掉
 h.close();//释放出来資源
 * 获得一总数据
 * @param tableName 表名
 * @param rowkey 行号
 * ***/
 public void getOneDataByRowKey(String tableName,String rowkey)throws Exception{
 HTable h=new HTable(conf, tableName);
 Get g=new Get(Bytes.toBytes(rowkey));
 Result r=h.get(g);
 for(KeyValue k:r.raw()){
 System.out.println( 行号: +Bytes.toStringBinary(k.getRow()));
 System.out.println( 時间戳: +k.getTimestamp());
 System.out.println( 列簇: +Bytes.toStringBinary(k.getFamily()));
 System.out.println( 列: +Bytes.toStringBinary(k.getQualifier()));
 //if(Bytes.toStringBinary(k.getQualifier()).equals( myage )){
 // System.out.println( 值: +Bytes.toInt(k.getValue()));
 //}else{
 String ss= Bytes.toString(k.getValue());
 System.out.println( 值: +ss);

//扫描仪特殊区段 //Scan scan=new Scan(Bytes.toBytes( 刚开始行号 ),Bytes.toBytes( 完毕行号 )); ResultScanner scanner=h.getScanner(scan); for(Result r:scanner){ System.out.println( ================================== for(KeyValue k:r.raw()){ System.out.println( 行号: +Bytes.toStringBinary(k.getRow())); System.out.println( 時间戳: +k.getTimestamp()); System.out.println( 列簇: +Bytes.toStringBinary(k.getFamily())); System.out.println( 列: +Bytes.toStringBinary(k.getQualifier())); //if(Bytes.toStringBinary(k.getQualifier()).equals( myage )){ // System.out.println( 值: +Bytes.toInt(k.getValue())); //}else{ String ss= Bytes.toString(k.getValue()); System.out.println( 值: +ss); h.close();

工程项目应用maven,其pom.xml以下:

 ?xml version= 1.0 encoding= UTF-8 ? 
 project xmlns= POM/4.0.0 
 xmlns:xsi= 2001/XMLSchema-instance 
 xsi:schemaLocation= POM/4.0.0 xsd/maven-4.0.0.xsd 
 modelVersion 4.0.0 /modelVersion 
 .codesolid /groupId 
 artifactId HelloJUnit /artifactId 
 version 1.0 /version 
 dependencies 
 dependency 
 groupId junit /groupId 
 artifactId junit /artifactId 
 version 4.11 /version 
 scope test /scope 
 /dependency 
 dependency 
 groupId log4j /groupId 
 artifactId log4j /artifactId 
 version 1.2.17 /version 
 pile /scope 
 /dependency 
 dependency 
 .apache.hadoop /groupId 
 artifactId hadoop-core /artifactId 
 version 1.0.4 /version 
 /dependency 
 dependency 
 .apache.hbase /groupId 
 artifactId hbase /artifactId 
 version 0.94.5 /version 
 /dependency 
 /dependencies 
 /project 

三、碰到的难题

This server is in the failed servers list: localhost/127.0.0.1:60718

出現该难题的缘故是沒有在服务端配备服务器名和真正ip的投射,因而必须再/etc/hosts里加上10.1.f04为网络服务器的服务器名)

f04的投射,我的是在windows上跑的java程序,必须改动windows的host文档,最终一行添加10.1.f04就可以

dengb.TechArticle追忆HBaes布署与java顾客端浏览,追忆hbaes布署java 好长时间没搭起來测测了,今日随手搭起來用用。結果碰到了许多难题,下边逐一表明 一、部...