




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
FreeRCH大數(shù)據(jù)一體化平臺
開
發(fā)
框
架
目錄
第一章大快大數(shù)據(jù)一體化開發(fā)框架概述...............................4
1.1什么是大數(shù)據(jù)................................................4
L2開發(fā)大數(shù)據(jù)需要什么技術(shù)......................................5
1.3Hadoop的由來...............................................5
1.4什么是大數(shù)據(jù)一體化開發(fā)框架..................................6
L5框架的構(gòu)成模塊..............................................6
1.6大快大數(shù)據(jù)平臺..............................................7
L7大數(shù)據(jù)相對于傳統(tǒng)數(shù)據(jù)處理方式的優(yōu)勢與不同...................11
1.8大數(shù)據(jù)相對傳統(tǒng)關(guān)系型數(shù)據(jù)庫的不足...........................11
1.9組件集成情況列表..........................................12
第二章數(shù)據(jù)源與SQL引擎..........................................16
2.1關(guān)系型數(shù)據(jù)庫(SQL數(shù)據(jù)庫)與大數(shù)據(jù)平臺之間的數(shù)據(jù)導(dǎo)入導(dǎo)出....16
2.2本地文件與大數(shù)據(jù)平臺之間導(dǎo)入導(dǎo)出..........................19
2.3SQL引擎..................................................22
3.1創(chuàng)建用戶..................................................27
3.2修改用戶密碼..............................................28
3.3獲得用戶ID(corlD).......................................28
3,4創(chuàng)建任務(wù)...................................................29
3.5獲得任務(wù)ID(taskID)......................................31
3.6啟動任務(wù)...................................................32
3.7停止任務(wù)...................................................33
3.8刪除任務(wù)...................................................33
3.9獲得某任務(wù)采集數(shù)量.........................................34
3.10獲得爬蟲采集數(shù)據(jù)(json格式).............................34
3.11獲得爬蟲采集元素數(shù)據(jù)(json格式).........................35
3.12獲得爬蟲采集元素數(shù)據(jù)(txt格式)..........................36
第四章數(shù)據(jù)處理..................................................38
4.1數(shù)據(jù)清洗..................................................38
4.2數(shù)據(jù)統(tǒng)計..................................................43
4.3數(shù)據(jù)分析..................................................46
4.4數(shù)據(jù)分析場景中的算法應(yīng)用..................................51
第五章搜索引擎..................................................53
5.1數(shù)據(jù)導(dǎo)入搜索引擎...........................................53
5.2搜索引擎導(dǎo)出到本地文件夾..................................56
5.3實時數(shù)據(jù)導(dǎo)入到搜索引擎及HIVE..............................58
5.4用戶搜索..................................................61
第六章自然語言處理(NLP).......................................68
6.1基本處理..................................................68
6.2文本分類(相似性)處理....................................74
第七章機器學(xué)習(xí)算法庫............................................78
7.1LR(邏輯回歸)............................................78
7.2RandomForest(隨機森林)...................................80
7.3SVM(支持向量機)...........................................82
7.4PCA(主成分分析)...........................................84
7.5K-means(K均值)............................................86
7.6GaussianMixtures(高斯混合模型)..........................88
7.7NaiveBayes(樸素貝葉斯)....................................89
7.8FP-growth(FP-growth).......................................91
7.9ALS(交替最小二乘法的協(xié)同過濾算法).........................93
第一章大快大數(shù)據(jù)一體化開發(fā)框架概述
眾所周知,我們今天的大數(shù)據(jù)技術(shù)源自搜索引擎。人類進入21世紀(jì)后,隨
著互聯(lián)網(wǎng)的爆發(fā),數(shù)據(jù)呈現(xiàn)出爆炸式的增長。谷歌的爬蟲程序每天下載的網(wǎng)頁超
過1億個(2000年數(shù)據(jù)),這直接推動了海量數(shù)據(jù)處理技術(shù)的發(fā)展。
谷歌公司隨之提出了大表、分布式文件系統(tǒng)和分布式計算的三大技術(shù)構(gòu)架,
解決了海量數(shù)據(jù)處理的問題。谷歌公司隨即將設(shè)計思路開源,發(fā)表了具有劃時代
意義的三篇論文,很快,根據(jù)谷歌的設(shè)計思路的開源框架就出現(xiàn)了,這也是今天
大家熟知的HADOOP、MAPREDUCE和許多NOSQL系統(tǒng)。這三大技術(shù)也是整個大數(shù)據(jù)
技術(shù)的核心基礎(chǔ)。
使用搜索引擎的技術(shù),來處理海量數(shù)據(jù),成為一種新的商業(yè)價值,我們將其
稱之為大數(shù)據(jù)。因此,有人這樣形容:從應(yīng)用上來說,搜索引擎是一種大數(shù)據(jù)應(yīng)
用,但是從技術(shù)上來說,大數(shù)據(jù)技術(shù)只是搜索引擎技術(shù)的一個子集,能做搜索引
擎的公司,一定能作大數(shù)據(jù)。但是,從事大數(shù)據(jù)技術(shù)的公司,卻未必能作搜索引
擎。
1.1什么是大數(shù)據(jù)
進入本世紀(jì)以來,尤其是2010年之后,隨著互聯(lián)網(wǎng)特別是移動互聯(lián)網(wǎng)的發(fā)
展,數(shù)據(jù)的增長呈爆炸趨勢,已經(jīng)很難估計全世界的電子設(shè)備中存儲的數(shù)據(jù)到底
有多少,描述數(shù)據(jù)系統(tǒng)的數(shù)據(jù)量的計量單位從MB(1MB大約等于一百萬字節(jié))、
GB(1024MB)、TB(1024GB),一直向上攀升,目前,PB(等于1024TB)級的數(shù)
據(jù)系統(tǒng)已經(jīng)很常見,隨著移動個人數(shù)據(jù)、社交網(wǎng)站、科學(xué)計算、證券交易、網(wǎng)站
日志、傳感器網(wǎng)絡(luò)數(shù)據(jù)量的不斷加大,國內(nèi)擁有的總數(shù)據(jù)量早已超出ZB
(1ZB=1O24EB,1EB=1O24PB)級別。
這些數(shù)據(jù)有兩個特點,一個是“數(shù)據(jù)量大”,一個是“數(shù)據(jù)數(shù)量和種類全”。
可以用“大而全”來概括。所以說:大數(shù)據(jù)勝于好算法。對于許多應(yīng)用來講,采
用一個基于小數(shù)據(jù)量的好算法,結(jié)果的準(zhǔn)確性往往不如一個基于大量可用數(shù)據(jù)一
般算法計算的結(jié)果。
傳統(tǒng)的數(shù)據(jù)處理方法是:隨著數(shù)據(jù)量的加大,不斷更新硬件指標(biāo),采用更加
強大的CPU、更大容量的磁盤這樣的措施,但現(xiàn)實是:數(shù)據(jù)量增大的速度遠(yuǎn)遠(yuǎn)超
出了單機計算和存儲能力提升的速度。
而“大數(shù)據(jù)”的處理方法是:采用多機器、多節(jié)點的處理大量數(shù)據(jù)方法,而
采用這種新的處理方法,就需要有新的大數(shù)據(jù)系統(tǒng)來保證,系統(tǒng)需要處理多節(jié)點
間的通訊協(xié)調(diào)、數(shù)據(jù)分隔等一系列問題。
總之,采用多機器、多節(jié)點的方式,解決各節(jié)點的通訊協(xié)調(diào)、數(shù)據(jù)協(xié)調(diào)、計
算協(xié)調(diào)問題,處理海量數(shù)據(jù)的方式,就是“大數(shù)據(jù)”的思維。其特點是,隨著數(shù)
據(jù)量的不斷加大,可以增加機器數(shù)量,水平擴展,一個大數(shù)據(jù)系統(tǒng),可以多達(dá)幾
萬臺機器甚至更多。
1.2開發(fā)大數(shù)據(jù)需要什么技術(shù)
大數(shù)據(jù)技術(shù),就是從各種類型的數(shù)據(jù)中快速獲得有價值信息的技術(shù)。大數(shù)據(jù)
領(lǐng)域已經(jīng)涌現(xiàn)出了大量新的技術(shù),它們成為大數(shù)據(jù)采集、存儲、處理和呈現(xiàn)的有
力武器。大數(shù)據(jù)處理關(guān)鍵技術(shù)一般包括:大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)
存儲及管理、大數(shù)據(jù)分析及挖掘、大數(shù)據(jù)展現(xiàn)和應(yīng)用(大數(shù)據(jù)檢索、大數(shù)據(jù)可視
化、大數(shù)據(jù)應(yīng)用、大數(shù)據(jù)安全等)。
1.3Hadoop的由來
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。
用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集
群的威力進行高速運算和存儲。
Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(HadoopDistributedFileSystem),
簡稱HDFS。HDFS有高容錯性的特點,并且設(shè)計用來部署在低廉的(low-cost)硬
件上;而且它提供高吞吐量(highthroughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些
有著超大數(shù)據(jù)集(largedataset)的應(yīng)用程序。HDFS放寬了(relax)P0SIX的要
求,可以以流的形式訪問(streamingaccess)文件系統(tǒng)中的數(shù)據(jù)。
Hadoop的框架最核心的設(shè)計就是:HDFS和MapReduce0HDFS為海量的數(shù)據(jù)提
供了存儲,則MapReduce為海量的數(shù)據(jù)提供了計算
Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架。Hadoop以一
種可靠、高效、可伸縮的方式進行數(shù)據(jù)處理。
Hadoop是可靠的,因為它假設(shè)計算元素和存儲會失敗,因此它維護多個工
作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。
Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。
Hadoop還是可伸縮的,能夠處理PB級數(shù)據(jù)。
止匕外,Hadoop依賴于社區(qū)服務(wù),因此它的成本比較低,任何人都可以使用。
1.4什么是大數(shù)據(jù)一體化開發(fā)框架
大數(shù)據(jù)的應(yīng)用開發(fā)過于偏向底層,具有學(xué)習(xí)難度大,涉及技術(shù)面廣的問題,
這制約了大數(shù)據(jù)的普及。大快認(rèn)為,需要一種技術(shù),把大數(shù)據(jù)開發(fā)中一些通用的,
重復(fù)使用的基礎(chǔ)代碼、算法封裝為類庫,降低大數(shù)據(jù)的學(xué)習(xí)門檻,降低開發(fā)難度,
提高大數(shù)據(jù)項目的開發(fā)效率。
FreeRCH采用類黑箱框架模式,用戶直接調(diào)用大快的相關(guān)類即可完成,過去
復(fù)雜的編碼工作。大快的一體化框架,由六部分組成,即可單獨部署,也可整體
部署,靈活方便。
大快的一體化開發(fā)框架,支持JAVA、PHP和.NET三種編程語言,本版為JAVA
描述。
1.5框架的構(gòu)成模塊
框架由:數(shù)據(jù)源與SQL引擎、數(shù)據(jù)采集(自定義爬蟲)模塊、數(shù)據(jù)處理模塊、
機器學(xué)習(xí)算法、自然語言處理模塊、搜索引擎模塊,六部分組成。
大快的大數(shù)據(jù)通用計算平臺(DKH),已經(jīng)集成相同版本號的開發(fā)框架的全部
組件。如果在開源大數(shù)據(jù)框架上部署大快的開發(fā)框架,需要平臺的組件支持如下:
數(shù)據(jù)源與SQL引擎:DK.Hadoop>spark>hive>sqoop>flume>kafka
數(shù)據(jù)采集:DK.hadoop
數(shù)據(jù)處理模塊:DK.Hadoop>spark>storm>hive
機器學(xué)習(xí)和AI:DK.Hadoop>spark
NLP模塊:上傳服務(wù)器端JAR包,直接支持
搜索引擎模塊:不獨立發(fā)布
1.6大快大數(shù)據(jù)平臺
大快大數(shù)據(jù)平臺(DKH),是大快公司為了打通大數(shù)據(jù)生態(tài)系統(tǒng)與傳統(tǒng)非大數(shù)
據(jù)公司之間的通道而設(shè)計的一站式搜索引擎級,大數(shù)據(jù)通用計算平臺。傳統(tǒng)公司
通過使用DKH,可以輕松的跨越大數(shù)據(jù)的技術(shù)鴻溝,實現(xiàn)搜索引擎級的大數(shù)據(jù)平
臺性能。
?DKH,有效的集成了整個HADOOP生態(tài)系統(tǒng)的全部組件,并深度優(yōu)化,重
新編譯為一個完整的更高性能的大數(shù)據(jù)通用計算平臺,實現(xiàn)了各部件的有
機協(xié)調(diào)。因此DKH相比開源的大數(shù)據(jù)平臺,在計算性能上有了高達(dá)5倍(最
大)的性能提升。
?DKH,更是通過大快獨有的中間件技術(shù),將復(fù)雜的大數(shù)據(jù)集群配置簡化至
三種節(jié)點(主節(jié)點、管理節(jié)點、計算節(jié)點),極大的簡化了集群的管理運
維,增強了集群的高可用性、高可維護性、高穩(wěn)定性。
?DKH,雖然進行了高度的整合,但是仍然保持了開源系統(tǒng)的全部優(yōu)點,并
與開源系統(tǒng)100%兼容,基于開源平臺開發(fā)的大數(shù)據(jù)應(yīng)用,無需經(jīng)過任何
改動,即可在DKH上高效運行,并且性能會有最高5倍的提升。
?DKH,更是集成了大快的大數(shù)據(jù)一體化開發(fā)框架(FreeRCH),FreeRCH
開發(fā)框架提供了大數(shù)據(jù)、搜索、自然語言處理和人工智能開發(fā)中常用的二
十多個類,通過總計一百余種方法,實現(xiàn)了10倍以上的開發(fā)效率的提升。
DKH的SQL版本,還提供了分布式MySQL的集成,傳統(tǒng)的信息系統(tǒng),可無
縫的實現(xiàn)面向大數(shù)據(jù)和分布式的跨越。
DKH標(biāo)準(zhǔn)平臺技術(shù)構(gòu)架圖
計算層
數(shù)據(jù)交換層
DK.HADOOP數(shù)據(jù)源
MapRe
Mahout
duce
DK.數(shù)據(jù)中間件
DK.計算結(jié)構(gòu)(SQL)
中間件敢抱
爬蟲任務(wù)分配系就
WEB界面StormSpark
Mlllb
DK.一體化計算榷架
API接口文件,日志
數(shù)據(jù)
JDBC引攀=ODBC引茶DK.
HDFS壓
應(yīng)用程序DK.經(jīng)典SQL引擎縮
算
■法/工具英即法
DK.HBASE實時流數(shù)據(jù)
界面系統(tǒng)NLP/AI系統(tǒng)
全文校索和索引數(shù)據(jù)中間件DK.Kafka
排序管理系統(tǒng)
檢索層DK.E.S
V1.2
DK數(shù)據(jù)中間件
大快的數(shù)據(jù)中間件,是DKH數(shù)據(jù)交換層的核心,是大快的核心技術(shù)之一,
該中間件集成了apache的諸多組件,包含了從文件、SQL、日志、消息到爬蟲
和流數(shù)據(jù)以及異構(gòu)數(shù)據(jù)的支持;集成了大快的壓縮算法,和數(shù)據(jù)同步分發(fā)技術(shù),
實現(xiàn)了數(shù)據(jù)的導(dǎo)入和減少調(diào)動的同時實現(xiàn),對于有實時數(shù)據(jù)要求的項目具有不可
替代的技術(shù)優(yōu)勢。
DK.Hadoop
是大快深度整合,重新編譯后的HADOOP發(fā)行版,可單獨發(fā)布。獨立部署
FreeRCH(大快大數(shù)據(jù)一體化開發(fā)框架)時,必需的組件。DK.HADOOP整合集
成了NOSQL數(shù)據(jù)庫,簡化了文件系統(tǒng)與非關(guān)系數(shù)據(jù)庫之間的編程;DK.HADOOP
改進了集群同步系統(tǒng),使得HADOOP的數(shù)據(jù)處理更加高效。
DK.ES
大快的搜索系統(tǒng),使用的是ES,支持完整的全文搜索。DK.ES是大快在開
源ES系統(tǒng)上經(jīng)過二次開發(fā),整合了對中文搜索的有效支持以及對大快數(shù)據(jù)同步
技術(shù)的支持后的高性能版本,DK.ES是DKH的核心組件之一,僅隨DKH集成,
不單獨發(fā)布。
DK計算中間件和SQL引擎
計算中間件和SQL引擎,提供了高效的大數(shù)據(jù)編程和傳統(tǒng)SQL的查詢支持,
該部分的功能體現(xiàn),通過FreeRCH的部分類實現(xiàn)。
DK.NLP自然語言處理組件
大快是漢語言自然語言處理的技術(shù)引領(lǐng)者,大快的開源漢語言處理,是國內(nèi)
目前使用率最高的開源自然語言處理開發(fā)包。DK.NLP是在大快開源產(chǎn)品的基礎(chǔ)
上,進一步增強功能,簡化編碼的自然語言處理類庫,隨DK.NLP已經(jīng)深度集
成,屬于FreeRCH的組成部分,亦可獨立發(fā)布。
智能問答機器人
大快的智能問答機器人,是DKH的AI組件之一,以類的形式調(diào)用和進行
二次開發(fā)。亦可獨立發(fā)布。
機器學(xué)習(xí)算法類庫
機器學(xué)習(xí)類庫已隨DKH深度集成,屬于FreeRCH的組成部分,用戶無需再
研究復(fù)雜的數(shù)學(xué)理論,有效減少編程難度和出錯率。1.2版本的算法庫包含以下
9種算法類:
邏輯回歸、隨機森林、支持向量機(還支持矢量網(wǎng)絡(luò))、主成分分析、K均
值、高斯混合(高斯概率密度函數(shù))、樸素貝葉斯、FP-growth、交替最小二乘法
的協(xié)同過濾算法。
DKH分布式SQL版
VI.2S
DKH分布式SQL版
該版本在標(biāo)準(zhǔn)DKH的基礎(chǔ)上,增加了分布式MYSQL的集成,其他與標(biāo)準(zhǔn)DKH
完全相同。DKH-SQL版的發(fā)布,使得很多需要強事務(wù)的系統(tǒng),能夠共享大數(shù)據(jù)的
技術(shù)成果,真正實現(xiàn)分布式系統(tǒng)對事務(wù)的完全支持,也幫助傳統(tǒng)管理信息系統(tǒng)提
升效率和無縫移植。
版本:
DKH標(biāo)準(zhǔn)版DKH-分布式SQL版DK.HADOOP發(fā)行版
DKH標(biāo)準(zhǔn)版有三個不同的子版本:用于開發(fā)調(diào)試的單機版;支持三節(jié)點的學(xué)習(xí)版;
支持5節(jié)點以上的標(biāo)準(zhǔn)服務(wù)器版
DKH-分布式SQL版有兩個子版本:學(xué)習(xí)版、服務(wù)器版
DKH的安裝部署,參閱《DKH安裝部署教程》
1.7大數(shù)據(jù)相對于傳統(tǒng)數(shù)據(jù)處理方式的優(yōu)勢與不同
(1)相對于關(guān)系型數(shù)據(jù)庫(SQL類型數(shù)據(jù)庫)的優(yōu)勢
a.SQL數(shù)據(jù)庫在處理大量數(shù)據(jù)時,需要花費大量時間在磁盤尋址上面,而硬
盤尋址速度的提升往往不及傳輸速率的提升。
b.大量的數(shù)據(jù)來源并非結(jié)構(gòu)化數(shù)據(jù),而SQL型數(shù)據(jù)庫需要結(jié)構(gòu)化的數(shù)據(jù)源。
c.大數(shù)據(jù)具有可伸縮性的編程模型,當(dāng)數(shù)據(jù)量增大時,可以簡單改變計算節(jié)
點數(shù)量來增速,使得數(shù)據(jù)量增大但總計算時間與以前一樣,SQL系統(tǒng)不具備這個
簡單擴容的能力。
(2)相對于網(wǎng)格計算的優(yōu)勢
網(wǎng)格計算也是多機器并行處理系統(tǒng),依賴網(wǎng)絡(luò)之間的通訊(消息)來相互協(xié)
調(diào),比較適合于計算密集型(網(wǎng)絡(luò)通訊較少)任務(wù),一旦需要訪問大量數(shù)據(jù)的時
候,由于網(wǎng)絡(luò)帶寬瓶頸問題,很多節(jié)點都在等待數(shù)據(jù)。
大數(shù)據(jù)的處理方式不同,它是將計算模塊分配到各個節(jié)點上,從“本地”讀
取數(shù)據(jù),因而避免了大量的網(wǎng)絡(luò)10。
另一個問題是容錯,大數(shù)據(jù)系統(tǒng)的任務(wù)在某個節(jié)點上允許失敗,由主控節(jié)點
重新啟動,這一切都是系統(tǒng)自動完成的。
(3)與志愿計算不同
志愿計算是將一個大型任務(wù)分塊,由志愿者自動加入,每個志愿者領(lǐng)取任務(wù)
模塊,計算完成后在發(fā)回系統(tǒng)中心集成。
志愿計算是CPU密集型的,計算時間大大高于結(jié)果傳遞時間,計算需要幾個
小時或者幾天,而大數(shù)據(jù)系統(tǒng)是要求任務(wù)是在幾分鐘或幾個小時就可以完成,任
務(wù)分布在一個內(nèi)部高速網(wǎng)絡(luò)的數(shù)據(jù)中心之內(nèi),機器之間是可靠的、定制的硬件。
1.8大數(shù)據(jù)相對傳統(tǒng)關(guān)系型數(shù)據(jù)庫的不足
1.不提供對SQL的支持:如果不支持SQL這樣的工業(yè)標(biāo)準(zhǔn),將會對用戶產(chǎn)
生一定的學(xué)習(xí)和應(yīng)用遷移成本;
2.支持的特性不夠豐富:現(xiàn)有產(chǎn)品所提供的功能都比較有限,大多數(shù)NoSQL
數(shù)據(jù)庫都不支持事務(wù),也不像MSSQLServer和Oracle那樣能提供各種附加功
能,比如BI和報表等;
3.現(xiàn)有產(chǎn)品的不夠成熟:大多數(shù)產(chǎn)品都還處于初創(chuàng)期,和關(guān)系型數(shù)據(jù)庫幾
十年的完善不可同日而語;
1.9組件集成情況列表
DKH專有
DK數(shù)據(jù)中間件:基于多種算法的數(shù)據(jù)同步分配組件(系統(tǒng)內(nèi)置)
DK增量計算:增量計算支持組件(系統(tǒng)內(nèi)置)
爬蟲任務(wù)分配系統(tǒng):大快基于分布式文件系統(tǒng)的多用戶、多機器、多線程爬蟲任
務(wù)分配系統(tǒng)(系統(tǒng)內(nèi)置)
DK.Crawler:大快基于機器學(xué)習(xí)的通用可自定義爬蟲(FreeRCH框架內(nèi)置)
FreeRCH框架:大快的一體化大數(shù)據(jù)開發(fā)框架
DK.NLP:大快的自然語言處理類庫(FreeRCH框架內(nèi)置,可獨立部署)
DK.SQL引擎:大快開發(fā)的支持ODBC\JDBC數(shù)據(jù)源的組件(FreeRCH框架內(nèi)置)
智能問答機器人:大快開發(fā)的AI組件(系統(tǒng)內(nèi)置)
DK.計算中間件:大快旨在協(xié)調(diào)各個計算組件之間任務(wù)的基礎(chǔ)組件(系統(tǒng)內(nèi)置)
DK.索引中間件:為應(yīng)對海量數(shù)據(jù)并發(fā)開發(fā)的內(nèi)存緩沖數(shù)據(jù)中間件(系統(tǒng)內(nèi)置)
DK.壓縮算法:旨在提高數(shù)據(jù)傳輸效率的大快數(shù)據(jù)中間件內(nèi)置的可執(zhí)行代碼(中
間件內(nèi)置)
ElasticSQL:大快開發(fā)的高性能SQL引擎。
大快深度開發(fā)的開源產(chǎn)品
(除DK.MySQL以外,其它部件均與同名開源產(chǎn)品100%兼容)
DK.MySQL大快開發(fā)的分布式MySQL數(shù)據(jù)庫系統(tǒng)可獨立部署
說明:DK.MySQL是基于MySQL開發(fā)的分布式關(guān)系型數(shù)據(jù)庫產(chǎn)品,由于引入了分
布式概念與標(biāo)準(zhǔn)的開源MySQL存在一定的差異,詳情參閱《DK.MySQL說明書》
DK.Hadoop大快重新編譯開發(fā)過的Hadoop平臺可獨立部署
DK.ES大快重新開發(fā)的ES,并增加了相關(guān)類庫DKH內(nèi)置
DK.HIVE大快深度開發(fā)的數(shù)據(jù)倉庫HIVEDKH內(nèi)置
DK.kafka大快深度開發(fā)的消息組件DKH內(nèi)置
DK.HBASE大快深度開發(fā)的N0SQL數(shù)據(jù)庫DKH內(nèi)置
集成的開源組件
SqoopApache開源項目,用作大數(shù)據(jù)平臺與數(shù)據(jù)庫的數(shù)據(jù)管道,開源組件
FlumeFlume是一個分布式、可靠、和高可用的海量日志聚合的系統(tǒng),支持
在系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對
數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。
Apache開源組件
Storm是一個免費開源、分布式、高容錯的實時計算系統(tǒng)。Storm令持續(xù)不
斷的流計算變得容易,Hadoop批處理所不能滿足的實時要求。
Apache開源組件
Spark并行內(nèi)存計算框架Apache開源組件
Mahout提供一些可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn)開源組件
Pig是一個面向過程的,Hadoop衍生編程語言,它簡化了Hadoop
MapReduce的編程工作開源框架
其他基礎(chǔ)組件如zookeeper等基礎(chǔ)運行組件。
GraphX基于spark的圖計算引擎(說明:運行圖計算必須128G內(nèi)存)。
本章閱讀:
Hadoop:Hadoop是一?個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用
戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威
力進行高速運算和存儲。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop
DistributedFileSystem),簡稱HDFS。HDFS有高容錯性的特點,并且設(shè)計用
來部署在低廉的硬件上;而且它提供高吞吐量(highthroughput)來訪問應(yīng)用
程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(largedataset)的應(yīng)用程序。、
Hadoop的框架最核心的設(shè)計就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)
提供了存儲,則MapReduce為海量的數(shù)據(jù)提供了計算。
Spark:Spark,擁有Hadoop、MapReduce所具有能更好地適用于數(shù)據(jù)挖掘
與機器學(xué)習(xí)等需要迭代的的優(yōu)點;但不同于MapReduce的是Job中間輸出結(jié)果可
以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此SparkMapReduce的算法。
Spark是一種與Hadoop相似的開源集群計算環(huán)境,但是兩者之間還存在
一些不同之處,這些有用的不同之處使Spark在某些工作負(fù)載方面表現(xiàn)得更加
優(yōu)越,換句話說,Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,
它還可以優(yōu)化迭代工作負(fù)載。
Hive:Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件
映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為
MapReduce任務(wù)進行運行。其優(yōu)點是學(xué)習(xí)成本低,可以通過類SQL語句快速實
現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫
的統(tǒng)計分析。
Sqoop-.Sqoop是一個用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工
具,可以將一個關(guān)系型數(shù)據(jù)庫(例如:MySQL,Oracle,Postgres等)中的數(shù)
據(jù)導(dǎo)進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進到關(guān)系型數(shù)據(jù)庫中。
EZizae:Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量
日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,
用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方
(可定制)的能力。
kafka-.Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消
費者規(guī)模的網(wǎng)站中的所有動作流數(shù)據(jù)。這種動作(網(wǎng)頁瀏覽,搜索和其他用戶
的行動)是在現(xiàn)代網(wǎng)絡(luò)上的許多社會功能的一個關(guān)鍵因素。這些數(shù)據(jù)通常是由
于吞吐量的要求而通過處理日志和日志聚合來解決。對于像Hadoop的一樣的日
志數(shù)據(jù)和離線分析系統(tǒng),但又要求實時處理的限制,這是一個可行的解決方案。
Kafka的目的是通過Hadoop的并行加載機制來統(tǒng)一線上和離線的消息處理,也
是為了通過集群機來提供實時的消費。
ES:我們建立一個網(wǎng)站或應(yīng)用程序,并要添加搜索功能,令我們受打擊的是:
搜索工作是很難的。我們希望我們的搜索解決方案要快,我們希望有一個零配置
和一個完全免費的搜索模式,我們希望能夠簡單地使用JSON通過HTTP的索引數(shù)
據(jù),我們希望我們的搜索服務(wù)器始終可用,我們希望能夠一臺開始并擴展到數(shù)百,
我們要實時搜索,我們要簡單的多租戶,我們希望建立一個云的解決方案。
Elasticsearch(簡稱ES)旨在解決所有這些問題和更多的問題。
統(tǒng):
問大數(shù)據(jù)怎么分類的?
答按照數(shù)據(jù)分析的實時性,分為實時數(shù)據(jù)和離線分析兩種;按照大數(shù)據(jù)的
數(shù)據(jù)量,分為內(nèi)存級別、BI級別、海量級別三種。
問大數(shù)據(jù)目前存在的問題是什么?
答數(shù)據(jù)的真實性,樣本代表性,相關(guān)性誤差,故事化,隱私侵犯。
第二章數(shù)據(jù)源與SQL引擎
本章節(jié)主要介紹了數(shù)據(jù)與大數(shù)據(jù)平臺之間的導(dǎo)入導(dǎo)出,我們通常所說的數(shù)據(jù)
源主要有四大類:結(jié)構(gòu)(SQL)數(shù)據(jù),文件、日志數(shù)據(jù),實時流數(shù)據(jù),互聯(lián)網(wǎng)數(shù)
據(jù)。這些數(shù)據(jù)的存在方式有兩種:存在數(shù)據(jù)庫中或者本地文件中,根據(jù)文中所講
解的方法,只要將數(shù)據(jù)和平臺之間的參數(shù)一一對應(yīng)正確,就可以完成數(shù)據(jù)與平臺
間的導(dǎo)入導(dǎo)出工作。
2.1關(guān)系型數(shù)據(jù)庫(SQL數(shù)據(jù)庫)與大數(shù)據(jù)平臺之間的數(shù)據(jù)
導(dǎo)入導(dǎo)出
本部分將一些外部數(shù)據(jù)源導(dǎo)入大數(shù)據(jù)平臺或者反向?qū)С?。外部?shù)據(jù)源支持:
Oracle數(shù)據(jù)庫、mySQL數(shù)據(jù)庫、SQLServer數(shù)據(jù)庫。
關(guān)系型數(shù)據(jù)庫的優(yōu)勢:
1.保持?jǐn)?shù)據(jù)的一致性(事務(wù)處理)
2.由于以標(biāo)準(zhǔn)化為前提,數(shù)據(jù)更新的開銷很?。ㄏ嗤淖侄位旧隙贾挥幸?/p>
處)
3.可以進行Join等復(fù)雜查詢。
其中能夠保持?jǐn)?shù)據(jù)的一致性是關(guān)系型數(shù)據(jù)庫的最大優(yōu)勢。
關(guān)系型數(shù)據(jù)庫的不足:
1.大量數(shù)據(jù)的寫入處理
2.為有數(shù)據(jù)更新的表做索引或表結(jié)構(gòu)(schema)變更
3.字段不固定時應(yīng)用
4.對簡單查詢需要快速返回結(jié)果的處理
非關(guān)系型數(shù)據(jù)庫對于這關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫,對方的優(yōu)勢就是自
己的弱勢,反之亦然。
面對數(shù)據(jù)庫高并發(fā)讀寫的需求,海量數(shù)據(jù)的高校存儲和訪問的需求,數(shù)據(jù)庫
的高擴展性和高可用性的需求,大數(shù)據(jù)平臺NOSQL數(shù)據(jù)庫可以高效解決以上需
求。
將海量數(shù)據(jù)從SQL數(shù)據(jù)庫導(dǎo)入到NOSQL數(shù)據(jù)庫時,以便后期將數(shù)據(jù)進行數(shù)據(jù)
檢索,數(shù)據(jù)抓取,數(shù)據(jù)清洗,自然語言處理,機器學(xué)習(xí)等等?;蛘邔OSQL數(shù)據(jù)
庫里數(shù)據(jù)導(dǎo)出到SQL數(shù)據(jù)庫時,需要用到我們的工具類DKTransformationData。
工具類名稱:DKTransformationData
2.1.1從數(shù)據(jù)庫某個表導(dǎo)入數(shù)據(jù)到NOSQL
方法簽名:Stringdb2nosql(StringjdbcStr,StringuName,String
pwd,StringtbName,StringwhereStr,StringdirName,String
writeMode,StringthreadNum,Stringhostlp,StringhostName,String
hostPassword);
返回:空一正確,非空:錯誤信息
簽名參數(shù)說明:jdbcStr,uName,pwd,tbName,whereStr分別為jdbc連接串,
用戶名,密碼,表名,條件串,dirName:輸出目錄名,writeMode:0表示覆
蓋,1表示增量,threadNum:表示啟用的線程數(shù)(線程數(shù)不能大于符合條件的
記錄數(shù),一般建議與節(jié)點數(shù)量相同,如果該表中沒有主鍵,則線程數(shù)為D,hostlp:
要連接主機的ip地址,hostName:要連接主機的用戶名,hostPassword:要連
接主機的密碼(要具備執(zhí)行Hadoop的權(quán)限的用戶)。
范例:把mysql數(shù)據(jù)庫中名稱為db的表中的數(shù)據(jù)導(dǎo)入到大數(shù)據(jù)平臺的
Vuser/root/dk"目錄下,可以用db2nosql方法進行數(shù)據(jù)的導(dǎo)入。
程序清單2.1.1
publicclassTestRdbmsToNosql{
publicstaticvoidmain(String[]args){
try(
Stringdb2nosql=
DKTransfonnationData.db2nosql("jdbc:mysql://00:3306/mysql",
"root","123456","db","","/user/root/dk","0","1","00","root","root");
if(db2nosql==""){
System.eir.printin("數(shù)據(jù)導(dǎo)入成功!SUCCESS!0);
}else{
System,err.printin(“數(shù)據(jù)導(dǎo)入失敗!FAIL!");
System.err.printin("錯誤信息:”+db2nosql);
)
}catch(Exceptione){
e.printStackTrace();
2.1.2從NOSQL導(dǎo)出數(shù)據(jù)到關(guān)系型數(shù)據(jù)庫
方法簽名:Stringnosql2Rdbms(StringjdbcStr,StringuName,String
pwd,StringtbName,StringexportDir,StringthreadNum,String
hostlp,StringhostName,StringhostPassword)
返回:空一正確,非空:錯誤信息。
簽名參數(shù)說明:jdbcStr,uName,pwd,tbName分別為jdbc連接串,用戶名,
密碼,表名,exportDir:要從hdfs導(dǎo)出的目錄,threadNum:表示啟用的線程
數(shù)(一般建議與節(jié)點數(shù)量相同),hostlp:要連接主機的ip地址,hostName:要
連接主機的用戶名,hostPassword:要連接主機的密碼(要具備執(zhí)行Hadoop的
權(quán)限的用戶)。
說明:關(guān)系型數(shù)據(jù)庫表要存在并且字段數(shù)量與導(dǎo)入數(shù)據(jù)字段數(shù)量相匹配。
范例:把“/user/root/dk”目錄下的數(shù)據(jù)導(dǎo)出到mysql數(shù)據(jù)庫的一張表中,首
先要確保這個表存在,且數(shù)據(jù)字段與表中的字段一一對應(yīng)。如上面db2nosql方
法導(dǎo)出到大數(shù)據(jù)平臺的數(shù)據(jù)為例,我們要先在數(shù)據(jù)庫中建立和db表相同表結(jié)構(gòu)
的一張表,才能進行數(shù)據(jù)的導(dǎo)入。
程序清單2.1.2
publicclassTestNosqlToRdbms{
publicstaticvoidmain(String[]args){
try(
Stringnosql2Rdbms=
DKTransformationData.nosql2Rdbms("jdbc:mysql://00:3306/mysql",
"root","123456","testRdbmsToNosql","/user/root/dk","l","00","root",
"root");
if(nosql2Rdbms==""){
System.err.println("數(shù)據(jù)導(dǎo)出成功!SUCCESS!");
}else{
System.err.println("數(shù)據(jù)導(dǎo)出失敗!FAIL!");
System.err.println("錯誤信息:"+nosql2Rdbms);
}
}catch(Exceptione){
e.printStackTrace();
2.2本地文件與大數(shù)據(jù)平臺之間導(dǎo)入導(dǎo)出
本部分將本地文件導(dǎo)入大數(shù)據(jù)平臺或者反向?qū)С?。?dǎo)入的文件類型為:TXT、
DOC,PDF類型文件。導(dǎo)出的文件為TXT類型。
我們工作中經(jīng)常會遇到大量數(shù)據(jù)表格,有pdf文檔,excel文檔,word
文檔和文本文件。當(dāng)我們面對大量數(shù)據(jù)做一些基本的處理分析時,手動處理顯然
耗時耗力,如對本地文件數(shù)據(jù)進行數(shù)據(jù)檢索,數(shù)據(jù)抓取,數(shù)據(jù)清洗,自然語言處
理,機器學(xué)習(xí)等等處理時,或大數(shù)據(jù)平臺處理好的數(shù)據(jù)要導(dǎo)出到本地文件時,需
要用到我們的工具類DKTransformationData來將文件與大數(shù)據(jù)平臺之間導(dǎo)入或
導(dǎo)出處理。
工具類名稱:DKTransformationData
2.2.1本地文件導(dǎo)入數(shù)據(jù)到N0SQL
本地文件的導(dǎo)入分為本地文件組和單個文件兩類型。
(1)本地文件組導(dǎo)入數(shù)據(jù)到NOSQL(文件類型為TXT、DOC、PDF)
方法簽名:Stringfile2nosql(StringfilePath,StringdirName,String
nosqlUrl,intfileLength);
返回:空一正確,錯誤拋出異常
簽名參數(shù)說明:filePath分別為本地文件目錄(包括文件名,如果不寫文
件名,則導(dǎo)入目錄中全部文件),dirName:輸出目錄名(包括文件名),nosqlUrl
為連接hdfs的地址及端口(hdfs://namenode-ip地址:8020),fileLength文件
長度限制(K為單位。文件存為SequenceFile格式(二進制格式))。
范例:要將本地"C:\\Users\\Administrator\\Desktop\\aaa"文件夾下的TXT、
DOC、PDF文件導(dǎo)入到大數(shù)據(jù)平臺中,可以使用file2nosql方法進行導(dǎo)入,最終
在大數(shù)據(jù)平臺中存儲的格式為SequenceFile格式的文件,如果后期想進行處理需
要另行解析。
程序清單2.2.1(1)
publicclassTestFileToNosql{
publicstaticvoidmain(String[]args){
try(
Stringfile2nosql=
DKTransformationData.file2nosql("C:\\Users\\Administrator\\Desktop\\aaa","/us
er/root/file2nosql","hdfe://00:8020",100);//KB
if(file2nosql==""){
System.err.println("數(shù)據(jù)導(dǎo)入成功!SUCCESS!");
)
}catch(Exceptione){
e.printstackTrace();
(2)本地文件導(dǎo)入數(shù)據(jù)到NOSQL(文件類型為TXT、DOC、PDF)
方法簽名:Stringfile2nosql2(StringfilePath,StringdirName,String
nosqlUrl,intfileLength);
返回:空一正確,錯誤拋出異常
簽名參數(shù)說明:filePath為本地文件(包括路徑),dirName:輸出目錄名
(包括文件名),nosqlUrl為連接hdfs的地址及端口(hdfs:〃namenode-ip地
址:8020),fileLength文件長度限制(K為單位。文件不能存為SequenceFile
格式)。
范例:將本地"C:\\Users\\Administrator\\Desktop\\aaa"文件夾下的單個TXT、
DOC或PDF文件導(dǎo)入到大數(shù)據(jù)平臺中,可以使用file2nosql2方法進行導(dǎo)入.
程序清單221(2)
publicclassTestFileToNosql2{
publicstaticvoidmain(String[]args){
try(
Stringfile2nosql2=
DKTransformationData.file2nosql2("C:\\Users\\Administrator\\Desktop\\aaa\\a.tx
t","/user/root/file2nosql2/a.txt","hdfs://00:8020",100);//KB
if(file2nosql2==""){
System.err.println("數(shù)據(jù)導(dǎo)入成功!SUCCESS!");
}
}catch(Exceptione){
e.printStackTrace();
(3)本地文件組導(dǎo)入數(shù)據(jù)到NOSQL(HBase)
方法簽名:Stringfile2hbase(StringfilePath,StringtableName,int
fileLength,StringzkHostlp);
返回:空一正確,錯誤拋出異常
簽名參數(shù)說明:filePath為本地文件(包括路徑),tabieName為hbase的
表名稱,fileLength文件長度限制(K為單位。),zkHostlp為zookeeper的主
機IP。(Zookeeper是為一個分布式應(yīng)用提供一致性服務(wù)的軟件,功能:配置維
護、域名服務(wù)、分布式同步、組服務(wù)。)
范例:將本地〃C:\\Users\\Administrator\\Desktop\\aaa〃文件夾下的所有
文件導(dǎo)入到大數(shù)據(jù)平臺的HBASE數(shù)據(jù)庫中,可以使用file2hbase方法實現(xiàn),使
用本方法可以實現(xiàn)特定長度的文件導(dǎo)入。
程序清單221(3)
publicclassTestFileToHbase{
publicstaticvoidmain(String[]args){
try(
Stringfile2hbase=
DKTransformationData.file2hbase(,,C:\\Users\\Administrator\\Desktop\\aaa,,,',file
2hbasen,l00,M00:2181");〃KB
if(file2hbase="“){
System.eir.printin("數(shù)據(jù)導(dǎo)入成功!SUCCESS!0);
}catch(Exceptione){
e.printStackTrace();
2.2.2從NOSQL導(dǎo)出數(shù)據(jù)到本地文件(文件類型為TXT)(文件存儲
目錄為單一目錄)
方法簽名:Stringnosql2file(StringfilePath,StringexportDir,String
hdfsUrl)
返回:空一正確,錯誤拋出異常。
簽名參數(shù)說明:filePath分別為本地文件目錄(文件不用命名,系統(tǒng)會自
動命名),exportDir:要從nosql導(dǎo)出的目錄,hdfsUrl為連接hdfs的地址及端
口。
范例:從大數(shù)據(jù)平臺7user/root/”目錄下導(dǎo)出文件,可以使用nosql2file
方法把“/user/root/〃目錄下特定的文件導(dǎo)出到本地指定的目錄中。
程序清單2.2.2
publicclassTestNosqlToFile{
publicstaticvoidmain(String[]args){
try(
Stringnosql2file=
DKTransformationData.nosql2file("C:\\Users\\Administrator\\Desktop\\util",
7user/root/","hdfs://00:8020");//KB
if(nosql2file==""){
System.err.println("數(shù)據(jù)導(dǎo)出成功!SUCCESS!");
}
}catch(Exceptione){
e.printstackTrace();
2.3SQL引擎
本部分主要介紹了連接數(shù)據(jù)庫、建HIVE表和追加HIVE表,當(dāng)我們有很多張
表的時候,要處理表與表之間關(guān)聯(lián)的復(fù)雜查詢,進行一些基本的增刪改查要用到
連接NOSQL數(shù)據(jù)庫,做sql類數(shù)據(jù)的統(tǒng)計分析要將數(shù)據(jù)放到HIVE表里進行處理。
即處理表之間的復(fù)雜操作和sql類的數(shù)據(jù)統(tǒng)計查詢要用到SQLUtils工具類。
工具類名稱:SQLUtils
2.3.1連接NOSQL數(shù)據(jù)庫
如果我們要連接大數(shù)據(jù)平臺的nosql類的數(shù)據(jù)庫,可以使用
connectionNOSQL方法來進行連接,做我們需要的SQL查詢。
方法簽名:ConnectionconnectionNOSQL(StringhostIP,String
port,Stringusername,Stringpassword,StringjdbcDriverName);
返回:正確-返回Connection連接,錯誤拋出異常。
簽名參數(shù)說明:hoslIP為nosql所在節(jié)點的ip;port為hive的端口;
username為連接hive的用戶名;password為密碼;jdbcDriverName為連接nosql
的驅(qū)動URL串。
2.3.2建立HIVE數(shù)據(jù)表
利用createTable方法可以在hive中建立我們想要的特定格式的數(shù)據(jù)表,
如同在普通關(guān)系數(shù)據(jù)庫(mysql)中一樣。
方法簽名:booleancreateTable(Connectioncon,Stringsql,String
optStr)o
返回:true一成功,false一失敗。
簽名參數(shù)說明:con,sql,optStr分別為JDBCConnection連接,標(biāo)準(zhǔn)的sql
建表語句(末尾不加分號),每行字段間的分隔符。
2.3.3追加HIVE數(shù)據(jù)表
利用loadData方法可以將Linux平臺中指定目錄中符合格式的數(shù)據(jù),導(dǎo)入
到指定的hive表中,值得注意的是數(shù)據(jù)格式要和創(chuàng)建表時指定的格式相同,否
則數(shù)據(jù)會丟失。
方法簽名:booleanloadData(Connectioncon,StringfilePath,String
tabieName)。
返回:true一成功,false一失敗。
簽名參數(shù)說明:con,filePath,tabieName分別為JDBCConnection連接,
數(shù)據(jù)在nosql上的路徑地址(包含文件名),nosql的表名。
連接好數(shù)據(jù)庫后,其余操作和操作關(guān)系型數(shù)據(jù)庫一致。(其余操作參見JDBC
api)o
相同鍵值或記錄會造成重復(fù),因此在導(dǎo)入前請區(qū)分。
范例:連接大數(shù)據(jù)平臺的NOSQL數(shù)據(jù)庫,建立一張名為tbl的hive表,將
符合格式的數(shù)據(jù)追加到此hive表中。
程序清單2.3
publicclassTestSQLUtils{
publicstaticvoidmain(String[]args){
Connectioncon=null;
Statementstmt=null;
ResultSetrs=null;
try{
〃連接NOSQL數(shù)據(jù)庫
con=SQLUtils.connectionNOSQL("00","10000",
"hive","","org.apache.hive.jdbc.HiveDriver");
〃建立HIVE數(shù)據(jù)表
booleantable=SQLUtils.createTable(con,"createtableIFNOT
EXISTStbl(idstring,ageString)",
if(table){
System.out.println("創(chuàng)建表成功!");
)
〃追加數(shù)據(jù)到HIVE數(shù)據(jù)表
booleanloadData=SQLUtils.loadData(con,
"/user/root/file2nosql?/a.txt","tbl");
if(loadData){
System.out.printing裝載數(shù)據(jù)成功!");
}else{
System.out.printing裝載數(shù)據(jù)失??!");
}
stmt=con.createStatement();
〃查詢數(shù)據(jù)
rs=stmt.executeQueryC^ELECT*FROMtbl");
System.out.println("\n==BeginQueryResults
//printtheresultstotheconsole
while(rs.next()){
//theexamplequeryreturnsoneStringcolumn
System.out.print(rs.getString(,,id,,)+,,:',);
System.out.println(rs.getString("ageH));
}
System.out.println(H==EndQueryResults
=======================\n\n");
}catch(SQLExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}finally{
try(
rs.close();
stmt.close();
con.close();
}catch(Exceptione){
//swallow
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小型裝飾施工合同范本
- 印刷標(biāo)牌制作合同范本
- 修路工程土建合同范本
- 賣家汽車租賃合同范本
- 配電設(shè)備制作合同范本
- 合同范本模板小學(xué)生
- 化學(xué)藥劑合同范本
- 合伙協(xié)議合同范本多人
- 景區(qū)承接團隊合同范本
- d代加工合同范本
- 教育專家報告合集:年度得到:沈祖蕓全球教育報告(2023-2024)
- 兒童尿道黏膜脫垂介紹演示培訓(xùn)課件
- 下肢骨關(guān)節(jié)損傷課件
- 2023發(fā)電企業(yè)防汛工作管理辦法
- 食品安全風(fēng)險評估的課件
- 復(fù)方板藍(lán)根顆粒工藝驗證方案大全
- 信息技術(shù)拓展模塊高職PPT完整全套教學(xué)課件
- 《動物王國開大會》說課PPT
- 春玉米套種秋黃瓜技術(shù)
- QC成果提高工業(yè)廠房基礎(chǔ)預(yù)埋地腳螺栓的精確度
- 四年級下冊勞動技術(shù)教案
評論
0/150
提交評論