項目實戰案例:搜狗日誌查詢分析
數據:
一、電商大數據平臺整體架構
1、大數據(Hadoop、Spark、Hive)都是一種數據倉庫的實現方式
核心問題:數據存儲、數據計算
什麼是數據倉庫?傳統的解決大數據的方式,就是一個數據庫
一般只做查詢
2、大數據平臺整體的架構
部署:Apache、Ambari(HDP)、CDH
二、在項目中使用使用瀑布模型(軟件工程:方法論)
1、瀑布模型幾個階段?
2、每個階段完成的任務
三、使用MapReduce進行分析處理(Java程序)
1、MapReduce的基本原理(編程模型)
() 思想來源:Google的論文:MapReduce 問題 PageRank(網頁排名)
() 先拆分、再合併-----> 分佈式計算
2、使用MapReduce進行日誌分析
四、使用Spark進行分析和處理(Scala語言、Java語言)
1、Spark的優點和體系架構
2、使用Scala開發Spark任務進行日誌分析
bin/spark-shell --master spark://bigdata11:7077
val rdd1 = sc.textFile("hdfs://mydemo71:8020/myproject/data/SogouQ1.txt")
val rdd2=rdd1.map(_.split("\t")).filter(_.length==6)
rdd2.count()
val rdd3=rdd2.filter(_(3).toInt==1).filter(_(4).toInt==2)
rdd3.count()
rdd3.take(3)
五、使用Hive(蜂巢)進行分析和處理
1、什麼是Hive?特點?Hive體系結構
是基於HDFS之上的數據倉庫
支持SQL語句
是翻譯器:SQL ----> MapReduce(Spark任務)
2、使用Hive進行查詢操作![](https://s1.51cto.com/images/blog/201805/06/c1b98f5698511262bb9b56d0174a331d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
① 創建Hive對應的表
create table sogoulog(accesstime string,useID string,keyword string,no1 int,clickid int,url string) row format delimited fields terminated by ',';
** ② 將原始數據進行清洗:因爲有些不滿足長度爲6
val rdd1 = sc.textFile("hdfs://mydemo71:8020/myproject/data/SogouQ1.txt")
val rdd2=rdd1.map(_.split("\t")).filter(_.length==6)
val rdd3 = rdd2.map(x=>x.mkString(",")) 這裏需要注意轉成字符串
rdd3.saveAsTextFile("hdfs://mydemo71:8020/myproject/cleandata/sogou")
** ③ 將清洗後的數據導入Hive
load data inpath '/myproject/cleandata/sogou/part-00000' into table sogoulog;
load data inpath '/myproject/cleandata/sogou/part-00001' into table sogoulog;
④ 使用SQL查詢滿足條件的數據(只顯示前10條)**
select * from sogoulog where no1=1 and clickid=2 limit 10;**
查詢10號部門 工資大於2000的員工 很多人都知道我有大數據培訓資料,都天真的以爲我有全套的大數據開發、hadoop、spark等視頻學習資料。我想說你們是對的,我的確有大數據開發、hadoop、spark的全套視頻資料。
如果你對大數據開發感興趣可以加口羣領取免費學習資料: 763835121