尚大數(shù)據(jù)技術(shù)之離線項(xiàng)目平臺(tái)_第1頁(yè)
尚大數(shù)據(jù)技術(shù)之離線項(xiàng)目平臺(tái)_第2頁(yè)
尚大數(shù)據(jù)技術(shù)之離線項(xiàng)目平臺(tái)_第3頁(yè)
尚大數(shù)據(jù)技術(shù)之離線項(xiàng)目平臺(tái)_第4頁(yè)
尚大數(shù)據(jù)技術(shù)之離線項(xiàng)目平臺(tái)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

、項(xiàng)目調(diào)研、項(xiàng)目需求分析明確項(xiàng)目到底需要做什么,以及最終做成什么樣子,需求分析不明確,項(xiàng)目周期就不,按照功能模塊進(jìn)行具體的設(shè)計(jì),比如HBase,關(guān)系型數(shù)據(jù)庫(kù)等表結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)字典設(shè)計(jì),1.3、編碼實(shí)現(xiàn)、數(shù)據(jù)。、統(tǒng) 、HttpGetXML格式的返回結(jié)果。、能夠做全文索引和搜尋。在Java開發(fā)環(huán)境里L(fēng)ucene是一個(gè)成免費(fèi)開源工具。就其本身而言,LuceneJava信息檢索程序庫(kù)。人們經(jīng)常提到信息檢索程序庫(kù),雖然與搜索引擎有關(guān),但不應(yīng)該將信息檢索程序庫(kù)與搜索引擎相。、luence&solrLucene時(shí)你仍需要關(guān)注搜索引擎系統(tǒng),例如API可以讓你的應(yīng)用使用Solr可以根據(jù)配置文件定義數(shù)據(jù)解析的方式,更像是一個(gè)搜索框架,它也支持主從、熱換庫(kù)等操作。還添加了飄紅、facet等搜Solr幫你做了,但是是一個(gè)處于的框架,Lucene很多新特性不向上透?jìng)鳎杂袝r(shí)候可能發(fā)現(xiàn)需要一個(gè)功能,LuceneSolr上已經(jīng)看不到相關(guān)接口。SparkLogisticRandomK-meansFuzzyK-means、精準(zhǔn)、推送流程簡(jiǎn)者頁(yè)JS將位發(fā)送給公/web.html 、用戶、使用第產(chǎn)第比較、第數(shù)SQLNoSQL。、、、 、 、用戶簡(jiǎn)而言之,用戶(a)為了讓團(tuán)隊(duì)成員在產(chǎn)品設(shè)計(jì)的過程中能夠拋開個(gè)人喜好,每天數(shù)據(jù)量大500萬(wàn)~3000萬(wàn)條左右Job甚至有時(shí)會(huì)有小時(shí)數(shù)據(jù)。Job總量大40個(gè)左右,自己編寫的MapReduce任務(wù)大概30個(gè)左右,Hive10個(gè)。2NNHA、RMHA、hive、CPU:128HregionServer:16-24GMRCPU/內(nèi):32-64/64-128G、JobETLJob10分鐘就OK了,MapperTask10~20MapReduceJobJob30HiveJob30SqoopMysql中并發(fā):Oozie5個(gè)124~5Job收集各個(gè)不同客戶端的用戶行為數(shù)據(jù),最終保存到HDFS、關(guān)、、訪客/、推廣效、內(nèi)容(跳出率等、用戶/PCip地址 一的uuid,過期時(shí)間設(shè)置為10年。采用的固定碼識(shí)別。IMEI、MEID、S/N等采用客戶端種植uuid(有時(shí)也叫作token)的方式,當(dāng)用戶第一次系統(tǒng)的時(shí)候,在磁盤uuid10年。活躍訪客數(shù)量:統(tǒng)計(jì)時(shí)間段內(nèi)過系統(tǒng)的訪客(不管是新訪客、還是老訪客)流失訪客數(shù)量:上一個(gè)時(shí)間端過系統(tǒng),但是當(dāng)前統(tǒng)計(jì)時(shí)間段沒有放過的訪客數(shù)量回流訪客數(shù)量:上一個(gè)時(shí)間段沒有過,但是當(dāng)前時(shí)間段過的訪客數(shù)量。指業(yè)務(wù)系統(tǒng)中的用戶,直接使用業(yè)務(wù)系統(tǒng)中的會(huì)員唯一id來標(biāo)識(shí)。PC端在中種植上一個(gè)操作的時(shí)間,在操作的時(shí)候,進(jìn)行判斷時(shí)間是否過期,如果過期重新生成會(huì)話,如果沒有過期,更新值。pc端種植上一個(gè)操作時(shí)間進(jìn)行判斷跳出會(huì)話數(shù)量:在一個(gè)會(huì)話中,只一次的會(huì)話數(shù)離開的數(shù)量占進(jìn)入數(shù)量的百分比跳出會(huì)話數(shù)量///用戶通過第的外部進(jìn)入到我們的系統(tǒng)中,該第的稱之為外鏈。、Page、Unique、Page統(tǒng)計(jì)的是各個(gè)不同深度的訪客/會(huì)話數(shù)量,它能夠展示一個(gè)不同深度的頁(yè)面的、維度 外鏈維度:、360、等 、于:GFS(FileSystem)、Map/Reduce、BigTable三 。DougCutting在開Nutch爬蟲的時(shí)候,網(wǎng)絡(luò)數(shù)據(jù)量太大,從而開發(fā)出Hadoop、HadoopNNNNJT管理資源以及任務(wù)調(diào)度對(duì)CPU壓力比較JT、HadoopNNContainer資源容器的,在Hadoop1.x中資源被描述為slot,每臺(tái)機(jī)器分別設(shè)置2個(gè)slot(2mapslot+2reduceslot)maptaskslot來進(jìn)行執(zhí)行;hadoop2.x中候是分配core的個(gè)數(shù)。、HadoopDistributedHDFSNode、Scheduler調(diào)度器:job、InPutMapshufflereduceOutput、HBaseHBaserowkeyHBasemrHBase、基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù),可以將結(jié)構(gòu)化的數(shù)據(jù)為一張表,提供基本的SQL查詢,操HiveHBase整合(HiveHBase表UDF、、、、Nginx一個(gè)高性能的web服務(wù)器,對(duì)于靜態(tài)資源的速度特別快,單臺(tái)機(jī)器能夠支持Webtomcat:jetty:netty:IISwindows2.0.2、Nginx 下創(chuàng)建$$mkdir#$$tar-zxftengine-2.0.2.tar.gz##yum-yinstallgccopenssl-develzlib-develpcre-###make&&makecdusr/local/nginx/(查看安裝是否成功 結(jié)安 操作命 配置文 默認(rèn)的頁(yè)面#sbin/nginxNginx#ps-ef|grep#sbin/nginx-s#sbin/nginx-sconfnginx.conf#sbin/nginx-**#sbin/nginx-./configure:error:theHTTPrewritemodulerequiresthePCRE解決方案:yuminstallpcre-MySQL:Oracle:PostgreSQL:MySQL類似,linuxDerby:java編寫的基于內(nèi)存的數(shù)據(jù),體積小,支持兩種模式:內(nèi)嵌+服務(wù)器模式,經(jīng)常用SqlACID列行索引:、與非關(guān)系型數(shù)據(jù)庫(kù)比較(NotOnly鍵值對(duì)數(shù)據(jù)庫(kù):redis等,數(shù)據(jù)不是結(jié)構(gòu)化,是一個(gè)key對(duì)應(yīng)一個(gè)value,查詢也是如列式數(shù)據(jù)庫(kù):HBase、Cassandra文檔型數(shù)據(jù)庫(kù)::MongoDB圖數(shù)據(jù)庫(kù):Neo4jsql查詢,每個(gè)數(shù)據(jù)庫(kù)都有自己查詢操作關(guān)系型數(shù)據(jù)庫(kù)和NoSQL整合使用,一般使用NoSQL作為部分場(chǎng)景的數(shù)據(jù),使用作為持久化的,例如:mysql+redis==>redis(做緩存、數(shù)據(jù)的類、Launch名稱,launch為平臺(tái)名稱,launch中為名稱,launch為平臺(tái)名稱,launch中為sdk版本號(hào),websitel瀏覽器屏幕大小,screen.width+"*"、PageView名稱,pageview為名稱,pageview為、Event名稱,event為的category值,即的種類名稱,名稱,event為的category值,即的種類名稱,的action值,即的活動(dòng)名稱,不空就是用戶自定義,支持在上定義多個(gè)、ChargeRequest名稱,event為名稱,event為id(order訂單名稱(order訂單金額(currency訂單支付方式(payment、ChargeSuccess名稱,ChargeSuccess為id(ordersdk名稱,平臺(tái)名稱為、ChargeRefund名稱,ChargeRefund為名稱,ChargeRefund為id(ordersdk名稱,平臺(tái)名稱為、NginxIP客戶端的IP服務(wù)器的時(shí)間(常、Nginx格式舉例:IP地址^A服務(wù)器時(shí)間^A、Nginx 下的##cpnginx.conf#http中添加如# user_log_format#server中添加如 #server中添加location如#locationwhat.pnglocation~.*(what)\.(png)$#設(shè)置請(qǐng)求類型為請(qǐng)default_type#記錄日志,到一個(gè)flume用戶可以的文件夾中,需要修改權(quán)access_logusr/local/nginx/user_logs/access.loguser_log_format;#給定的服務(wù)器位置root}##chownroot:root od644#mkdir od777#cp/opt/softwares/what.pngStep6、將what.png文件移動(dòng)到#cp/opt/softwares/what.png#cat/usr/local/nginx/logs/nginx.pid#kill-9xxxxx#ps-ef|grepnginx#kill-9xxxxx#sbin/nginx-s#、Flume、編寫Flume上傳日志文件到#Namethecomponentsonthisagenta1.sources=r1a1.sinks=k1a1.channels=c1#Describe/configurethesourcea1.sources.r1.type=execmand=tail-F =/bin/bash-#Describethesinka1.sinks.k1.type=hdfsa1.sinks.k1.hdfs.path=hdfs://0:8020/event-logs/%Y/%m/%da1.sinks.k1.hdfs.round=truea1.sinks.k1.hdfs.useLocalTimeStamp=true#積攢多少個(gè)EventflushHDFS一次a1.sinks.k1.hdfs.batchSize=10000a1.sinks.k1.hdfs.fileTypeDataStreama1.sinks.k1.hdfs.rollInterval=0a1.sinks.k1.hdfs.rollSize=a1.sinks.k1.hdfs.rollCount=a1.sinks.k1.hdfs.idleTimeout60a1.sinks.k1.hdfs.minBlockReplicas=#Useachannelwhichbufferseventsina1.channels.c1.typea1.channels.c1.type=#2*1024*1024*100a1.channels.c1.capacity=#單個(gè)進(jìn)程的最大處理能力a1.channels.c1.transactionCapacity=512000#Bindthesourceandsinktothea1.sources.r1.channels=c1a1.sinks.k1.channel=c1conf、啟動(dòng)測(cè)$$bin/flume-ng--conf--namea1-Dflume.root.logger=INFO,console>logs/flume-load-log-2-hdfs.log2>&1Flume實(shí)時(shí)上傳日志的進(jìn)程掛掉了,那么一般第二天我們需要手動(dòng)上傳前一天的日志,Nginx、編見+%m)/$(date-d"yesterday",如 mkdir-pkill-USR1`cat$$mkdir-p $$mvsplit_nginx_log.sh##chownroot:root#odu+x##crontab-##|#||dayof#|||#||||dayof#|||||.#||||||#|||||00***Nginx、編見yesterday=$(date--date='1daysago'export#遞歸創(chuàng)建/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/hdfsdfs-mkdir-p/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/hdfsdfs-put-f-p${LOGS_PATH}/$(date-d"yesterday"+"%Y")/$(date-d"yesterday"+"%m")/$(date-d"yesterday"+"%d")/access_*.logStep1、修改HADOOP_USER_NAME對(duì)應(yīng)的HDFS##export<!--關(guān)閉權(quán)限檢查 ##mvput_nginx_log_2_hdfs.sh##、ETL數(shù)據(jù)來源:在HDFS上的日志文件、HBase1即按天分表,一天的數(shù)據(jù)存放于一中,rowkey采用隨機(jī)值,不需要有特定規(guī)律,盡可、倒敘或綴上加數(shù)個(gè)隨機(jī)的數(shù)字。(HregionServer的數(shù)量求模運(yùn)算)根據(jù)業(yè)務(wù)預(yù)估數(shù)據(jù)量,提前建好預(yù)分區(qū),避免region操作流程:HBase數(shù)據(jù)→InputFormat→map→shuffle→reduce→OutputFormat、HiveHiveexternaltableHBase中的數(shù)據(jù)表數(shù)據(jù)結(jié)果:保存于HDFS上(Hive結(jié)果表中)操作流程:HiveexternaltableUDFHQL→Hive(HDFS上)Sqoop、Mysql,星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu)數(shù)據(jù)集的每一個(gè)維度都直接與事實(shí)表相連接不存在ABC以及國(guó)家A省B的城市D兩條記錄,那么國(guó)家A和省B的信息分別了兩次,即存在,的維表進(jìn)一步層次化,原有的各維表可能被擴(kuò)展為小的事實(shí)表,形成一些局部的"層次"省份,城市等維表。它的優(yōu)點(diǎn)是:通過最大限度地減少數(shù)據(jù)量以及聯(lián)合較小的維表來改雪花模型加載數(shù)據(jù)集時(shí),ETL操作在設(shè)計(jì)上更加復(fù)雜,而且由于附屬模型的限制,不能并ETL就相對(duì)簡(jiǎn)單,而且可以補(bǔ)全內(nèi)容:IP地址信息補(bǔ)全地域信息(國(guó)家、省份、城市等)、瀏覽器相關(guān)信息補(bǔ)全,服 使用MapReduce通過TextInputFormat的方式將HDFS中的數(shù)據(jù)到map中,最終通日志于HDFS中,一行一條日志,解析出操作行為中具體的key-value值,然后進(jìn)行解IP地址解析/HBaserowkeyHBase表的創(chuàng)建JavaAPI、IP使用淘寶接口解析IP地址 限制:10QPS(QueryPer使用第IPIP通過第的IP庫(kù),逐漸生成自己的IP庫(kù),自主管理。startip(ip)endip(ip)尖叫提示:判斷某個(gè)IP是否在某個(gè)地域的起始IPIPIPLong////IPpubliclongIpToLong(stringstrIp){long[]ip=newlong[4];intposition1=intposition2=strIp.IndexOf(".",position1+1);intposition3=strIp.IndexOf(".",position2+//將每個(gè).ip[0]ip[0]=long.Parse(strIp.Substring(0,ip[1]=long.Parse(strIp.Substring(position1+1,position2-position1-1));ip[2]=long.Parse(strIp.Substring(position2+1,position3-position2-1));ip[3]=long.Parse(strIp.Substring(position3+1));return(ip[0]<<24)+(ip[1]<<16)+(ip[2]<<8)+}publicstringLongToIp(longip){StringBuildersb=newStringBuilder();sb.Append(ip>>24);sb.Append((ip&0x00FFFFFF)>>16);sb.Append((ip&0x0000FFFF)>>8);sb.Append((ip&0x000000FF));returnsb.ToString();}依賴查詢 、ETL目標(biāo):HDFS中的數(shù)據(jù),后寫入到HBase ysisDataMapper類,復(fù)寫map方Step2map方法中通過LoggerUtil.handleLogText方法將當(dāng)前行數(shù)據(jù)解析成Step3、獲取當(dāng)前行日志信息的類型,并根據(jù)獲取到的類型去枚舉類型中匹配生Step5、如果可以處理指定類型,則開始處理,創(chuàng)建handleEventData(Map<String,String>Info,EventEnumevent,Contextcontext,Textvalue)方法處理。Step6、在handleEventData方法中,我們需要過濾掉那些數(shù)據(jù)不合法的Event,通過filterEventData(Map<String,String>Info,EventEnumevent)方法過濾,規(guī)律規(guī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論