海信HDp2902G行管故障維修(海信hdp2902h電路圖)
前沿拓展:
《大數(shù)據(jù)和人工智能交流》號向廣大初學(xué)者新增C 、Java 、Python 、Scala、javascript 等目前流行的計算機、大數(shù)據(jù)編程語言,希望大家以后關(guān)注本號更多的內(nèi)容。《大數(shù)據(jù)和人工智能》號方便有基礎(chǔ)讀者的同時照顧廣大沒入門的初學(xué)者。
和大數(shù)據(jù)相關(guān)文章的鏈接:
1、Linux操作系統(tǒng)課程詳細整理(命令、shell編程、軟件安裝等)
2、大數(shù)據(jù)的采集與預(yù)處理(Sqoop/Flume/Kafka)詳細總結(jié)
3、hadoop分布式計算MapReduce詳細總結(jié)
4、大數(shù)據(jù)內(nèi)存計算Spark框架原理詳細整理
5、大數(shù)據(jù)內(nèi)存計算框架SparkSQL詳細整理
6、大數(shù)據(jù)框架Spark的流處理SparkStreaming詳細總結(jié)
(一)大數(shù)據(jù)采集與預(yù)處理概述
21世紀(jì)是數(shù)據(jù)信息大發(fā)展的時代,移動互聯(lián)、社交網(wǎng)絡(luò)、電子商務(wù)等極大拓展了互聯(lián)網(wǎng)的邊界和應(yīng)用范圍,各種數(shù)據(jù)正在迅速膨脹并變大。杰姆·格雷(Jim Gray)提出著名的&34;新摩爾定律&34;,即人類有史以來的數(shù)據(jù)總量,每過18個月就會翻一番。
大數(shù)據(jù)的數(shù)據(jù)量究竟有多大?
互聯(lián)網(wǎng)每天產(chǎn)生的全部內(nèi)容可以刻滿6.4億張DVD;全球每秒發(fā)送290萬封電子郵件,一分鐘讀一篇的話,足夠一個人晝夜不停地讀5.5年;Google每天需要處理24PB的數(shù)據(jù);每天會有2.88萬個小時的視頻上傳到Y(jié)ouTube,足夠一個人晝夜不停地觀看3.3年;網(wǎng)民每天在Facebook上要花費234億分鐘,被移動互聯(lián)網(wǎng)使用者發(fā)送和接收的數(shù)據(jù)高達44PB;Twitter上每天發(fā)布5000萬條消息,假設(shè)10秒就瀏覽一條消息,足夠一個人晝夜不停地瀏覽16年。隨著人類活動的進一步擴展,數(shù)據(jù)規(guī)模會急劇膨脹,包括金融、汽車、零售、餐飲、電信、能源、政務(wù)、醫(yī)療、體育、娛樂等在內(nèi)的各行業(yè)累積的數(shù)據(jù)量越來越大,數(shù)據(jù)類型也越來越多、越來越復(fù)雜。
那么對于這么龐大復(fù)雜的數(shù)據(jù),來源在哪里呢?現(xiàn)列舉如下:
1、按產(chǎn)生數(shù)據(jù)的主體劃分
(1)少量企業(yè)應(yīng)用產(chǎn)生的數(shù)據(jù)
如關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)和數(shù)據(jù)倉庫中的數(shù)據(jù)等。
(2)大量人產(chǎn)生的數(shù)據(jù)
如推特、微博、通信軟件、移動通信數(shù)據(jù)、電子商務(wù)在線交易日志數(shù)據(jù)、企業(yè)應(yīng)用的相關(guān)評論數(shù)據(jù)等。
(3)巨量機器產(chǎn)生的數(shù)據(jù)
如應(yīng)用服務(wù)器日志、各類傳感器數(shù)據(jù)、圖像和視頻監(jiān)控數(shù)據(jù)、二維碼和條形碼(條碼)掃描數(shù)據(jù)等。
2、按數(shù)據(jù)來源的行業(yè)劃分
(1)以BAT為代表的互聯(lián)網(wǎng)公司
百度公司數(shù)據(jù)總量超過了千PB級別,阿里巴巴公司保存的數(shù)據(jù)量超過了百PB級別,擁有90%以上的電商數(shù)據(jù),騰訊公司總存儲數(shù)據(jù)量經(jīng)壓縮處理以后仍然超過了百PB級別,數(shù)據(jù)量月增加達到10%。
(2)電信、金融、保險、電力、石化系統(tǒng)
電信行業(yè)數(shù)據(jù)年度用戶數(shù)據(jù)增長超過10%,金融每年產(chǎn)生的數(shù)據(jù)超過數(shù)十PB,保險系統(tǒng)的數(shù)據(jù)量也超過了PB級別,電力與石化方面,僅國家電網(wǎng)采集獲得的數(shù)據(jù)總量就達到了數(shù)十PB,石油化工領(lǐng)域每年產(chǎn)生和保存下來的數(shù)據(jù)量也將近百PB級別。
(3)公共安全、醫(yī)療、交通領(lǐng)域
一個中、大型城市,一個月的交通卡口記錄數(shù)可以達到3億條;整個醫(yī)療衛(wèi)生行業(yè)一年能夠保存下來的數(shù)據(jù)就可達到數(shù)百PB級別;航班往返一次產(chǎn)生的數(shù)據(jù)就達到TB級別;列車、水陸路運輸產(chǎn)生的各種視頻、文本類數(shù)據(jù),每年保存下來的也達到數(shù)十PB。
(4)氣象、地理、政務(wù)等領(lǐng)域
中國氣象局保存的數(shù)據(jù)將近10PB,每年約增數(shù)百TB;各種地圖和地理位置信息每年約數(shù)十PB;政務(wù)數(shù)據(jù)則涵蓋了旅游、教育、交通、醫(yī)療等多個門類,且多為結(jié)構(gòu)化數(shù)據(jù)。
(5)制造業(yè)和其他傳統(tǒng)行業(yè)
制造業(yè)的大數(shù)據(jù)類型以產(chǎn)品設(shè)計數(shù)據(jù)、企業(yè)生產(chǎn)環(huán)節(jié)的業(yè)務(wù)數(shù)據(jù)和生產(chǎn)監(jiān)控數(shù)據(jù)為主。其中產(chǎn)品設(shè)計數(shù)據(jù)以文件為主,非結(jié)構(gòu)化,共享要求較高,保存時間較長;企業(yè)生產(chǎn)環(huán)節(jié)的業(yè)務(wù)數(shù)據(jù)主要是數(shù)據(jù)庫結(jié)構(gòu)化數(shù)據(jù),而生產(chǎn)監(jiān)控數(shù)據(jù)則數(shù)據(jù)量非常大。在其他傳統(tǒng)行業(yè),雖然線下商業(yè)銷售、農(nóng)林牧漁業(yè)、線下餐飲、食品、科研、物流運輸?shù)刃袠I(yè)數(shù)據(jù)量劇增,但是數(shù)據(jù)量還處于積累期,整體體量都不算大,多則達到PB級別,少則數(shù)十TB或數(shù)百TB級別。
3、按數(shù)據(jù)存儲的形式劃分
大數(shù)據(jù)不僅僅體現(xiàn)在數(shù)據(jù)量大,還體現(xiàn)在數(shù)據(jù)類型多。如此海量的數(shù)據(jù)中,僅有20%左右屬于結(jié)構(gòu)化的數(shù)據(jù),80%的數(shù)據(jù)屬于廣泛存在于社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、電子商務(wù)等領(lǐng)域的非結(jié)構(gòu)化數(shù)據(jù)。
對于上述龐大的數(shù)據(jù)來源,大數(shù)據(jù)的處理流程的第一步就是大數(shù)據(jù)的采集與預(yù)處理。大數(shù)據(jù)采集是指通過RFID射頻數(shù)據(jù)、傳感器數(shù)據(jù)、社交網(wǎng)絡(luò)數(shù)據(jù)、移動互聯(lián)網(wǎng)數(shù)據(jù)等方式獲得各種類型的結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化的海量數(shù)據(jù)。大數(shù)據(jù)的采集通常采用多個數(shù)據(jù)庫、云端、hadoop的HDFS存儲等大數(shù)據(jù)存儲體來接收終端數(shù)據(jù),包括智能硬件端、多種傳感器端、網(wǎng)頁端、移動APP應(yīng)用端等,并且可以使用數(shù)據(jù)庫進行簡單的處理工作。
下面列舉下大數(shù)據(jù)采集的途徑:
(1)系統(tǒng)日志采集
可以使用海量數(shù)據(jù)采集工具,用于系統(tǒng)日志采集,如Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe等,這些工具均采用分布式架構(gòu),能滿足大數(shù)據(jù)的日志數(shù)據(jù)采集和傳輸需求。
(2)互聯(lián)網(wǎng)數(shù)據(jù)采集
通過網(wǎng)絡(luò)爬蟲或網(wǎng)站公開API等方式從網(wǎng)站上獲取數(shù)據(jù)信息,該方法可以數(shù)據(jù)從網(wǎng)頁中抽取出來,將其存儲為統(tǒng)一的本地數(shù)據(jù)文件,它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動關(guān)聯(lián)。除了網(wǎng)站中包含的內(nèi)容之外,還可以使用DPI或DFI等帶寬管理技術(shù)實現(xiàn)對網(wǎng)絡(luò)流量的采集。
(3)APP移動端數(shù)據(jù)采集
APP是獲取用戶移動端數(shù)據(jù)的一種有效方法,APP中的SDK插件可以將用戶使用APP的信息匯總給指定服務(wù)器,即便用戶在沒有訪問時,也能獲知用戶終端的相關(guān)信息,包括安裝應(yīng)用的數(shù)量和類型等。單個APP用戶規(guī)模有限,數(shù)據(jù)量有限;但數(shù)十萬APP用戶,獲取的用戶終端數(shù)據(jù)和部分行為數(shù)據(jù)也會達到數(shù)億的量級。
(4)與數(shù)據(jù)服務(wù)機構(gòu)進行合作
數(shù)據(jù)服務(wù)機構(gòu)通常具備規(guī)范的數(shù)據(jù)共享和交易渠道,人們可以在平臺上快速、明確地獲取自己所需要的數(shù)據(jù)。而對于企業(yè)生產(chǎn)經(jīng)營數(shù)據(jù)或?qū)W科研究數(shù)據(jù)等保密性要求較高的數(shù)據(jù),也可以通過與企業(yè)或研究機構(gòu)合作,使用特定系統(tǒng)接口等相關(guān)方式采集數(shù)據(jù)。
(5)大企業(yè)基礎(chǔ)支撐平臺
提供大數(shù)據(jù)服務(wù)平臺所需的虛擬服務(wù)器,結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫及物聯(lián)網(wǎng)絡(luò)資源等基礎(chǔ)支撐環(huán)境。重點要解決分布式虛擬存儲技術(shù),大數(shù)據(jù)獲取、存儲、組織、分析和決策操作的可視化接口技術(shù),大數(shù)據(jù)的網(wǎng)絡(luò)傳輸與壓縮技術(shù),大數(shù)據(jù)隱私保護技術(shù)等。
(6)智能感知設(shè)備
包括數(shù)據(jù)傳感體系、網(wǎng)絡(luò)通信體系、傳感適配體系、智能識別體系及軟硬件資源接入系統(tǒng),實現(xiàn)對結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的海量數(shù)據(jù)的智能化識別、定位、跟蹤、接入、傳輸、信號轉(zhuǎn)換、監(jiān)控、初步處理和管理等。涉及有針對大數(shù)據(jù)源的智能識別、感知、適配、傳輸、接入等技術(shù)。隨著物聯(lián)網(wǎng)技術(shù)、智能設(shè)備的發(fā)展,這種基于傳感器的數(shù)據(jù)采集會越來越多,相應(yīng)對于這類的研究和應(yīng)用也會越來越重要。
大數(shù)據(jù)正帶來一場信息社會的變革。大量的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的廣泛應(yīng)用,致使人們需要重新思考已有的IT模式。與此同時,大數(shù)據(jù)將推動進行又一次基于信息革命的業(yè)務(wù)轉(zhuǎn)型,使社會能夠借助大數(shù)據(jù)獲取更多的社會效益和發(fā)展機會。龐大的數(shù)據(jù)需要我們進行剝離、整理、歸類、建模、分析等操作,通過這些動作后,我們開始建立數(shù)據(jù)分析的維度,通過對不同的維度數(shù)據(jù)進行分析,最終才能得到想到的數(shù)據(jù)和信息。
雖然采集端本身有很多數(shù)據(jù)庫,但是如果要對這些海量數(shù)據(jù)進行有效的分析,還是應(yīng)該將這些數(shù)據(jù)導(dǎo)入到一個集中的大型分布式數(shù)據(jù)庫或者分布式存儲集群當(dāng)中,同時,在導(dǎo)入的基礎(chǔ)上完成數(shù)據(jù)清洗和預(yù)處理工作。也有一些用戶會在導(dǎo)入時使用來自Twitter的Storm來對數(shù)據(jù)進行流式計算,來滿足部分業(yè)務(wù)的實時計算需求。
現(xiàn)實世界中數(shù)據(jù)大體上都是不完整、不一致的&34;臟&34;數(shù)據(jù),無法直接進行數(shù)據(jù)挖掘,或挖掘結(jié)果差強人意,為了提高數(shù)據(jù)挖掘的質(zhì)量,產(chǎn)生了數(shù)據(jù)預(yù)處理技術(shù)。
大數(shù)據(jù)的預(yù)處理過程列舉如下:
(1)對殘缺數(shù)據(jù)進行預(yù)處理
這一類數(shù)據(jù)主要是因為部分信息缺失,如公司的名稱、客戶的區(qū)域信息、業(yè)務(wù)系統(tǒng)中主表與明細表不能匹配等數(shù)據(jù)。將這一類數(shù)據(jù)過濾出來,按照缺失的內(nèi)容分別填入對應(yīng)的文檔信息,并提交給客戶,在規(guī)定時間內(nèi)補全,才可寫入數(shù)據(jù)倉庫。
(2)對錯誤數(shù)據(jù)進行預(yù)處理
這一類錯誤產(chǎn)生的原因往往是業(yè)務(wù)系統(tǒng)不夠健全,在接收輸入信息后沒有進行判斷直接將數(shù)據(jù)寫入后臺數(shù)據(jù)庫導(dǎo)致的,比如數(shù)值數(shù)據(jù)輸成全角數(shù)字字符、字符串?dāng)?shù)據(jù)后面有一個回車操作、日期格式不正確等。這類數(shù)據(jù)也需要分類,對于類似于全角字符、數(shù)據(jù)前后有不可見字符問題的只能寫SQL語句查找出來,讓客戶在修正之后抽取。日期格式的錯誤會導(dǎo)致ETL運行失敗,需要去業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫用SQL的方式挑出來,修正之后再抽取。
(3)對重復(fù)的數(shù)據(jù)進行預(yù)處理
這一類數(shù)據(jù)多出現(xiàn)在維護表中,是將重復(fù)數(shù)據(jù)記錄的所有字段導(dǎo)出來,讓客戶確認(rèn)并整理。數(shù)據(jù)清理的方法是通過填寫無效和缺失的值、光滑噪聲的數(shù)據(jù)、識別或刪除離群點并解決不一致性來&34;清理&34;數(shù)據(jù)。主要是達到格式標(biāo)準(zhǔn)化、異常數(shù)據(jù)消除、錯誤糾正、重復(fù)數(shù)據(jù)的清除等目的。數(shù)據(jù)清理是將數(shù)據(jù)庫中所存數(shù)據(jù)精細化,去除重復(fù)無用數(shù)據(jù),并使剩余部分的數(shù)據(jù)轉(zhuǎn)化成標(biāo)準(zhǔn)可接受格式的過程。
(4)對數(shù)據(jù)的不一致性進行預(yù)處理
從多數(shù)據(jù)源集成的數(shù)據(jù)語義會不一樣,可供定義完整性約束用于檢查不一致性,也可通過對數(shù)據(jù)進行分析來發(fā)現(xiàn)他們之間的聯(lián)系,從而保持?jǐn)?shù)據(jù)的一致性。
(5)數(shù)據(jù)特征的選取
將不重要的或不相關(guān)的特征從原有特征中刪除,或者通過對特征進行重組和比較來減少個數(shù)。其原則是在保留、甚至提高原有判斷能力的同時減少特征向量的維度。
在大數(shù)據(jù)項目實戰(zhàn)中,常用的大數(shù)據(jù)采集框架如下:
(1)流數(shù)據(jù)采集kafka框架
Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,由Scala和Java編寫。Kafka十分適合采集互聯(lián)網(wǎng)用戶行為數(shù)據(jù)。
(2)數(shù)據(jù)遷移Sqoop框架
Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(如mysql)間進行數(shù)據(jù)的傳遞,可以將一個關(guān)系型數(shù)據(jù)庫(例如 :MySQL )中的數(shù)據(jù)導(dǎo)進入到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫中。
(3)日志采集Flume框架
Flume最早是Cloudera提供的日志采集系統(tǒng),目前是Apache下的一個孵化項目,F(xiàn)lume主要在日志系統(tǒng)采集各類數(shù)據(jù)
(二)大數(shù)據(jù)遷移框架Sqoop
1、Sqoop 概述
基于Hadoop之上的數(shù)據(jù)傳輸工具Sqoop是Apache的頂級項目,主要用于在Hadoop和關(guān)系數(shù)據(jù)庫、數(shù)據(jù)倉庫、NoSQL系統(tǒng)間傳遞數(shù)據(jù)。通過Sqoop我們可以方便地將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫導(dǎo)入到HDFS、HBase、Hive, 或者將數(shù)據(jù)從HDFS導(dǎo)出到關(guān)系數(shù)據(jù)庫。
Sqoop是連接傳統(tǒng)關(guān)系型數(shù)據(jù)庫和Hadoop的橋梁,它不需要開發(fā)人員編寫相應(yīng)的MapReduce代碼,只需要編寫簡單的配置腳本即可,大大提升了開發(fā)效率。
通過Sqoop我們可以方便的將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫導(dǎo)入到HDFS、HBase、Hive,或者將數(shù)據(jù)從HDFS導(dǎo)出到關(guān)系數(shù)據(jù)庫
2、Sqoop的應(yīng)用場景
在工作中,我們經(jīng)常會遇到下面這樣的場景:
場景一:將關(guān)系型數(shù)據(jù)庫中某張表的數(shù)據(jù)抽取到Hadoop( HDFS/Hive/HBase)上;
場景二:將Hadoop上的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫中。
那么如何解決這兩類問題呢?通常情況下是通過開發(fā)MapReduce來實現(xiàn)。
導(dǎo)入: MapReduce 輸入為DBInputFormat類型,輸出為TextOutputFormat.
導(dǎo)出: MapReduce 輸入為TextInputFormat類型,輸出為DBOutputFormat.
使用MapReduce處理以上兩個場景時存在如下問題:每次都需要編寫MapReduce程序,非常麻煩。在沒有出現(xiàn)Sqoop之前,實際生產(chǎn)中有很多類似的需求,需要通過編寫MapReduce去實現(xiàn),然后形成一個工具,后來慢慢就將該工具代碼整理出一個框架并逐步完善,最終就有了Sqoop的誕生。Sqoop的導(dǎo)入導(dǎo)出處理流程如下所示:
Sqoop就是將導(dǎo)入或?qū)С雒罘g成 MapReduce 程序來實現(xiàn) 在翻譯出的 MapReduce 中主要是對 InputFormat 和 OutputFormat 進行定制
3、Sqoop的安裝
下載Sqoop
進入http://sqoop.apache.org/
進入&34;&34;
絕大部分企業(yè)所使用的sqoop的版本都是sqoop1,sqoop1.4.6 或者 sqoop1.4.7 是sqoop1,sqoop1.99.7是 sqoop2,此處使用版本sqoop1.4.6.bin__hadoop2.0.4alpha.tar.gz。
(1)解壓縮
[hadoop@ sqoop]$ tar zxvf sqoop1.4.6.bin__hadoop2.0.4alpha.tar.gz
(2)進入到 conf 文件夾,找到 sqoopenvtemplate.sh,修改其名稱為 sqoopenv.sh
[hadoop@sqoop ~]$ cd apps/
[hadoop@sqoop apps]$ ls
apachehive2.3.3bin hadoop2.7.5 hbase1.2.6 sqoop1.4.6.bin__hadoop2.0.4alpha zookeeper3.4.10
[hadoop@sqoop apps]$ mv sqoop1.4.6.bin__hadoop2.0.4alpha/ sqoop1.4.6
[hadoop@sqoop apps]$ cd sqoop1.4.6/conf/
[hadoop@sqoop conf]$ ls
oraoopsitetemplate.xml sqoopenvtemplate.sh sqoopsite.xml
sqoopenvtemplate.cmd sqoopsitetemplate.xml
[hadoop@sqoop conf]$ mv sqoopenvtemplate.sh sqoopenv.sh
(3)修改 sqoopenv.sh
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop2.7.5
Set path to where hadoopcore.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop2.7.5
(4)加入 mysql 驅(qū)動包到 sqoop1.4.6/lib 目錄下
[hadoop@sqoop ]$ cp mysqlconnectorjava5.1.40bin.jar apps/sqoop1.4.6/lib/
(5)配置系統(tǒng)環(huán)境變量
export SQOOP_HOME=/home/sqoop/apps/sqoop1.4.6
export PATH=$PATH:$SQOOP_HOME/bin
(6)驗證安裝是否成功
sqoopversion
4、Sqoop的基本命令
首先,我們可以使用 sqoop help 來查看,sqoop 支持哪些命令
[hadoop@sqoop ~]$ sqoop help
Warning: /home/hadoop/apps/sqoop1.4.6/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/hadoop/apps/sqoop1.4.6/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/04/12 13:37:19 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
usage: sqoop COMMAND [ARGS]
Available commands:
codegen Generate code to interact with database records
createhivetable Import a table definition into Hive
eval Evaluate a SQL statement and display the results
export Export an HDFS directory to a database table
help List available commands
import Import a table from a database to HDFS
importalltables Import tables from a database to HDFS
importmainframe Import datasets from a mainframe server to HDFS
job Work with saved jobs
listdatabases List available databases on a server
listtables List available tables in a database
merge Merge results of incremental imports
metastore Run a standalone Sqoop metastore
version Display version information
See &39;sqoop help COMMAND&39; for information on a specific command.
(1)列出MySQL數(shù)據(jù)有哪些數(shù)據(jù)庫
[hadoop@sqoop ~]$ sqoop listdatabases \
> connect jdbc:mysql://hadoop1:3306/ \
> username root \
> password root
Warning: /home/hadoop/apps/sqoop1.4.6/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/hadoop/apps/sqoop1.4.6/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/04/12 13:43:51 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
18/04/12 13:43:51 WARN tool.BaseSqoopTool: Setting your password on the commandline is insecure. Consider using P instead.
18/04/12 13:43:51 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
mysql
performance_schema
test
(2)列出MySQL中的某個數(shù)據(jù)庫有哪些數(shù)據(jù)表:
[hadoop@hadoop3 ~]$ sqoop listtables \
> connect jdbc:mysql://hadoop1:3306/mysql \
> username root \
> password root
(3)創(chuàng)建一張跟mysql中的help_keyword表一樣的hive表goods:
sqoop createhivetable \
connect jdbc:mysql://192.168.10.100:3306/mysql \
username root \
password root \
table help_keyword \
hivetable goods
5、從RDBMS導(dǎo)入到HDFS中
語法格式:
sqoop import (genericargs) (importargs)
常用參數(shù)
connect <jdbcuri> jdbc 連接地址
connectionmanager <classname> 連接管理者
driver <classname> 驅(qū)動類
hadoopmapredhome <dir> $HADOOP_MAPRED_HOME
help help 信息
P 從命令行輸入密碼
password <password> 密碼
username <username> 賬號
verbose 打印流程信息
connectionparamfile <filename> 可選參數(shù)
示例1:導(dǎo)入mysql庫中的goods的數(shù)據(jù)到HDFS上。導(dǎo)入的默認(rèn)路徑:/goods
sqoop import \
connect jdbc:mysql://hadoop1:3306/mysql \
username root \
password root \
table good \
m 1
示例2: 導(dǎo)入時指定分隔符和導(dǎo)入路徑
sqoop import \
connect jdbc:mysql://192.168.10.100:3306/mysql \
username root \
password root \
table goods \
targetdir /goods_bak \
fieldsterminatedby &39;\t&39; \
m 2
示例3:導(dǎo)入表數(shù)據(jù)到HDFS
下面的命令用于從MySQL數(shù)據(jù)庫服務(wù)器中的emp表導(dǎo)入HDFS:
bin/sqoop import \
connect jdbc:mysql://hdpnode01:3306/test \
username root \
password root \
table emp \
m 1
6、將數(shù)據(jù)從HDFS文件導(dǎo)出到RDBMS數(shù)據(jù)庫
導(dǎo)出前,目標(biāo)表必須存在于目標(biāo)數(shù)據(jù)庫中。默認(rèn)操作是將文件中的數(shù)據(jù)使用INSERT語句插入到表中。更新模式下,是生成UPDATE語句更新表數(shù)據(jù)。以下是export命令語法:
sqoop export (genericargs) (exportargs)
示例1:數(shù)據(jù)是在HDFS 中&34;EMP/&34;目錄的emp_data文件中。所述emp_data如下:
1201, gopal, manager, 50000, TP
1202, manisha, preader, 50000, TP
1203, kalil, php dev, 30000, AC
1204, prasanth, php dev, 30000, AC
1205, kranthi, admin, 20000, TP
1206, satish p, grp des, 20000, GR
(1)首先需要手動創(chuàng)建mysql中的目標(biāo)表
$ mysql
mysql> USE db;
mysql> CREATE TABLE employee (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20),
deg VARCHAR(20),
salary INT,
dept VARCHAR(10));
(2)然后執(zhí)行導(dǎo)出命令
bin/sqoop export \
connect jdbc:mysql://hdpnode01:3306/test \
username root \
password root \
table employee \
exportdir /user/hadoop/emp/
(3)驗證表mysql命令行。
mysql>select from employee;
(三)基于流數(shù)據(jù)采集框架kafka
Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費者在網(wǎng)站中的所有動作流數(shù)據(jù)。
1、Kafka的組成結(jié)構(gòu)如下:
2、Kafka的集群組成結(jié)構(gòu)如下:
(1)、Broker
Kafka集群包含一個或多個服務(wù)器,這種服務(wù)器被稱為broker
(2)、Topic
每條發(fā)布到Kafka集群的消息都有一個類別,這個類別被稱為Topic
(3)、Producer
負責(zé)發(fā)布消息到Kafka broker
(4)、Consumer
消息消費者,向Kafka broker讀取消息的客戶端
(5)、ZooKeeper
ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護、域名服務(wù)、分布式同步、組服務(wù)等
3、使用kafka采集和消費數(shù)據(jù)
(1)創(chuàng)建topic
步驟1:創(chuàng)建名為goods的topic
kafkatopics.sh create zookeeper localhost:2181 replicationfactor 1 partitions 1 topic goods
步驟2:查看topic列表
查看kafka中topic的列表,命令如下:
kafkatopics.sh list zookeeper 127.0.0.1:2181
(2)生產(chǎn)者生產(chǎn)數(shù)據(jù)
步驟1: 啟動生產(chǎn)者,并向已經(jīng)創(chuàng)建的名為test的topic中發(fā)送數(shù)據(jù)
kafkaconsoleproducer.sh brokerlist localhost:9092 topic goods
步驟2:向goods的topic發(fā)送下列數(shù)據(jù)
U001 lily kafka browse_action
(3)消費者消費數(shù)據(jù)
步驟1:啟動消費者,并消費名為test的topic中的數(shù)據(jù)
kafkaconsoleconsumer.sh bootstrapserver localhost:9092 topic goods frombeginning
步驟2:消費者消費數(shù)據(jù)
U001 lily kafka browse_action
(四)日志采集工具Flume
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ù)接受方(可定制)的能力。
當(dāng)前Flume有兩個版本Flume 0.9X版本的統(tǒng)稱Flumeog,F(xiàn)lume1.X版本的統(tǒng)稱Flumeng。由于Flumeng經(jīng)過重大重構(gòu),與Flumeog有很大不同,使用時請注意區(qū)分。
Flume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力 。Flume提供了從console(控制臺)、RPC(ThriftRPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統(tǒng)),支持TCP和UDP等2種模式,exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力。
Flume的特點:
(1)Flume可以高效率的將多個服務(wù)器采集的日志信息存入HDFS/HBase中
(2)使用Flume可以將從多個服務(wù)器中獲取的數(shù)據(jù)迅速的移交給Hadoop中
(3)Flume也可以采集規(guī)模龐大的社交數(shù)據(jù),比如Facebook,Twitter,電商網(wǎng)站 如亞馬遜等
(4)支持多種不同的數(shù)據(jù)源
Flume的優(yōu)勢:
(1)Flume可以將應(yīng)用產(chǎn)生的數(shù)據(jù)存儲到任何集中存儲器中,比如DFS,HBase
(2)當(dāng)收集數(shù)據(jù)的速度超過將寫入數(shù)據(jù)的時候,F(xiàn)lume會在數(shù)據(jù)生產(chǎn)者和數(shù)據(jù)收集器間做出調(diào)整,保證其能夠在兩者之間提供一共平穩(wěn)的數(shù)據(jù)
(3)Flume的管道是基于事務(wù),保證了數(shù)據(jù)在傳送和接收時的一致性
(4)Flume是可靠的,容錯性高的,可升級的,易管理的,并且可定制的
Flume是以agent為最小獨立運行單位。單agent由Source、Sink和Channel三大組件構(gòu)成,如下圖:
(1)Source
從數(shù)據(jù)發(fā)生器接收數(shù)據(jù),并將接收的數(shù)據(jù)以Flume的event格式傳遞給一個或者多個通道channel,Flume提供多種數(shù)據(jù)接收的方式,比如Avro,Thrift,twitter1%等
(2)Channel:
channel是一種短暫的存儲容器,它將從source處接收到的event格式的數(shù)據(jù)緩存起來,直到它們被sinks消費掉,它在source和sink間起著橋梁的作用,channel是一個完整的事務(wù),這一點保證了數(shù)據(jù)在收發(fā)的時候的一致性. 并且它可以和任意數(shù)量的source和sink鏈接. 支持的類型有: JDBC channel , File System channel , Memort channel等.
(3)sink:
sink將數(shù)據(jù)存儲到集中存儲器比如Hbase和HDFS,它從channals消費數(shù)據(jù)(events)并將其傳遞給目標(biāo)地. 目標(biāo)地可能是另一個sink,也可能HDFS,HBase.
示例:
監(jiān)控一個文件實時采集新的數(shù)據(jù)輸出到控制臺,數(shù)據(jù)日志格式如下:
商品編號,商品名稱,用戶編號,用戶評價(單位:星)
日志的樣本數(shù)據(jù)如下:
g001,hadoop,u001,3
g002,spark,u002,4
g003 ,Machine Learning,u003,5
(1)編輯flume配置文件flume.conf
Flume agent config
a1.sources = r1
a1.sinks = k1
a1.channels = c1
Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.port = 6666
a1.sources.r1.host = 10.42.135.101
a1.sources.r1.channels = c1
a1.sources.r1.command=tail F /home/logger.txt
Describe the sink
a1.sinks.k1.type = logger
Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
(2)啟動flume agent
利用前面的配置文件啟動flume agent,啟動命令如下:
flumeng agent conf /home/logger.txt conffile /home/flume.conf name a1 Dflume.root.logger=INFO,console
(3)向logger.txt寫入數(shù)據(jù)測試agent
用echo命令追加到/home/logger.txt內(nèi)容,向exec.txt 追加內(nèi)容echo &34;hello world&34; >>/home/exec.txt。
《大數(shù)據(jù)和人工智能交流》的宗旨
1、將大數(shù)據(jù)和人工智能的專業(yè)數(shù)學(xué):概率數(shù)理統(tǒng)計、線性代數(shù)、決策論、優(yōu)化論、博弈論等數(shù)學(xué)模型變得通俗易懂。
2、將大數(shù)據(jù)和人工智能的專業(yè)涉及到的數(shù)據(jù)結(jié)構(gòu)和算法:分類、聚類 、回歸算法、概率等算法變得通俗易懂。
3、最新的高科技動態(tài):數(shù)據(jù)采集方面的智能傳感器技術(shù);醫(yī)療大數(shù)據(jù)智能決策分析;物聯(lián)網(wǎng)智慧城市等等。
根據(jù)初學(xué)者需要會有C語言、Java語言、Python語言、Scala函數(shù)式等目前主流計算機語言。
根據(jù)讀者的需要有和人工智能相關(guān)的計算機科學(xué)與技術(shù)、電子技術(shù)、芯片技術(shù)等基礎(chǔ)學(xué)科通俗易懂的文章。
拓展知識:
- 1空調(diào)毯(什么是空調(diào)毯?有哪些使用方法?)
- 2索尼電視客服24小時電話(如何快速聯(lián)系并解決問題)
- 3方太燃氣灶24小時客服熱線(如何快速聯(lián)系并解決問題)
- 4富新防盜門開鎖(富新防盜門開鎖服務(wù):保護您家庭安全的首選)
- 5沈陽吸油煙機維修(如何找到專業(yè)的維修服務(wù))
- 6電視怎么顯示圖像怎么回事啊(電視顯示圖像原理揭秘)
- 7usb轉(zhuǎn)ttl壞了怎么修(USB轉(zhuǎn)TTL壞修法探究)
- 8匯川變頻器報警故障代碼大全(如何快速解決報警問題)
- 9天然氣公司投訴電話95158(如何正確使用并有效投訴)
- 10天津有線電視客服電話96596(如何快速找到并聯(lián)系客服)。
-
臺風(fēng)“蝴蝶”明日或?qū)⒌顷懀A南大部將有大到暴雨
2025-06-12
-
寧德紅日燃氣灶維修(如何自行解決常見問題)
2025-06-07
-
ws08m360ti故障(WS08M360Ti故障分析及解決辦法)
2025-06-07
-
萬和燃氣灶熄火維修(如何自行處理常見故障)
2025-06-07


