![黑馬6天hadoop培訓(xùn)hbase筆記第六天_第1頁(yè)](http://file4.renrendoc.com/view/490d1b9c8fb56fcec58b59743f1500be/490d1b9c8fb56fcec58b59743f1500be1.gif)
![黑馬6天hadoop培訓(xùn)hbase筆記第六天_第2頁(yè)](http://file4.renrendoc.com/view/490d1b9c8fb56fcec58b59743f1500be/490d1b9c8fb56fcec58b59743f1500be2.gif)
![黑馬6天hadoop培訓(xùn)hbase筆記第六天_第3頁(yè)](http://file4.renrendoc.com/view/490d1b9c8fb56fcec58b59743f1500be/490d1b9c8fb56fcec58b59743f1500be3.gif)
![黑馬6天hadoop培訓(xùn)hbase筆記第六天_第4頁(yè)](http://file4.renrendoc.com/view/490d1b9c8fb56fcec58b59743f1500be/490d1b9c8fb56fcec58b59743f1500be4.gif)
![黑馬6天hadoop培訓(xùn)hbase筆記第六天_第5頁(yè)](http://file4.renrendoc.com/view/490d1b9c8fb56fcec58b59743f1500be/490d1b9c8fb56fcec58b59743f1500be5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京傳智播客教育 北京傳智播客教育 Hadoop深入淺出北京傳智播客教育 課程安排HBASE基礎(chǔ)知識(shí)*HBASE的偽分布的搭建*HBASE Shell*HBASE的Java客戶端*-加深拓展-HBASE的集群的搭建*HBASE的表設(shè)計(jì)*HBASE的底層存儲(chǔ)模型*北京傳智播客教育 HBase簡(jiǎn)介HBase Hadoop Database,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng),利用Hadoop MapReduce來(lái)處理HBase中的海量數(shù)據(jù),利用Zoo
2、keeper作為協(xié)調(diào)工具。北京傳智播客教育 思考:怎樣存儲(chǔ)物流信息運(yùn)單號(hào):7283118588912014-01-07 10:09:25上海已發(fā)貨2014-01-07 18:27:32上海航空部已收件2014-01-07 20:25:38快件離開(kāi)上海航空部已發(fā)往北京2014-01-09 08:27:14北京回龍觀派件中2014-01-09 12:37:37北京回龍觀已簽收北京傳智播客教育 主鍵:Row Key 主鍵是用來(lái)檢索記錄的主鍵,訪問(wèn)hbase table中的行,只有三種方式通過(guò)單個(gè)row key訪問(wèn)通過(guò)row key的range全表掃描北京傳智播客教育 列族:Column Family
3、列族在創(chuàng)建表的時(shí)候聲明,一個(gè)列族可以包含多個(gè)列,列中的數(shù)據(jù)都是以二進(jìn)制形式存在,沒(méi)有數(shù)據(jù)類(lèi)型。北京傳智播客教育 時(shí)間戳:timestampHBase中通過(guò)row和columns確定的為一個(gè)存貯單元稱為cell。每個(gè) cell都保存著同一份數(shù)據(jù)的多個(gè)版本。版本通過(guò)時(shí)間戳來(lái)索引北京傳智播客教育 HBASE基礎(chǔ)知識(shí)物理存儲(chǔ) Table 在行的方向上分割為多個(gè)HRegion,一個(gè)region由startkey,endkey)表示參數(shù)hbase.hregion.max.filesize北京傳智播客教育 HBASE基礎(chǔ)知識(shí)架構(gòu)體系Client 包含訪問(wèn)hbase 的接口,client 維護(hù)著一些cache
4、 來(lái)加快對(duì)hbase 的訪問(wèn),比如regione 的位置信息Zookeeper 保證任何時(shí)候,集群中只有一個(gè)running master 存貯所有Region 的尋址入口 實(shí)時(shí)監(jiān)控Region Server 的狀態(tài),將Region server 的上線和下線信息,實(shí)時(shí)通知給Master 存儲(chǔ)Hbase 的schema,包括有哪些table,每個(gè)table 有哪些column familyMaster 可以啟動(dòng)多個(gè)HMaster,通過(guò)Zookeeper的Master Election機(jī)制保證總有一個(gè)Master運(yùn)行為Region server 分配region負(fù)責(zé)region server 的負(fù)
5、載均衡發(fā)現(xiàn)失效的region server 并重新分配其上的region北京傳智播客教育 Region Server維護(hù)Master 分配給它的region,處理對(duì)這些region 的IO 請(qǐng)求負(fù)責(zé)切分在運(yùn)行過(guò)程中變得過(guò)大的region可以看出,client 訪問(wèn)hbase 上數(shù)據(jù)的過(guò)程并不需要master 參與,尋址訪問(wèn)先zookeeper再regionserver,數(shù)據(jù)讀寫(xiě)訪問(wèn)regioneserver。HRegionServer主要負(fù)責(zé)響應(yīng)用戶I/O請(qǐng)求,向HDFS文件系統(tǒng)中讀寫(xiě)數(shù)據(jù),是HBase中最核心的模塊。北京傳智播客教育 系統(tǒng)架構(gòu) 北京傳智播客教育 HBASE與相關(guān)軟件hadoo
6、p.1.1.2hbase-0.94.2-security.tar.gzJDK6RHEL6.3前提條件:本機(jī)或集群環(huán)境下hadoop.1.1.2已經(jīng)安裝成功北京傳智播客教育 本地偽分布模式搭建(一)把hbase-0.94.2-security.tar.gz復(fù)制到/usr/local解壓hbase-0.94.2-security.tar.gz與重命名#cd /usr/local#tar -zxvf hbase-0.94.2-security.tar.gz#mv hbase-0.94.2-security hbase修改/etc/profile文件。#vi /etc/profile增加 export
7、 HBASE_HOME=/home/hbase修改 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin保存退出#source /etc/profile北京傳智播客教育 本地偽分布模式搭建(二)修改$HBASE_HOME/conf/hbase-env.sh文件 export JAVA_HOME=/usr/local/jdkexport HBASE_MANAGES_ZK=true保存后退出修改$HBASE_HOME/conf/hbase-site.xml hbase.rootdir hdfs:/hadoop0:9000
8、/hbase hbase.cluster.distributed true hbase.zookeeper.quorum hadoop0 dfs.replication 1注意:$HBASE_HOME/conf/hbase-site.xml的hbase.rootdir的主機(jī)和端口號(hào)與$HADOOP_HOME/conf/core-site.xml的的主機(jī)和端口號(hào)一致北京傳智播客教育 本地偽分布模式搭建(三)在$HBASE_HOME/conf/regionservers文件增加localhost保存退出先啟動(dòng)Hadoop,后啟動(dòng)HBASE#cd $HBASE_HOME
9、/bin#./start-hbase.sh停止#cd $HBASE_HOME/bin#./stop-hbase.sh北京傳智播客教育 本地偽分布模式搭建(四)#jps查看hdfs目錄,你會(huì)發(fā)現(xiàn)在根目錄下多了一個(gè)hbase的目錄#hadoop fs -ls /Web Console 北京傳智播客教育 HBASE Shellhbase提供了一個(gè)shell的終端給用戶交互名稱命令表達(dá)式創(chuàng)建表create 表名稱, 列族名稱1,列族名稱2,列族名稱N添加記錄 put 表名稱, 行名稱, 列名稱:, 值查看記錄get 表名稱, 行名稱查看表中的記錄總數(shù)count 表名稱刪除記錄delete 表名 ,行名
10、稱 , 列名稱刪除一張表先要屏蔽該表,才能對(duì)該表進(jìn)行刪除,第一步 disable 表名稱 第二步 drop 表名稱查看所有記錄scan 表名稱 查看某個(gè)表某個(gè)列中所有數(shù)據(jù)scan 表名稱 , COLUMNS=列族名稱:列名稱更新記錄 就是重寫(xiě)一遍進(jìn)行覆蓋#$HBASE_HOME/bin/hbase shell 北京傳智播客教育 HBASE Shell的DDL操作創(chuàng)建表create users,user_id,address,info表users,有三個(gè)列族user_id,address,info列出全部表list 得到表的描述describe users創(chuàng)建表create users_tmp,
11、user_id,address,info刪除表disable users_tmpdrop users_tmp#$HBASE_HOME/bin/hbase shell quit exists usersis_enabled usersis_disabled users北京傳智播客教育 HBASE Shell的DML操作添加記錄獲取一條記錄1.取得一個(gè)id的所有數(shù)據(jù)get users,xiaoming2.獲取一個(gè)id,一個(gè)列族的所有數(shù)據(jù)get users,xiaoming,info3.獲取一個(gè)id,一個(gè)列族中一個(gè)列的所有數(shù)據(jù)get users,xiaoming,info:ageput users,
12、xiaoming,info:age,24;put users,xiaoming,info:birthday,1987-06-17;put users,xiaoming, pany,alibaba;put users,xiaoming,address:contry,china;put users,xiaoming,address:province,zhejiang;put users,xiaoming,address:city,hangzhou;put users,zhangyifei,info:birthday,1987-4-17;put users,zhangyifei,info:favor
13、ite,movie;put users,zhangyifei, pany,alibaba;put users,zhangyifei,address:contry,china;put users,zhangyifei,address:province,guangdong;put users,zhangyifei,address:city,jieyang;put users,zhangyifei,address:town,xianqiao;北京傳智播客教育 HBASE Shell的DML操作更新記錄put users,xiaoming,info:age ,29get users,xiaoming,
14、info:ageput users,xiaoming,info:age ,30get users,xiaoming,info:age獲取單元格數(shù)據(jù)的版本數(shù)據(jù)get users,xiaoming,COLUMN=info:age,VERSIONS=1get users,xiaoming,COLUMN=info:age,VERSIONS=2get users,xiaoming,COLUMN=info:age,VERSIONS=3獲取單元格數(shù)據(jù)的某個(gè)版本數(shù)據(jù)get users,xiaoming,COLUMN=info:age,TIMESTAMP=1364874937056全表掃描scan users北
15、京傳智播客教育 HBASE Shell的DML操作刪除xiaoming值的info:age字段delete users,xiaoming,info:ageget users,xiaoming刪除整行deleteall users,xiaoming統(tǒng)計(jì)表的行數(shù)count users清空表truncate users北京傳智播客教育 HBASE基礎(chǔ)知識(shí)HBase中有兩張?zhí)厥獾腡able,-ROOT-和.META.-ROOT- :記錄了.META.表的Region信息,-ROOT-只有一個(gè)region.META. :記錄了用戶創(chuàng)建的表的Region信息,.META.可以有多個(gè)regoin Zooke
16、eper中記錄了-ROOT-表的locationClient訪問(wèn)用戶數(shù)據(jù)之前需要首先訪問(wèn)zookeeper,然后訪問(wèn)-ROOT-表,接著訪問(wèn).META.表,最后才能找到用戶數(shù)據(jù)的位置去訪問(wèn)北京傳智播客教育 HBASE的Java_API(一)/hbase操作必備 private static Configuration getConfiguration() Configuration conf = HBaseConfiguration.create();conf.set(hbase.rootdir, hdfs:/hadoop0:9000/hbase);/使用eclipse時(shí)必須添加這個(gè),否則無(wú)法
17、定位conf.set(hbase.zookeeper.quorum, hadoop0);return conf;北京傳智播客教育 HBASE的Java_API(二)/創(chuàng)建一張表public static void create(String tableName, String columnFamily) throws IOExceptionHBaseAdmin admin = new HBaseAdmin(getConfiguration();if (admin.tableExists(tableName) System.out.println(table exists!);elseHTabl
18、eDescriptor tableDesc = new HTableDescriptor(tableName);tableDesc.addFamily(new HColumnDescriptor(columnFamily);admin.createTable(tableDesc);System.out.println(create table success!);北京傳智播客教育 HBASE的Java_API(三)/添加一條記錄public static void put(String tableName, String row, String columnFamily, String col
19、umn, String data) throws IOExceptionHTable table = new HTable(getConfiguration(), tableName);Put p1 = new Put(Bytes.toBytes(row);p1.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(data);table.put(p1);System.out.println(put+row+,+columnFamily+:+column+,+data+);北京傳智播客教育 HBASE的Jav
20、a_API(四)/讀取一條記錄public static void get(String tableName, String row) throws IOExceptionHTable table = new HTable(getConfiguration(), tableName);Get get = new Get(Bytes.toBytes(row);Result result = table.get(get);System.out.println(Get: +result);北京傳智播客教育 HBASE的Java_API(五)/顯示所有數(shù)據(jù)public static void scan
21、(String tableName) throws IOExceptionHTable table = new HTable(getConfiguration(), tableName);Scan scan = new Scan();ResultScanner scanner = table.getScanner(scan);for (Result result : scanner) System.out.println(Scan: +result);北京傳智播客教育 HBASE的Java_API(六)/刪除表public static void delete(String tableName
22、) throws IOExceptionHBaseAdmin admin = new HBaseAdmin(getConfiguration();if(admin.tableExists(tableName)try admin.disableTable(tableName); admin.deleteTable(tableName); catch (IOException e) e.printStackTrace(); System.out.println(Delete +tableName+ 失敗);System.out.println(Delete +tableName+ 成功);北京傳智
23、播客教育 HBASE的Java_API(七)public static void main(String args) throws IOException String tableName=hbase_tb;String columnFamily=cf;HBaseTestCase.create(tableName, columnFamily);HBaseTestCase.put(tableName, row1, columnFamily, cl1, data);HBaseTestCase.get(tableName, row1);HBaseTestCase.scan(tableName);HB
24、aseTestCase.delete(tableName);北京傳智播客教育 練習(xí)詳單入庫(kù)HBASE表定義為:create wlan_log, cfRowKey設(shè)計(jì):msisdn:日期時(shí)間串(yyyyMMddHHmmss)源文件數(shù)據(jù)增加一個(gè)字段rowkey北京傳智播客教育 HBASE結(jié)合MapReduce批量導(dǎo)入static class BatchImportMapper extends MapperSimpleDateFormat dateformat1=new SimpleDateFormat(yyyyMMddHHmmss);Text v2 = new Text();protected v
25、oid map(LongWritable key, Text value, Context context) throws java.io.IOException ,InterruptedException final String splited = value.toString().split(t);try final Date date = new Date(Long.parseLong(splited0.trim();final String dateFormat = dateformat1.format(date);String rowKey = splited1+:+dateFor
26、mat;v2.set(rowKey+t+value.toString();context.write(key, v2); catch (NumberFormatException e) final Counter counter = context.getCounter(BatchImport, ErrorFormat);counter.increment(1L);System.out.println(出錯(cuò)了+splited0+ +e.getMessage();北京傳智播客教育 HBASE結(jié)合MapReduce批量導(dǎo)入static class BatchImportReducer extend
27、s TableReducerprotected void reduce(LongWritable key, java.lang.Iterable values, Context context) throws java.io.IOException ,InterruptedException for (Text text : values) final String splited = text.toString().split(t);final Put put = new Put(Bytes.toBytes(splited0);put.add(Bytes.toBytes(cf), Bytes
28、.toBytes(date), Bytes.toBytes(splited1);/省略其他字段,調(diào)用put.add(.)即可context.write(NullWritable.get(), put);北京傳智播客教育 HBASE結(jié)合MapReduce批量導(dǎo)入public static void main(String args) throws Exception final Configuration configuration = new Configuration();/設(shè)置zookeeperconfiguration.set(hbase.zookeeper.quorum, hadoop
29、0);/設(shè)置hbase表名稱configuration.set(TableOutputFormat.OUTPUT_TABLE, wlan_log);/將該值改大,防止hbase超時(shí)退出configuration.set(dfs.socket.timeout, 180000);final Job job = new Job(configuration, HBaseBatchImport);job.setMapperClass(BatchImportMapper.class);job.setReducerClass(BatchImportReducer.class);/設(shè)置map的輸出,不設(shè)置reduce的輸出類(lèi)型job.setMapOutputKeyClass(LongWritable.class);job.setMapOutputValueClass(Text.class);job.setInputFormatClass(TextInputFormat.class);/不再設(shè)置輸出路徑,而是設(shè)置輸出格式類(lèi)型job.setOutputFormatClass(TableO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年其他計(jì)算機(jī)信息服務(wù)項(xiàng)目申請(qǐng)報(bào)告模稿
- 2025年多孔微孔陶瓷材料項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年企業(yè)高校實(shí)習(xí)生三方協(xié)議
- 2025年人才共享協(xié)議標(biāo)準(zhǔn)化文本
- 2025年合作共管協(xié)議示范文本
- 2025年借款合同范本速覽
- 2025年個(gè)人公積金貸款合同調(diào)整全覽
- 2025年專(zhuān)利權(quán)使用和解協(xié)議指南
- 2025年養(yǎng)老院入住協(xié)議標(biāo)準(zhǔn)
- 2025年供電設(shè)施更新改造協(xié)議
- 2025江蘇常州溧陽(yáng)市部分機(jī)關(guān)事業(yè)單位招聘編外人員78人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年教科版科學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 2024年度體育賽事贊助合同:運(yùn)動(dòng)員代言與贊助權(quán)益2篇
- 智研咨詢發(fā)布:2024年中國(guó)新疫苗行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來(lái)前景分析報(bào)告
- 2025屆西藏林芝一中高三第二次診斷性檢測(cè)英語(yǔ)試卷含解析
- 中國(guó)傳統(tǒng)文化非遺文化中國(guó)剪紙介紹2
- 藥企銷(xiāo)售總經(jīng)理競(jìng)聘
- 開(kāi)封市第一屆職業(yè)技能大賽健康照護(hù)項(xiàng)目技術(shù)文件(國(guó)賽)
- 飲酒與糖尿病
- 大學(xué)體育與健康 教案 保?。ò硕五\)4
- 非遺資源數(shù)據(jù)庫(kù)建設(shè)
評(píng)論
0/150
提交評(píng)論