日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HBase详细的安装和使用方法

發(fā)布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase详细的安装和使用方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

HBase的原型是Google的BigTable論文,受到了該論文思想的啟發(fā),目前作為Hadoop的子項目來開發(fā)維護,用于支持結(jié)構(gòu)化的數(shù)據(jù)存儲。

官方網(wǎng)站:http://hbase.apache.org

民間中文文檔:https://hbase.apachecn.org/#/

  • 2006年Google發(fā)表BigTable白皮書
  • 2006年開始開發(fā)HBase
  • 2008年北京成功開奧運會,程序員默默地將HBase弄成了Hadoop的子項目
  • 2010年HBase成為Apache頂級項目
  • 現(xiàn)在很多公司基于HBase開發(fā)出了定制版,比如阿里云HBase

總結(jié):

HBase是構(gòu)建在HDFS之上的分布式、【面向列】的存儲系統(tǒng),在需要實時讀寫、隨機訪問的超大規(guī)模數(shù)據(jù)集是,可以使用HBase。

為什么需要HBase

# 海量數(shù)據(jù)存儲一個表百億行 百萬列;(MySQL實戰(zhàn)最大值500萬行,30列) # 實時查詢1秒內(nèi)查詢得到結(jié)果。

HBase特點

# 1. 容量大HBase單表百億行,百萬列。 # 2. 面向列HBase存儲是面向列,可以再數(shù)據(jù)存在以后動態(tài)增加新列和數(shù)據(jù),并支持列數(shù)據(jù)的獨立操作。 # 3. 多版本HBase每個數(shù)據(jù),可以同時保存多個版本,按照時間去標(biāo)記。 # 4. 稀疏性HBase每條數(shù)據(jù)的增刪,并不是要操作所有的列,的列可以動態(tài)增加,可以存在大量空白單元格,不會占用磁盤空間,這對于海量數(shù)據(jù)來講,非常重要。 # 5. 擴展性底層使用HDFS,存儲能力可以橫向擴展。 # 6. 高可靠性底層使用HDFS,擁有replication的數(shù)據(jù)高可靠性。 # 7. 高性能表數(shù)據(jù)達到一定規(guī)模,"自動分區(qū)",具備主鍵索引,緩存機制,使得HBase海量數(shù)據(jù)查詢能達到毫秒級。

HBase和RDBMS對比

HBase關(guān)系型數(shù)據(jù)庫
數(shù)據(jù)庫以**region**的形式存在數(shù)據(jù)庫以Table的形式存在
使用**行鍵**(row key)支持主鍵PK
使用行表示一條數(shù)據(jù)一條數(shù)據(jù)用row代表
使用列 column、列族 column familycolumn代表列數(shù)據(jù)的含義
使用HBase shell命令操作數(shù)據(jù)使用SQL操作數(shù)據(jù)
數(shù)據(jù)文件可以基于HDFS,是分布式文件系統(tǒng),
可以任意擴展,數(shù)據(jù)總量取決于服務(wù)器數(shù)量
數(shù)據(jù)總量依賴于單體服務(wù)器的配置
不支持事務(wù)、不支持ACID支持事務(wù)和ACID
不支持表連接支持join表連接

HBase表邏輯結(jié)構(gòu)

數(shù)據(jù)相關(guān)概念

# namespace 命名空間hbase管理表的結(jié)構(gòu),在HDFS中對應(yīng)一個文件夾。 # table 表hbase管理數(shù)據(jù)的結(jié)構(gòu),在HDFS中對應(yīng)一個文件。 # column family 列族表中數(shù)據(jù)的列,要屬于某個列族,所有的列的訪問格式(列族:列名) # rowkey 主鍵用來標(biāo)記和檢索數(shù)據(jù)的主鍵key。 # cell 單元格由`row key+column family+column+version` 唯一確定的一條數(shù)據(jù) # timestamp 時間戳?xí)r間戳,每個單元格可以保存多個值,每個值有對應(yīng)的時間戳,每個cell中,不同版本的數(shù)據(jù)倒敘排序,排在最前面的是最新數(shù)據(jù)。

HBase單機版安裝

下載

地址:http://archive.apache.org/dist/hbase/

準(zhǔn)備

  • 安裝并配置hadoop
  • [root@hadoop10 installs]# jps 3440 Jps 3329 SecondaryNameNode 3030 NameNode 3134 DataNode
  • 安裝并配置zookeeper
  • [root@hadoop10 installs]# jps3329 SecondaryNameNode3509 QuorumPeerMain3030 NameNode3595 Jps3134 DataNode[root@hadoop10 installs]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/installs/zookeeper3.4.14/bin/../conf/zoo.cfgMode: standalone
  • 設(shè)置好日期同步
  • # 查看linux系統(tǒng)時間[root@hadoop10 installs]# date# 重啟chronyd服務(wù),同步系統(tǒng)時間。[root@hadoop10 installs]# systemctl restart chronyd[root@hadoop10 installs]# date2020年 04月 12日 星期日 22:51:31 CST

    安裝

    # 1. 安裝hbase 1. 解壓HBase[root@hadoop30 modules]# tar zxvf hbase-1.2.4-bin.tar.gz -C /opt/installs/ 2. 配置環(huán)境變量#JAVAexport JAVA_HOME=/opt/installs/jdk1.8export PATH=$PATH:$JAVA_HOME/bin# HADOOPexport HADOOP_HOME=/opt/installs/hadoop2.9.2/export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# zookeeperexport PATH=$PATH:/opt/installs/zookeeper3.4.14/bin/# HBaseexport HBASE_HOME=/opt/installs/hbase-1.2.4/export PATH=$PATH:$HBASE_HOME/bin 3. 加載profile配置source /etc/profile # 2. 初始化配置文件 # 1 -------------------hbase-env.sh--------------------# 配置Java_home export JAVA_HOME=/opt/installs/jdk1.8# 注釋掉如下2行。 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" # export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"# 禁用內(nèi)置zookeeper export HBASE_MANAGES_ZK=false # 2. -------------------hbase-site.xml------------------------- <configuration><!-- hbase的入口,ns HaHadoop的虛擬命名空間 --><property><name>hbase.rootdir</name><value>hdfs://hadoop10:9000/hbase</value></property><!-- 使用偽分布式模式 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- zookeeper集群地址,端口默認(rèn)2181不需要指定 --><property><name>hbase.zookeeper.quorum</name><value>hadoop10</value></property></configuration> # -------------------配置regionservers(regionserver所在節(jié)點的ip) ------------------- hadoop10 # 3. 啟動hbase 啟動順序: 1. 啟動zookeeper 2. 啟動hdfs 3. 啟動hbase關(guān)閉順序: 1.關(guān)閉hbase 2.關(guān)閉hdfs 3.關(guān)閉zk # hbase啟動方式一 1. 啟動hbasestart-hbase.sh 2. 關(guān)閉hbasestop-hbase.sh# hbase啟動方式二 1. 啟動HMaster [root@hadoop10 installs]# hbase-daemon.sh start master # 關(guān)閉 [root@hadoop10 installs]# hbase-daemon.sh stop master 2. 啟動HRegionServer [root@hadoop10 installs]# hbase-daemon.sh start regionserver # 關(guān)閉 [root@hadoop10 installs]# hbase-daemon.sh stop master # 4. 驗證訪問 1. java進程查看 [root@hadoop10 installs]# jps 4688 NameNode 5618 HMaster 5730 HRegionServer 4819 DataNode 3509 QuorumPeerMain 6150 Jps 4984 SecondaryNameNode 2. HMaster WebUI查看 http://ip:16010 3. 進入客戶端 hbase shell hbase(main):001:0>

    HBase 命令

    1. 客戶端進出命令

    # 進入客戶端:./hbase shell # 退出客戶端命令:quit # 幫助help

    2. namespace操作

    默認(rèn)存在一個default的namespace #1. 查看namespacelist_namespace#2. 創(chuàng)建namespacecreate_namespace "命名空間名字"#3. 刪除namespacedrop_namespace "命令空間名字"

    3. 表操作

    # 1. 查看所有表 hbase(main):024:0> list TABLE baizhins:t_person # namespace:表 t_user # default:表 default被省略了 2 row(s) in 0.1140 seconds# 2. 查看某個namespace下的所有表 hbase(main):027:0> list_namespace_tables "baizhins" TABLE t_person 1 row(s) in 0.3970 seconds# 3. 創(chuàng)建表 語法:create "namespace:表名","列族1","列族2" hbase(main):023:0> create "baizhins:t_person","info","edu" 0 row(s) in 9.9000 seconds# 4. 查看表結(jié)構(gòu) hbase(main):030:0> desc "baizhins:t_person" Table baizhins:t_person is ENABLED baizhins:t_person COLUMN FAMILIES DESCRIPTION {NAME => 'edu', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE',DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE =>'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE' , DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE = > 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 2 row(s) in 1.6400 seconds# 5. 刪除表和禁用表 hbase(main):002:0> disable "namespace:表" 0 row(s) in 4.4790 secondshbase(main):002:0> drop "namespace:表" 0 row(s) in 4.4790 seconds

    4.數(shù)據(jù)增刪改查

    # 1. 添加數(shù)據(jù)(每次只能添加一個列)put "namespace:表","rowkey","列族1:列名1","值"hbase(main):007:0> put 'baizhins:t_person','1001','info:name','zhangsan' 0 row(s) in 1.7250 seconds hbase(main):008:0> put 'baizhins:t_person','1001','info:age',20 0 row(s) in 0.0210 seconds hbase(main):009:0> put 'baizhins:t_person','1002','info:name','lisi' 0 row(s) in 0.0190 seconds hbase(main):010:0> put 'baizhins:t_person','1002','info:age',21 0 row(s) in 0.0620 seconds# 2. 根據(jù)rowkey查找數(shù)據(jù)get "namespace:表名","rowkey"hbase(main):015:0> get 'baizhins:t_person','1001' COLUMN CELLinfo:age timestamp=1598752891747, value=20info:name timestamp=1598752881461, value=zhangsan 2 row(s) in 0.1550 seconds# 3. 根據(jù)rowkey和列族查找數(shù)據(jù)get "namespace:表名","rowkey","列族:列"# 4. scan 查詢表中所有數(shù)據(jù)hbase(main):019:0> scan "baizhins:t_person"hbase(main):024:0> scan 'baizhins:t_person' ROW COLUMN+CELL1001 column=info:age, timestamp=1598753486814, value=201001 column=info:name, timestamp=1598753478658, value=zhangsan1002 column=info:age, timestamp=1598753520306, value=211002 column=info:name, timestamp=1598753509800, value=lisi 2 row(s) in 0.0410 seconds# 5. scan 查詢表中前2條數(shù)據(jù)hbase(main):022:0> scan "baizhins:t_person",{LIMIT=>2}# 6. 使用start row 和 end row 范圍查找hbase(main):029:0> scan "baizhins:t_person",{STARTROW=>"1001",STOPROW=>"1003"}hbase(main):032:0> scan 'baizhins:t_person',{STARTROW=>'1001',STOPROW=>'1003'} ROW COLUMN+CELL1001 column=info:age, timestamp=1598753486814, value=201001 column=info:name, timestamp=1598753478658, value=zhangsan1002 column=info:age, timestamp=1598753520306, value=211002 column=info:name, timestamp=1598753509800, value=lisi問題:HBase中的數(shù)據(jù)是按照Rowkey的ASCII字典順序進行全局排序的 假如有5個Rowkey:"012", "0", "123", "234", "3",按ASCII字典排序后的結(jié)果為:"0", "012", "123", "234", "3"。 Rowkey排序時會先比對兩個Rowkey的第一個字節(jié),如果相同,然后會比對第二個字節(jié),依次類推... 對比到第X個字節(jié)時,已經(jīng)超出了其中一個Rowkey的長度,短的Rowkey排在前面。# 7. 使用start row和limit查找hbase(main):032:0> scan "baizhins:t_person",{STARTROW=>"1002",LIMIT=>2}hbase(main):033:0> scan 'baizhins:t_person',{STARTROW=>'1002',LIMIT=>2} ROW COLUMN+CELL1002 column=info:age, timestamp=1598753520306, value=211002 column=info:name, timestamp=1598753509800, value=lisi1003 column=info:name, timestamp=1598753628840, value=wangwu# 8. 修改數(shù)據(jù)(本質(zhì)上是覆蓋)put "namespace:表","rowkey","列族:列名","值"# 9. 刪除數(shù)據(jù)(刪除某個cell)delete "namespace:表","rowkey","列族:列名"# 10. 刪除某個rowkey對應(yīng)的數(shù)據(jù)deleteall "namespace:表","rowkey"# 11. 統(tǒng)計表中所有數(shù)據(jù)count "namespace:表"# 12. 清空表中的所有數(shù)據(jù)truncate "namespace:表"

    5. 多版本問題

    # 1. 創(chuàng)建表 hbase(main):013:0> create "baizhins:user","info" # 2. 修改版本數(shù) hbase(main):016:0> alter "baizhins:user",{NAME=>'info',VERSIONS=>2}# 表的列族的VERSIONS=>2表示的該列族的數(shù)據(jù),要保存2個版本。如果put3次,則保留最新的2個版本。# 3. 同一個cell添加2次數(shù)據(jù)。 hbase(main):014:0> put "baizhi:user","10001","info:name","aaa" 0 row(s) in 0.2620 secondshbase(main):015:0> put "baizhi:user","10001","info:name","bb" 0 row(s) in 0.0290 seconds # 4. 查看多版本 hbase(main):017:0> get "baizhi:user","10001",{COLUMN=>'info:name',VERSIONS=>3} COLUMN CELLinfo:name timestamp=1586795010367, value=bbinfo:name timestamp=1586795004085, value=aaa 說明:1. 可以查看VERSIONS指定的版本數(shù)量的值。2. cell中多個版本的值,按照時間戳降序排序。3. 在get或者scan查詢數(shù)據(jù),并不指定VERSIONS,默認(rèn)讀取的cell中最新的1個的版本的值。

    HBase API

    環(huán)境準(zhǔn)備

    • 依賴

      <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.2.4</version> </dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>1.2.4</version> </dependency>
    • 初始化配置

      將hbase中的conf中的 hbase-site.xml放到resource配置文件目錄中。

      conf.addResource("/hbase-site.xml")

    • windows配置ip映射

    API介紹

    API含義創(chuàng)建
    Configuration配置文件HBaseConfiguration.create();
    Connection連接,用來操作數(shù)據(jù)ConnectionFactory.createConnection(conf);
    Admin客戶端,用來操作元數(shù)據(jù)
    (namespace和table結(jié)構(gòu))
    conn.getAdmin();
    NamespaceDescriptor命名空間相當(dāng)于databaseNamespaceDescriptor.create(“baizhins”).build();
    TableName表名TableName.valueOf(“baizhi:user”);
    HTableDescriptornew HTableDescriptor(tablename);
    HColumnDescriptor列族new HColumnDescriptor(“info”);
    Put添加數(shù)據(jù)new Put(Bytes.toBytes(“10001”));
    Deleterowkey的刪除條件new Delete(Bytes.toBytes(“10001”));
    Getscan多行查詢器new Get(Bytes.toBytes(“10019”));
    Scanscan多行查詢器new Scan();
    Result查詢結(jié)果集(單條結(jié)果)table.get(get);
    ResultScanner查詢結(jié)果集(N條結(jié)果)table.getScanner(scan);
    Bytes類型轉(zhuǎn)化工具類,HBase中數(shù)據(jù)類型為字節(jié),
    所有類型存入后都變成字節(jié),需要相互轉(zhuǎn)化。

    HBase客戶端連接

    注意:配置windows向linux的ip映射。

    // 獲得客戶端 //1. 讀取配置文件 Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","hadoop10"); BasicConfigurator.configure();//打印日志信息 //2. 建立連接 Connection conn = ConnectionFactory.createConnection(conf); //3. 獲得客戶端 admin = conn.getAdmin(); // 釋放資源 admin.close();

    常用API

    1. 創(chuàng)建namespace

    //1. 構(gòu)建namespace信息。 NamespaceDescriptor baizhins = NamespaceDescriptor.create("baizhins").build(); //2. 創(chuàng)建namespace admin.createNamespace(baizhins);

    2. 表操作

    操作表,使用admin

    • 判斷表是否存在

      //1. 創(chuàng)建表名 TableName tableName = TableName.valueOf("baizhins:person"); //2. 判斷表是否存在 boolean b = admin.tableExists(tableName); System.out.println(b?"存在":"不存在");
    • 創(chuàng)建表

      //1. 初始化表名 TableName person = TableName.valueOf("baizhins:person"); //2. 初始化列族信息 HColumnDescriptor info = new HColumnDescriptor("info"); HColumnDescriptor addr = new HColumnDescriptor("addr"); //3. 綁定表名,綁定列族 HTableDescriptor hTableDescriptor = new HTableDescriptor(person); hTableDescriptor.addFamily(info); hTableDescriptor.addFamily(addr); //4. 創(chuàng)建表 admin.createTable(hTableDescriptor);

    3. 添加

    操作數(shù)據(jù)使用conn

    //1. 初始化要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 創(chuàng)建 添加數(shù)據(jù) Put put = new Put(Bytes.toBytes("1001"));//構(gòu)造rowkey // Bytes是HBase提供的進行字節(jié)和java數(shù)據(jù)類型轉(zhuǎn)化的工具類 put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("name"),Bytes.toBytes("張三") ); put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("age"), Bytes.toBytes(18)); put.addColumn(Bytes.toBytes("addr"), Bytes.toBytes("zipCode"), Bytes.toBytes("45000")); //3. 將put數(shù)據(jù)添加。 table.put(put); //4. 釋放資源 table.close();

    4. 修改

    //1. 初始化要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 修改的本質(zhì)就是添加,利用時間戳覆蓋舊的數(shù)據(jù)而已。 Put put = new Put(Bytes.toBytes("1001")); put.addColumn(Bytes.toBytes("addr"), Bytes.toBytes("zipCode"), Bytes.toBytes("45001")); //3. 添加到表中 table.put(put); //4. 關(guān)閉table table.close();

    5. 刪除

    //1. 獲得要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 創(chuàng)建要刪除的條件,以rowkey為條件 Delete delete = new Delete(Bytes.toBytes("1001"));//刪除某個列族 //delete.addFamily(Bytes.toBytes("cf2")); //刪除某個列 //delete.addColumn(Bytes.toBytes("cf1"),Bytes.toBytes("age"));//3. 執(zhí)行刪除 table.delete(delete);

    6. 查詢

    • 根據(jù)rowkey單條查詢。

      //1. 獲得要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 使用rowkey作為查詢條件 Get get = new Get(Bytes.toBytes("10019")); //3. 執(zhí)行查詢 Result result = table.get(get); //4. 處理結(jié)果集:result.getValue; byte[] namebyte = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")); //下面代碼雷同。 byte[] agebyte = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age")); byte[] zipbyte = result.getValue(Bytes.toBytes("addr"), Bytes.toBytes("zipCode")); //獲得rowkey byte[] rowbytes = result.getRow(); System.out.println(Bytes.toString(namebyte)); System.out.println(Bytes.toInt(agebyte)); System.out.println(Bytes.toString(zipbyte));
    • 多條查詢

      //1. 獲得要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 創(chuàng)建scan掃描器,多行查詢 Scan scan = new Scan(); //3. 指定要投射的列族。 scan.addFamily(Bytes.toBytes("info")); scan.addFamily(Bytes.toBytes("addr")); //4. 設(shè)置起始和查詢條數(shù) scan.setStartRow(Bytes.toBytes("1001")); scan.setFilter(new PageFilter(3)); //5. 執(zhí)行查詢 ResultScanner result = table.getScanner(scan); //6. 處理結(jié)果集 for (Result res:result){byte[] namebyte = res.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] agebyte = res.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));byte[] zipCodebyte = res.getValue(Bytes.toBytes("addr"), Bytes.toBytes("zipCode"));String name = Bytes.toString(namebyte);int age = Bytes.toInt(agebyte);String zipcode = Bytes.toString(zipCodebyte);System.out.println(name+":"+age+":"+zipcode); } //7. 關(guān)閉table table.close();
    • 范圍查詢

      //1. 獲得要操作的表 Table table = conn.getTable(TableName.valueOf("baizhins:person")); //2. 創(chuàng)建scan掃描器,多行查詢 Scan scan = new Scan(); //3. 指定要投射的列族。 scan.addFamily(Bytes.toBytes("info")); scan.addFamily(Bytes.toBytes("addr")); //4. 設(shè)置起始和查詢條數(shù) scan.setStartRow(Bytes.toBytes("1001")); scan.setStopRow(Bytes.toBytes("1003")); //5. 執(zhí)行查詢 ResultScanner result = table.getScanner(scan); //6. 處理結(jié)果集 for (Result res:result){byte[] namebyte = res.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] agebyte = res.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));byte[] zipCodebyte = res.getValue(Bytes.toBytes("addr"), Bytes.toBytes("zipCode"));String name = Bytes.toString(namebyte);int age = Bytes.toInt(agebyte);String zipcode = Bytes.toString(zipCodebyte);System.out.println(name+":"+age+":"+zipcode); } //7. 關(guān)閉table table.close();
    • 前綴查詢

      Scan scan = new Scan(); Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator("a-")); scan.setFilter(filter);ResultScanner results = table.getScanner(scan);for (Result result : results) {byte[] nameByte = result.getValue(Bytes.toBytes("cf1"),Bytes.toBytes("name"));byte[] ageByte = result.getValue(Bytes.toBytes("cf1"),Bytes.toBytes("age"));System.out.println(Bytes.toString(nameByte) + "\t" + Bytes.toString(ageByte)); } table.close();
    • 多版本查詢

      Get get = new Get(Bytes.toBytes("1001")); //可以指定查詢某一個列 get.addColumn(Bytes.toBytes("cf1"),Bytes.toBytes("name")); get.setMaxVersions(5); Result result = table.get(get);Cell[] cells = result.rawCells(); for (Cell cell : cells) {System.out.println(Bytes.toString(CellUtil.cloneValue(cell))); }

    HBase架構(gòu)原理

    讀寫數(shù)據(jù)操作原理

    讀數(shù)據(jù)

    寫數(shù)據(jù)

    HBase底層原理

    HBase架構(gòu)體系

    架構(gòu)相關(guān)概念

    HRegionServer

    HRegionServer(和DataNode同一節(jié)點) 1. 存儲表數(shù)據(jù)部分 2. put delete get scan等針對數(shù)據(jù)的操作 3. 定時向Master報告自身節(jié)點的狀態(tài) 4. 管理表的數(shù)據(jù)的Table的數(shù)據(jù)

    HMaster

    HMaster 1. Region Server狀態(tài)的管理 2. 表的管理:create drop alter 3. 實現(xiàn)HRegionServer的數(shù)據(jù)負載均衡,平衡HRegion的分布

    Zookeeper

    Zookeeper 1. 解決HMaster的單點故障問題 2. 存放HMaster管理的HRegionServer的狀態(tài)信息,并通知HMaster 3. 存放HMaster管理的表的元數(shù)據(jù)信息表名、列名、key區(qū)間等。

    HRegion

    HRegion表的橫向切片的物理表現(xiàn),大表的子表,有(startkey endkey),多行數(shù)據(jù)。為了減小單表操作的大小,提高讀寫效率。

    Store

    Store 1. 表的縱向切分的物理表現(xiàn),按照列族作為切分。 2. 按照列族查詢,僅需要檢索一定范圍內(nèi)的數(shù)據(jù),減少全表掃描。

    HBase底層原理

    Region Split 分區(qū)

    • 分區(qū)原因

      提高Region的負載和讀寫效率。

    • 說明

      Region一拆為二,并分布在不同的RegionServer上。

    • 默認(rèn)分區(qū)機制

      Region中數(shù)據(jù)超過128M、512M、1152M… *Region數(shù)量2hbase.hregion.memstore.flush.size … 10G、10G

      查看參數(shù)

      hbase.hregion.memstore.flush.size=128M hbase.hregion.max.filesize=10G
    • 問題

      默認(rèn)分區(qū)容易導(dǎo)致數(shù)據(jù)傾斜,硬件資源無法利用。(數(shù)據(jù)熱點問題,大量的客戶端訪問,落在部分節(jié)點上,導(dǎo)致忙的忙死,閑的閑死。)

    Region預(yù)分區(qū)

    • 為什么

      • 增加讀寫效率。(多個region分布在不同的RegionServer中,可以提高并發(fā)效率)
      • 盡量保證每個Region中的數(shù)據(jù)量相當(dāng),防止數(shù)據(jù)傾斜。(合理利用計算資源)
    • 分區(qū)的效果

      每個Region維護一對StartKey和EndKey,限定維護輸入rowkey范圍。

      添加數(shù)據(jù)時,將rowkey放入匹配的region中。

    • 創(chuàng)建表時分區(qū),手動指定

      命令:

      create "namespace:表","列族",SPLITS=>["100000","200000","300000","400000"]

      效果:(http://ip:16030)訪問RegionServers

    • java代碼分區(qū)

    MemStore Flush刷寫

    • 說明

      簡言:持久化,保護數(shù)據(jù)不丟失。

      將RegionServer中內(nèi)存中的數(shù)據(jù)Memstore,寫入到硬盤中。


    • 時機

    • 當(dāng) region server 中 memstore 的總大小達到java_heapsize的閾值,默認(rèn)值 0.4
    • 對應(yīng)參數(shù):hbase.regionserver.global.memstore.size

    • 到達自動刷寫的時間,默認(rèn) 1 小時
    • 對應(yīng)參數(shù):hbase.regionserver.optionalcacheflushinterval

    • 單個Region中的數(shù)據(jù)文件大小超過128M。
    • 對應(yīng)參數(shù):hbase.hregion.memstore.flush.size

    • 手動flush

      命令:flush "namespace:表名"

    • 文件位置:

      hdfs:ip:50070/hbase/data/baizhins/user2/faf64f7f6cfa6282c2a92864faa3909d

    Store File Compaction 合并

    • 目的

      storefile小文件過多,查詢時,需要遍歷所有文件,效率低。

      storefile中遍布過期數(shù)據(jù),占用空間,且查詢效率低。

    • 說明

      簡言:為提高檢索效率,合并store。

    • 分類和時機

      • minor compact(局部合并)
      特點:少量相鄰(加速合并,并有序)文件的合并

      時機:發(fā)生頻率較高,不影響性能。

      手動命令:compact "namespace:表名"

      • major compact(全局合并)
      特點: 1. 全局的所有store file文件的合并。 2. 去除刪除被覆蓋的文件。 3. 特別消耗RegionServer的性能資源。(重點)

      時機:每7天執(zhí)行一次:參數(shù):hbase.hregion.majorcompaction

      一般手動觸發(fā)。手動觸發(fā)命令:major_compact "namespace:表名"

    rowkey設(shè)計

    # rowkey對hbase有什么影響 1. 影響region數(shù)據(jù)分布,負載均衡,不好rowkey設(shè)計,會導(dǎo)致數(shù)據(jù)傾斜,導(dǎo)致數(shù)據(jù)熱點。希望:一段時間內(nèi),新增數(shù)據(jù)(訪問請求),盡可能均勻分布到不同的HRegion。 2. 唯一標(biāo)記1條數(shù)據(jù)希望:rowkey唯一性。 3. 為查詢業(yè)務(wù)服務(wù)。希望:rowkey設(shè)計必須滿足查詢業(yè)務(wù)需求

    為什么HBase數(shù)據(jù)讀取速度快BlockCache

    # 1 MemstoreRegion內(nèi)存中特點:(內(nèi)存)(數(shù)據(jù)最新的)(有序) # 2 BlockCache(LRU)HBase緩存中。緩存策略:LRU(數(shù)據(jù)淘汰機制),最近最少使用原則,保留最近最新使用多的數(shù)據(jù)。 # 3:磁盤storeFile(每個小file中rowkey是有序的) LSM磁盤的檢索速度慢是因為尋道。磁盤合并大storeFile(減少file數(shù)量,可以提高磁盤檢索效率)1. storefile文件數(shù)量少,減少遍歷。2. 文件內(nèi)以及文件在磁盤中,rowkey有序,代碼檢索,磁盤尋道大大節(jié)省時間。

    HBase架構(gòu)完整版

    注意

  • 編輯regionservers,使用vi編輯
  • 安裝hbase之前,同步系統(tǒng)時間
  • 集群規(guī)劃 192.168.199.11: HMaster 192.168.199.12: HRegionServer 192.168.199.13: HRegionServer # 0 確保HDFS HA已經(jīng)搭建完畢 [root@hadoop11 ~]# jps 1259 JournalNode 1965 NameNode 1758 DFSZKFailoverController 2110 Jps 1215 QuorumPeerMain # 1. 安裝HBase 1. 解壓HBase[root@hadoop11 modules]# tar zxvf hbase-1.2.4-bin.tar.gz -C /opt/installs/ 2. 配置環(huán)境變量#JAVAexport JAVA_HOME=/opt/installs/jdk1.8export PATH=$PATH:$JAVA_HOME/bin# HADOOPexport HADOOP_HOME=/opt/installs/hadoop2.9.2/export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# zookeeperexport PATH=$PATH:/opt/installs/zookeeper3.4.14/bin/# HBaseexport HBASE_HOME=/opt/installs/hbase-1.2.4export PATH=$PATH:$HBASE_HOME/bin 3. 加載profile配置source /etc/profile # 2. 初始化HBase 配置文件 # 1 -------------------hbase-env.sh--------------------# 配置Java_home export JAVA_HOME=/opt/installs/jdk1.8# 注釋掉如下2行。 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m" # export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"# 禁用內(nèi)置zookeeper export HBASE_MANAGES_ZK=false # 2. -------------------hbase-site.xml------------------------- <configuration><!-- hbase的入口,ns HaHadoop的虛擬命名空間 --><property><name>hbase.rootdir</name><value>hdfs://ns/hbase</value></property><!-- 使用分布式模式 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- zookeeper集群地址,端口默認(rèn)2181不需要指定 --><property><name>hbase.zookeeper.quorum</name><value>hadoop10,hadoop11,hadoop12</value></property><!--配置hdfs的hflush:否則該版本啟動會報錯--><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property> </configuration> # 3. -------------------regionservers-------------------- hadoop12 hadoop13 #** 4. 將hadoop的配置文件拷貝到hbase的conf目錄中。(core-site.xml hdfs-site.xml) [root@hadoop11 installs]# ln -s /opt/installs/hadoop2.9.2/etc/hadoop/core-site.xml /opt/installs/hbase-1.2.4/conf/core-site.xml [root@hadoop11 installs]# ln -s /opt/installs/hadoop2.9.2/etc/hadoop/hdfs-site.xml /opt/installs/hbase-1.2.4/conf/hdfs-site.xml # 3. 遠程拷貝 1. 拷貝profile文件 [root@hadoop11 installs]# scp /etc/profile root@hadoop12:/etc/ [root@hadoop11 installs]# scp /etc/profile root@hadoop13:/etc/ 2. 拷貝hbase安裝軟件和配置文件 [root@hadoop11 installs]# scp -r hbase1.2.4/ root@hadoop12:/opt/installs/ [root@hadoop11 installs]# scp -r hbase1.2.4/ root@hadoop13:/opt/installs/ 3. 重新加載profile [root@hadoop11 ~]# source /etc/profile [root@hadoop12 ~]# source /etc/profile [root@hadoop13 ~]# source /etc/profile # 3. 啟動HBase 1. 啟動hbasestart-hbase.sh 2. 關(guān)閉hbasestop-hbase.sh

    false

    ~~~shell # 3. -------------------regionservers-------------------- hadoop12 hadoop13 #** 4. 將hadoop的配置文件拷貝到hbase的conf目錄中。(core-site.xml hdfs-site.xml) [root@hadoop11 installs]# ln -s /opt/installs/hadoop2.9.2/etc/hadoop/core-site.xml /opt/installs/hbase-1.2.4/conf/core-site.xml [root@hadoop11 installs]# ln -s /opt/installs/hadoop2.9.2/etc/hadoop/hdfs-site.xml /opt/installs/hbase-1.2.4/conf/hdfs-site.xml # 3. 遠程拷貝 1. 拷貝profile文件 [root@hadoop11 installs]# scp /etc/profile root@hadoop12:/etc/ [root@hadoop11 installs]# scp /etc/profile root@hadoop13:/etc/ 2. 拷貝hbase安裝軟件和配置文件 [root@hadoop11 installs]# scp -r hbase1.2.4/ root@hadoop12:/opt/installs/ [root@hadoop11 installs]# scp -r hbase1.2.4/ root@hadoop13:/opt/installs/ 3. 重新加載profile [root@hadoop11 ~]# source /etc/profile [root@hadoop12 ~]# source /etc/profile [root@hadoop13 ~]# source /etc/profile # 3. 啟動HBase 1. 啟動hbasestart-hbase.sh 2. 關(guān)閉hbasestop-hbase.sh

    總結(jié)

    以上是生活随笔為你收集整理的HBase详细的安装和使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    国产精品视频不卡 | 成年人视频在线 | 日韩高清免费观看 | 亚洲免费小视频 | 伊人伊成久久人综合网小说 | 色在线视频| 日韩精品免费一区二区 | 国内精品久久久久久久97牛牛 | 国产91免费观看 | 国产一区二区在线免费播放 | 日日夜夜操操 | 999国产在线| 亚洲欧美成人 | 精品视频久久久 | 天天玩天天干天天操 | 精品国产伦一区二区三区观看说明 | 日韩欧美在线视频一区二区 | 国产小视频国产精品 | 婷婷网在线 | 国产高清精品在线 | 精品在线观 | 久艹视频免费观看 | 久久激情五月丁香伊人 | 成人黄色大片在线观看 | 欧美午夜a | 国产精品毛片久久 | 日韩二区在线播放 | 欧美精品午夜 | 91精品视频免费观看 | 中文字幕在线视频一区二区三区 | 一区二区三区免费在线播放 | 99婷婷狠狠成为人免费视频 | 精品国产99国产精品 | 天堂av免费观看 | 久久精品视频在线 | 色综合久久五月 | 97超碰色偷偷 | 91在线精品播放 | 在线观看亚洲专区 | 日本视频网 | 黄色影院在线观看 | 国产一区二区视频在线 | 三级在线视频播放 | a级一a一级在线观看 | 中文字幕电影在线 | 99精品免费| 国产精品网站一区二区三区 | 五月婷婷视频在线观看 | 超碰在线中文字幕 | 在线观看aa | 日韩在线看片 | 极品久久久久 | 免费看的视频 | 丁香婷婷深情五月亚洲 | 久草视频中文 | 97超视频| 亚洲国产精品激情在线观看 | 国产爽视频| 九九热只有精品 | 91探花在线视频 | 日日天天干 | 国产精品一区二区吃奶在线观看 | 国内精品久久久久久 | 天天躁日日躁狠狠躁 | 国产精品久久久久久久久久久久午夜片 | 婷婷综合视频 | 99精品国产在热久久下载 | 少妇性色午夜淫片aaaze | 久草在线一免费新视频 | 在线观看亚洲精品 | 国产精品一区二 | 欧美精品一区二区三区四区在线 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 久久国语| 91精品网站在线观看 | 免费在线观看日韩视频 | 91丨九色丨蝌蚪丰满 | 丰满少妇在线观看资源站 | 成人欧美一区二区三区黑人麻豆 | 日韩理论视频 | 国产在线理论片 | 自拍超碰在线 | 久久久不卡影院 | 亚洲欧美日韩在线看 | 97品白浆高清久久久久久 | 国产一二区在线观看 | 2023av| 伊人网av | 韩国精品在线观看 | 精品视频久久久 | 亚洲年轻女教师毛茸茸 | 九九热精品视频在线播放 | 欧美日韩亚洲精品在线 | 国产视频欧美视频 | www久久99 | 国产精品免费不卡 | 国产一级性生活视频 | 国产日韩精品一区二区三区在线 | 九九热中文字幕 | 狠狠激情中文字幕 | 亚洲国产精彩中文乱码av | 精品国产一区二区三区不卡 | 香蕉视频在线免费 | 婷婷视频导航 | 日韩精选在线 | 久久在现视频 | 九九九国产| 成人久久18免费网站图片 | 在线观看国产日韩 | 久久爱资源网 | 人人搞人人干 | 在线观看日韩av | 久久精品视频免费 | 天天爽天天爽夜夜爽 | 国产成人精品午夜在线播放 | 一区二区三区四区久久 | 免费视频在线观看网站 | 久草在线资源网 | 天天色天天操综合网 | 日韩欧美视频在线免费观看 | 丁香六月色 | 91视视频在线直接观看在线看网页在线看 | 人人澡人人爽 | 日韩欧美电影网 | 国产精品夜夜夜一区二区三区尤 | 视频在线国产 | 人人澡视频 | 天天激情综合 | 亚洲一二三久久 | 亚洲精品高清一区二区三区四区 | 黄www在线观看 | 国产精品伦一区二区三区视频 | 中文字幕欧美日韩va免费视频 | 成人av网址大全 | 日韩一区二区免费在线观看 | av片子在线观看 | 手机成人av在线 | av在线8 | 国产精品18久久久久久久网站 | 中文亚洲欧美日韩 | 天天草天天爽 | 欧美日本在线视频 | 国产一区二区久久久 | 国产高清久久 | 麻豆国产露脸在线观看 | 成人午夜免费福利 | 日韩精品久久久久久 | 亚洲伊人天堂 | 中文字幕在线观看视频一区二区三区 | 激情综合久久 | 亚洲电影自拍 | 亚洲桃花综合 | 日韩中文字幕a | 国产精品99久久久久久久久久久久 | 国产一区自拍视频 | 亚洲日本国产精品 | 国产二级视频 | 中文字幕在线观看一区二区 | 99久热在线精品视频成人一区 | 97成人资源站 | 最新av在线播放 | 黄色看片 | 日韩xxxxxxxxx| 欧美狠狠操 | 久久久久久久久久久高潮一区二区 | 久久午夜影视 | 久久99久久99精品免视看婷婷 | 99午夜| 国产日韩视频在线 | 国产精品嫩草55av | www.五月天婷婷 | 久久综合精品国产一区二区三区 | 国产免费xvideos视频入口 | 日日干,天天干 | 在线观看视频你懂 | 精品国偷自产在线 | 国产精品美女久久久久久2018 | 亚洲精品黄 | 青草视频在线播放 | 97超碰在线久草超碰在线观看 | 国产字幕av | 亚洲精品99久久久久中文字幕 | 国产精品9999久久久久仙踪林 | 在线一区观看 | 在线看片日韩 | 91在线影视 | 丁香视频全集免费观看 | 超碰97中文| 麻花豆传媒一二三产区 | 狠狠干2018 | 久久99国产综合精品免费 | 一区二区三区免费在线观看 | 免费高清看电视网站 | 久久官网 | 欧美va电影 | 在线观看黄网 | a级国产片 | 色综合久久精品 | 国产婷婷在线观看 | 国产一级精品在线观看 | 日韩丝袜在线观看 | www.久久色.com | 亚洲综合最新在线 | 在线观看视频在线 | 岛国av在线不卡 | 波多野结衣资源 | 91丨九色丨国产在线观看 | 四虎天堂| 日韩欧美高清视频在线观看 | 免费看一级 | 午夜av免费观看 | 国产中文字幕在线 | 中文字幕av免费在线观看 | 男女免费视频观看 | 国产 视频 久久 | 日韩av影视 | 一区二区三区电影大全 | 国产精品区免费视频 | 亚洲人成人天堂h久久 | 中文乱码视频在线观看 | 久久99精品国产91久久来源 | 98精品国产自产在线观看 | 午夜999 | 国产美女免费看 | 久久久伊人网 | 天天摸日日摸人人看 | 日韩在线二区 | 亚洲精品在线免费看 | 国产精品久久三 | 欧美福利片在线观看 | 五月天激情视频 | 婷婷久久一区二区三区 | 2023年中文无字幕文字 | 欧美成年黄网站色视频 | 久久人操 | 国产精品欧美一区二区 | 免费在线观看一区二区三区 | 波多野结衣理论片 | 国产精品久久久久久妇 | 婷婷色中文网 | 99精品国产成人一区二区 | 97精品视频在线 | 精品在线视频一区 | 欧美黄色特级片 | 中文成人字幕 | 91麻豆精品久久久久久 | 国产视频二 | 亚洲欧美国产精品久久久久 | 午夜电影久久久 | 日韩国产精品久久 | 免费av大全| 日韩中文在线观看 | 成人黄色短片 | 天堂在线一区 | 久久久久国产a免费观看rela | 午夜性福利 | 色中色综合 | 欧美日韩国产精品一区二区三区 | 91视频在线播放视频 | 丝袜美腿av | 亚洲另类视频在线观看 | 国产一区视频在线播放 | 国产精品成人免费一区久久羞羞 | 国产黄色片免费在线观看 | 久久99免费视频 | 91人人澡人人爽 | 成人免费视频网站在线观看 | www.五月激情.com | 九九九免费视频 | 国产视频在线免费 | 182午夜在线观看 | 欧美嫩草影院 | 国产 日韩 欧美 在线 | 一区二区三区四区五区六区 | 国产91免费在线 | 日韩成人免费在线观看 | 96国产精品视频 | 亚洲精品午夜视频 | 日韩在线观看视频在线 | 激情欧美一区二区三区免费看 | 99国内精品久久久久久久 | 久久久久激情 | av不卡中文 | 精品国产福利在线 | 国产精品免费观看在线 | 99精品乱码国产在线观看 | 国产精品久久一区二区三区不卡 | 伊人激情网 | 中文字幕在线免费看 | 在线观看你懂的网站 | 99久久日韩精品免费热麻豆美女 | 欧美日韩一区二区在线观看 | 久久综合色一综合色88 | 久久99深爱久久99精品 | 国产精品视频线看 | 97精品国产97久久久久久免费 | 一区二区三区精品久久久 | 久久综合免费视频影院 | 日本精品中文字幕 | 成人动漫视频在线 | 成年人视频在线免费播放 | 天天干,天天草 | 久久精品视频免费观看 | 少妇超碰在线 | 欧美色噜噜 | 日日摸日日碰 | 日日干日日操 | 97视频网站 | 国产成人亚洲在线观看 | 91精品视频免费看 | 黄网av在线| 黄色a大片 | 国产婷婷精品av在线 | 久久天| 夜色成人av | 日韩精品中文字幕av | 免费亚洲精品视频 | free. 性欧美.com | 中文字幕久久精品亚洲乱码 | 亚洲国产视频在线 | 狠狠色丁香久久婷婷综合_中 | 日韩av在线高清 | 国色天香在线观看 | 中文国产在线观看 | 色七七亚洲影院 | 亚洲综合激情 | 免费看久久| 久久精品综合一区 | 人人干网站 | 在线视频国产区 | 国产精品资源在线 | 黄色av网站在线观看 | av线上看 | 91视频啪| 日韩在线三区 | 黄色精品视频 | 日韩激情综合 | 成人动漫精品一区二区 | 日韩一级成人av | 91精选 | 亚洲一级特黄 | 午夜精品一区二区三区免费视频 | 久久亚洲综合色 | 欧美一区二区精美视频 | 十八岁以下禁止观看的1000个网站 | 在线日韩| 在线v片免费观看视频 | 青草视频免费观看 | 久久精品成人欧美大片古装 | 日韩一区二区三区高清在线观看 | 人人爽人人插 | 91丨九色丨首页 | 日韩av三区| a特级毛片 | 69av视频在线| 天天干天天玩天天操 | 久草在线视频首页 | 中文字幕在线播放日韩 | 国产精品videoxxxx | 亚洲国产大片 | 欧美激情视频久久 | 综合网伊人 | 久草精品视频在线观看 | 亚洲成人国产 | 亚洲日本va午夜在线影院 | 天天爽天天爽夜夜爽 | 久久久久久久久亚洲精品 | 免费高清无人区完整版 | 亚洲精品动漫成人3d无尽在线 | 亚洲精品国产区 | 成人中文字幕在线 | 中文字幕国产一区 | 欧美日韩另类视频 | 久久精品久久精品久久39 | 91在线播放综合 | 欧美成a人片在线观看久 | 毛片网在线观看 | 国产精品va在线观看入 | 国产精品乱码久久 | 久久男人中文字幕资源站 | 日韩av图片 | 91精品一区二区三区蜜桃 | 最近中文字幕大全 | 97超碰超碰久久福利超碰 | 91精品视频播放 | 国内免费的中文字幕 | 四虎在线永久免费观看 | 成在线播放 | 欧美在线一级片 | 综合精品久久 | 欧美另类重口 | 日韩电影黄色 | 日韩av一区在线观看 | 国产精品久久久久久久久久ktv | 热re99久久精品国产99热 | av在线免费观看网站 | 你操综合 | 精品在线看 | 欧美日韩国产一区二 | 日日夜操 | 国产一区免费 | 日韩电影一区二区在线观看 | 日韩爱爱片 | 在线观看亚洲精品视频 | 免费精品视频在线 | 日韩精品视频网站 | 亚洲视频在线观看免费 | 国产成人99av超碰超爽 | 国产精品理论片在线观看 | 日韩理论在线 | 欧美一级在线 | 国产日韩在线视频 | 成人午夜电影免费在线观看 | 久久人人97超碰精品888 | 久久伊人精品一区二区三区 | 超碰在线免费福利 | 午夜精品视频福利 | 18+视频网站链接 | 婷婷久久综合网 | 九九国产精品视频 | 一区二区精品在线视频 | 久久免费国产电影 | 黄色毛片在线观看 | 天天天干夜夜夜操 | 国产一级免费播放 | 国产在线精品一区二区三区 | 91理论电影 | 国产在线中文 | 日日日干 | 久久精品国产成人 | 国产精品久久综合 | 亚洲国产日本 | 中文字幕av专区 | 国产精品18久久久久久久久久久久 | 日韩国产欧美在线播放 | 啪啪凸凸| 91香蕉国产在线观看软件 | 欧美另类交人妖 | 香蕉网在线播放 | 亚洲精品视频在线看 | 亚洲精品国产品国语在线 | 热久久免费视频 | 日韩一级网站 | 亚洲国产大片 | 亚洲va男人天堂 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 91观看视频 | 国产久草在线 | 视频在线观看99 | 色噜噜日韩精品欧美一区二区 | 亚洲精品国产精品国自产在线 | 日日夜夜精品视频天天综合网 | 国产一级不卡毛片 | 亚洲无人区小视频 | 夜夜躁日日躁狠狠久久av | 婷婷在线看 | 久久久穴 | 欧美va电影 | 日韩在线视频播放 | 一区二区三区精品在线视频 | 黄色亚洲在线 | 欧美日韩视频观看 | 毛片永久新网址首页 | 免费观看一级一片 | 青青草国产成人99久久 | 99热手机在线观看 | 色五丁香| 开心激情网五月天 | 色网站在线免费观看 | 久久九九影视网 | 国产91学生| 色国产精品一区在线观看 | 欧美一级免费片 | 亚洲国产日韩欧美在线 | 亚洲伦理中文字幕 | 色av男人的天堂免费在线 | 亚洲精品视频在线观看网站 | 成人久久亚洲 | 久久无码精品一区二区三区 | 日韩精品黄 | 91成年人在线观看 | 久久久久亚洲精品 | 欧美另类v | 激情综合五月婷婷 | 九月婷婷人人澡人人添人人爽 | 中文字幕有码在线 | 五月色丁香 | 天天干天天插伊人网 | 国产中文字幕91 | 亚洲国产中文在线 | 激情综合亚洲精品 | 午夜av网站 | 中文字幕第 | 久久久国产精品亚洲一区 | 日本护士撒尿xxxx18 | 一级黄色免费 | 国产一级片久久 | 黄色精品国产 | 国产视频在 | 91精品啪在线观看国产线免费 | aaa免费毛片 | 超碰公开在线 | 国产aa精品 | 免费福利视频网 | 日本特黄特色aaa大片免费 | 欧美综合在线视频 | 国产中年夫妇高潮精品视频 | 国产护士av | 日韩欧美一区视频 | 97免费在线观看视频 | 久久你懂的 | 色精品视频 | 97精品视频在线 | 亚洲午夜精品一区二区三区电影院 | 午夜黄色影院 | 久草| 成人a在线观看 | 欧美91精品久久久久国产性生爱 | 2019中文字幕网站 | 中文字幕日韩一区二区三区不卡 | 国产黄色片一级三级 | 美女网站在线播放 | 国产亚洲精品中文字幕 | 色综合激情网 | 亚洲色图22p | 国产免费叼嘿网站免费 | 色丁香婷婷 | 97超碰资源 | 91欧美视频网站 | 91精品免费视频 | 狠狠色香婷婷久久亚洲精品 | 成人中心免费视频 | 中文字幕在线观看第一区 | 三上悠亚一区二区在线观看 | 国产精品亚州 | 99视频在线看 | 美女网站视频一区 | 在线观看网站av | 精品国产伦一区二区三区观看方式 | 成人免费看电影 | 日韩成人精品一区二区 | 欧美污污网站 | 国产99久久久国产精品免费二区 | 精品视频一区在线观看 | 日韩精品影视 | 99精品久久久久 | 国产原创av在线 | 亚洲美女免费精品视频在线观看 | 啪啪免费观看网站 | av黄免费看 | 在线日本看片免费人成视久网 | av在线播放快速免费阴 | 婷婷在线观看视频 | 91亚色在线观看 | 久久久受www免费人成 | 国产成人精品久久久久 | 性色av一区二区三区在线观看 | 日本性视频 | 国产中文字幕在线播放 | 521色香蕉网站在线观看 | 中文字幕在线观看播放 | 九九九九九国产 | 亚洲精品网站在线 | 91av视频网站 | 四虎8848免费高清在线观看 | 四虎www com | 欧美激情精品一区 | 久久夜av | 亚洲v欧美v国产v在线观看 | 蜜臀精品久久久久久蜜臀 | 天天干夜夜干 | 天天操天天射天天操 | 久久影院一区 | 久久精品免费 | 在线中文字幕播放 | 国产视频二区三区 | 91网免费看 | 五月天色站 | 国产不卡一二三区 | 五月婷亚洲| 亚洲国产成人久久 | 婷婷激情av | 麻豆果冻剧传媒在线播放 | 亚洲精品免费在线视频 | 99c视频在线 | 在线 日韩 av | 亚洲视频h | 久久国产成人午夜av影院潦草 | 中文字幕在线乱 | 玖玖在线资源 | 国产一级片视频 | 日韩高清一区二区 | 日韩一区二区免费在线观看 | 香蕉视频国产在线观看 | 国产精品亚洲综合久久 | 四虎伊人| 91成人免费在线视频 | 国产精品成人a免费观看 | 91大片成人网 | 久久亚洲在线 | 黄色特级一级片 | 久久国产精品第一页 | 国产精品中文在线 | 深夜国产福利 | 久久性生活片 | 中文字幕久久精品 | av成人免费在线 | 亚洲视频在线免费看 | 狠狠亚洲| 国产美女在线精品免费观看 | av.com在线| 国产精品乱码高清在线看 | 欧美 日韩 视频 | 中文字幕一区二区在线播放 | 久久综合久久综合久久 | 国产精品久久久久久久久久 | 99人久久精品视频最新地址 | 园产精品久久久久久久7电影 | 午夜精品久久久久久久爽 | 日韩高清精品一区二区 | 人人爽人人av | 国产青青青 | 中文字幕在线观看一区二区三区 | 521色香蕉网站在线观看 | 天天草夜夜 | 国产一级免费播放 | 国产精品久久久久久久久久 | 欧美一二三在线 | 国产精品久久99综合免费观看尤物 | 国产精品国产三级国产不产一地 | 免费色视频在线 | 欧美日韩国产精品一区二区亚洲 | 婷婷在线播放 | 国产精品入口a级 | 日韩久久激情 | 在线国产一区二区三区 | 午夜三级福利 | 久久精品亚洲精品国产欧美 | 免费观看www视频 | 日本大尺码专区mv | 96精品视频 | 免费91麻豆精品国产自产在线观看 | 国产精品久久久久免费 | 99精品视频在线免费观看 | 99久久精品无码一区二区毛片 | 不卡视频在线 | 美女黄濒 | 香蕉91视频| 免费看久久 | 婷婷去俺也去六月色 | 亚洲黄色成人网 | 色姑娘综合网 | 天天干天天做天天操 | av视屏在线| 在线看v片成人 | 9免费视频 | 免费av在 | www国产精品com | 亚洲成年人在线播放 | 中文字幕在线中文 | 国语精品免费视频 | 亚洲精品视 | 久久99视频免费观看 | 国产不卡片 | 国产麻豆精品传媒av国产下载 | 四虎免费av | 麻豆视频免费入口 | 97在线观看免费观看 | 国产视频精品久久 | 日韩成人精品一区二区三区 | 一区二区中文字幕在线观看 | 国产精品久久久久久吹潮天美传媒 | 黄色三级免费观看 | 高清不卡一区二区在线 | 久久综合给合久久狠狠色 | 国产明星视频三级a三级点| 91中文字幕在线视频 | 国产精品二区在线观看 | 国产一级在线看 | 蜜臀91丨九色丨蝌蚪老版 | 最近中文字幕久久 | 成人av影院在线观看 | 国产美女网站在线观看 | 在线亚洲人成电影网站色www | 中国精品一区二区 | 国产精品久久久久久久7电影 | 好看av在线 | 人人爽人人射 | 久久人人爽人人爽人人片av软件 | 国产精品久久久精品 | 成年人网站免费观看 | 久久精品波多野结衣 | 人人看人人做人人澡 | 亚洲激情婷婷 | 韩国av永久免费 | 免费三级骚 | 成人影音在线 | 爱情影院aqdy鲁丝片二区 | 在线播放 日韩专区 | 一级片色播影院 | 久久精品视频在线播放 | 特级毛片网 | 日日操夜夜操狠狠操 | 亚洲三级黄 | 天天玩天天干天天操 | 成年人视频在线免费观看 | 亚洲精品视频在 | 日日操夜夜操狠狠操 | av电影不卡在线 | 天天综合人人 | 精品一区免费 | 久久草精品| 日韩欧美在线播放 | 97超在线 | 最近中文字幕mv免费高清在线 | 91中文字幕在线 | 国产精品一区二区三区在线 | 国产精品一区二区三区在线播放 | h视频日本 | 国产一区在线免费 | 一本一本久久aa综合精品 | 国产香蕉在线 | 国产不卡在线 | 国产传媒一区在线 | 伊人午夜视频 | 日韩在线视频在线观看 | 日韩性片 | 粉嫩aⅴ一区二区三区 | 一本一道久久a久久综合蜜桃 | 中文视频在线 | 91大神电影 | 麻豆一区在线观看 | 最近久乱中文字幕 | 久久亚洲人 | 亚洲黄色软件 | 久久精品女人毛片国产 | 国产成人一区二区三区免费看 | 四虎国产精品免费观看视频优播 | 精品国产一区二区三区久久久蜜臀 | 日韩三级视频在线看 | 欧美经典久久 | 中文字幕中文字幕在线中文字幕三区 | 国产999精品久久久影片官网 | 成人午夜免费剧场 | 国产三级午夜理伦三级 | 婷婷午夜| 天堂av在线免费 | 91久久精| 中文字幕有码在线 | 国产成人高清 | 不卡av电影在线观看 | 国产精品一区二区av麻豆 | 国产在线资源 | 人人揉人人揉人人揉人人揉97 | 久久99久久99免费视频 | www黄| 日韩免费在线播放 | 日韩欧美在线综合网 | 精品国产99 | 91精品久久久久久粉嫩 | 五月婷婷综合激情网 | 91网在线看 | 国产一区在线视频播放 | 精品婷婷| 日韩一区二区免费播放 | 中文字幕网站 | 色停停五月天 | 日韩精品国产一区 | 蜜臀久久99精品久久久无需会员 | 欧美日韩中文另类 | 亚洲一区网 | 中文字幕精品一区二区三区电影 | 亚洲成人影音 | 亚洲国产中文字幕在线视频综合 | 伊人久久婷婷 | 午夜在线免费观看视频 | 六月丁香六月婷婷 | 中国一级片免费看 | 日韩av黄 | 国产精品99久久99久久久二8 | 亚洲视频在线视频 | 亚洲欧洲xxxx | www色| 国产二区视频在线观看 | 久久精品波多野结衣 | 日韩欧美一区二区三区在线 | 91丨九色丨国产女 | 久久精品之 | 午夜色影院| 在线黄av| 日本精品视频在线观看 | 99在线观看免费视频精品观看 | 日本丶国产丶欧美色综合 | 久草视频精品 | 在线 影视 一区 | 超碰在线最新地址 | 福利一区二区在线 | 成人91免费视频 | 国产中文字幕91 | 国产人成免费视频 | 亚洲精品视频免费看 | 精品国产日本 | 国产亚洲精品日韩在线tv黄 | 久久久精品国产一区二区三区 | 国产一区二区成人 | 久久精品视频在线免费观看 | 蜜臀av免费一区二区三区 | 久久精品欧美视频 | 夜夜干夜夜 | 久久高清av| 美女视频黄的免费的 | 国产成人资源 | 亚洲日韩欧美一区二区在线 | 日韩欧美电影在线 | 国产精品 视频 | 国产精品一区二区三区久久 | 成 人 黄 色 免费播放 | 91.精品高清在线观看 | 色在线高清| 国产91亚洲精品 | 中文在线字幕免费观看 | 久久精品成人欧美大片古装 | 欧美另类z0zx| 久久全国免费视频 | av色综合| 天天艹天天干天天 | 久久久免费在线观看 | 日本精品视频在线观看 | 国产精品18久久久久vr手机版特色 | 国产美女精品视频 | 日韩高清在线看 | 久久99热国产 | 国产精品久久久久久久久久久久午夜 | 最新日韩在线观看视频 | 欧美专区国产专区 | 中文字幕在线视频一区 | 一区二区在线不卡 | 91最新在线 | 8090yy亚洲精品久久 | 一区二区久久久久 | 韩国一区二区三区视频 | 97在线公开视频 | 黄色亚洲大片免费在线观看 | 国产69久久久| 久久精品爱爱视频 | 亚洲精品久久久久中文字幕二区 | 夜色在线资源 | 精品一区二区免费视频 | 麻豆久久一区 | 国产精品短视频 | 亚洲va综合va国产va中文 | 国产很黄很色的视频 | 欧美日本不卡视频 | 人人干人人添 | 一区二区观看 | 亚洲国产精品视频 | 久草91视频 | 日韩电影一区二区三区 | 免费高清在线视频一区· | 一级黄色免费网站 | 免费a视频在线观看 | 玖玖玖精品 | 91精品久久香蕉国产线看观看 | 久久99久久99免费视频 | 国产xvideos免费视频播放 | 国产aaa免费视频 | 亚洲午夜精品一区 | 91欧美精品 | 欧美日韩精品网站 | 国产精品第7页 | 狠狠色噜噜狠狠狠 | 96亚洲精品久久久蜜桃 | 视频成人永久免费视频 | 美女网站在线看 | 国产小视频在线 | 欧美日韩调教 | 免费色av| 日韩久久电影 | 国产精品免费在线播放 | 国产精品片 | 91麻豆精品国产91久久久久久 | 玖玖视频 | 五月天亚洲综合 | 欧美一级乱黄 | 黄色成人91 | 久久视精品| 国产片网站 | 国产精品欧美日韩 | 欧美日韩一区二区三区在线免费观看 | 成人av免费播放 | 欧美精品三级在线观看 | 99精品免费久久久久久久久 | 国产麻豆视频网站 | 婷婷激情综合 | 在线观看日韩 | 日韩乱码中文字幕 | 国产精品精品久久久 | 日韩三级视频在线看 | 激情婷婷在线观看 | 精品亚洲欧美一区 | 日韩a在线看 | 国产久草在线观看 | 依人成人综合网 | 久久不射影院 | 又黄又刺激又爽的视频 | 成人av日韩| 91av在线免费看 | 日日操天天操夜夜操 | 久草在线免费电影 | 国产99久久精品一区二区300 | 亚洲国产中文在线 | 国产一区高清在线 | 国产亚洲成人网 | 婷婷去俺也去六月色 | 国产精品18久久久久久久网站 | 久草精品网| 天天干天天干天天操 | 亚洲专区欧美专区 | 国产午夜精品一区二区三区在线观看 | 特级毛片aaa | 911国产在线观看 | 在线观看 国产 | 中文字幕在线看视频 | 日韩中文字幕a | 日韩高清毛片 | 玖玖色在线观看 | 成人综合婷婷国产精品久久免费 | 99精品久久久| 69精品在线 | 一本一本久久a久久 | 国产精品高清在线观看 | 欧美精品亚洲精品日韩精品 | 国精产品999国精产品视频 | 激情综合国产 | 欧美二区三区91 | 在线视频欧美亚洲 | 亚洲三级国产 | 毛片网在线 | 91精品国产乱码 | 成人h视频在线 | 成人午夜av电影 | 欧美国产大片 | 丁香婷婷综合激情 | 日韩区视频 | 国产精品欧美久久久久天天影视 | 麻豆传媒电影在线观看 | 国产美女网站在线观看 | 婷婷在线五月 | 国产一区二区三区免费视频 | a级国产乱理论片在线观看 伊人宗合网 | 日韩中文在线播放 | 国产一区二区观看 | 久草视频在线免费播放 | 91av小视频| 亚洲国产午夜视频 | 韩国av免费 | 久草在线视频国产 | 99久久999久久久精玫瑰 | 久久精品一区二 | 6080yy午夜一二三区久久 | 日韩av在线资源 | 婷婷久久国产 | 色老板在线 | 婷婷久久五月天 | 一级α片 | 成人国产综合 | 国产一区二区在线观看免费 | 日本中文字幕在线 | 天天鲁天天干天天射 | 久久国产系列 | 99久久日韩精品视频免费在线观看 | 国产精品久久久久免费观看 | 久久人人爽av | 夜夜夜夜猛噜噜噜噜噜初音未来 | 丁香五月网久久综合 | 99精品在线免费视频 | 天干啦夜天干天干在线线 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久综合偷偷噜噜噜色 | av不卡在线看| 免费看成年人 | 992tv在线成人免费观看 | 国产人在线成免费视频 | 在线观看岛国片 | 久久久久女人精品毛片 | 欧美二区三区91 | 国产伦精品一区二区三区高清 | 久久一精品 | 亚洲成人在线免费 | 在线小视频国产 | 久久久久久国产精品久久 | 2000xxx影视| av三级av| 欧美日韩99 | 五月花激情 | 欧美精品做受xxx性少妇 | 欧美韩国在线 | 一区二区三区在线免费观看 |