校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解如何使用Spark和Scala分析Apache訪問日志

詳解如何使用Spark和Scala分析Apache訪問日志

熱門標簽:高德地圖標注無營業執照 長沙開福怎么申請400電話 東莞人工智能電銷機器人供應商 廣州電銷機器人系統圖 賀州市地圖標注app 智能電話機器人線路 金融行業外呼線路 百度地圖標注要不要錢 江蘇電銷外呼防封系統是什么

安裝

首先需要安裝好Java和Scala,然后下載Spark安裝,確保PATH 和JAVA_HOME 已經設置,然后需要使用Scala的SBT 構建Spark如下:

$ sbt/sbt assembly

構建時間比較長。構建完成后,通過運行下面命令確證安裝成功:

$ ./bin/spark-shell
scala> val textFile = sc.textFile("README.md") // 創建一個指向 README.md 引用
scala> textFile.count // 對這個文件內容行數進行計數
scala> textFile.first // 打印出第一行

Apache訪問日志分析器

首先我們需要使用Scala編寫一個對Apache訪問日志的分析器,所幸已經有人編寫完成,下載Apache logfile parser code。使用SBT進行編譯打包:

sbt compile
sbt test
sbt package

打包名稱假設為AlsApacheLogParser.jar。
然后在Linux命令行啟動Spark:

// this works
$ MASTER=local[4] SPARK_CLASSPATH=AlsApacheLogParser.jar ./bin/spark-shell

對于Spark 0.9,有些方式并不起效:

// does not work
$ MASTER=local[4] ADD_JARS=AlsApacheLogParser.jar ./bin/spark-shell
// does not work
spark> :cp AlsApacheLogParser.jar

上傳成功后,在Spark REPL創建AccessLogParser 實例:

import com.alvinalexander.accesslogparser._
val p = new AccessLogParser

現在就可以像之前讀取readme.cmd一樣讀取apache訪問日志accesslog.small:

scala> val log = sc.textFile("accesslog.small")
14/03/09 11:25:23 INFO MemoryStore: ensureFreeSpace(32856) called with curMem=0, maxMem=309225062
14/03/09 11:25:23 INFO MemoryStore: Block broadcast_0 stored as values to memory (estimated size 32.1 KB, free 294.9 MB)
log: org.apache.spark.rdd.RDD[String] = MappedRDD[1] at textFile at <console>:15
scala> log.count
(a lot of output here)
res0: Long = 100000

分析Apache日志

我們可以分析Apache日志中404有多少個,創建方法如下:

def getStatusCode(line: Option[AccessLogRecord]) = {
 line match {
  case Some(l) => l.httpStatusCode
  case None => "0"
 }
}

其中Option[AccessLogRecord]是分析器的返回值。

然后在Spark命令行使用如下:

log.filter(line => getStatusCode(p.parseRecord(line)) == "404").count

這個統計將返回httpStatusCode是404的行數。

深入挖掘

下面如果我們想知道哪些URL是有問題的,比如URL中有一個空格等導致404錯誤,顯然需要下面步驟:

  1. 過濾出所有 404 記錄
  2. 從每個404記錄得到request字段(分析器請求的URL字符串是否有空格等)
  3. 不要返回重復的記錄

創建下面方法:

// get the `request` field from an access log record
def getRequest(rawAccessLogString: String): Option[String] = {
 val accessLogRecordOption = p.parseRecord(rawAccessLogString)
 accessLogRecordOption match {
  case Some(rec) => Some(rec.request)
  case None => None
 }
}

將這些代碼貼入Spark REPL,再運行如下代碼:

log.filter(line => getStatusCode(p.parseRecord(line)) == "404").map(getRequest(_)).count
val recs = log.filter(line => getStatusCode(p.parseRecord(line)) == "404").map(getRequest(_))
val distinctRecs = log.filter(line => getStatusCode(p.parseRecord(line)) == "404").map(getRequest(_)).distinct
distinctRecs.foreach(println)

總結

對于訪問日志簡單分析當然是要grep比較好,但是更復雜的查詢就需要Spark了。很難判斷 Spark在單個系統上的性能。這是因為Spark是針對分布式系統大文件。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:玉樹 洛陽 廊坊 北京 永州 松原 張家界 滄州

巨人網絡通訊聲明:本文標題《詳解如何使用Spark和Scala分析Apache訪問日志》,本文關鍵詞  詳解,如何,使用,Spark,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解如何使用Spark和Scala分析Apache訪問日志》相關的同類信息!
  • 本頁收集關于詳解如何使用Spark和Scala分析Apache訪問日志的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    韩国欧美国产1区| 久久精品水蜜桃av综合天堂| 成人av资源下载| 极品尤物av久久免费看| 国产在线视频一区二区| 麻豆国产精品777777在线| 美女在线一区二区| 免费观看在线色综合| 免费观看30秒视频久久| 日本午夜精品视频在线观看| 26uuu精品一区二区三区四区在线| 亚洲天堂2014| 一区二区在线观看不卡| 国产色综合久久| 久久免费午夜影院| 精品处破学生在线二十三| 日韩欧美在线网站| 91精品国产91热久久久做人人| 欧美军同video69gay| 欧美一级视频精品观看| 国产欧美日本一区视频| 中文字幕一区二区视频| 五月婷婷久久综合| 国产精品1区2区3区| 91免费视频网址| 日韩欧美电影一区| 国产精品国产三级国产aⅴ入口 | 欧美日韩精品欧美日韩精品一| av一本久道久久综合久久鬼色| 91激情五月电影| 日韩欧美第一区| 亚洲女人小视频在线观看| 青青草视频一区| 粉嫩蜜臀av国产精品网站| 欧美日本高清视频在线观看| www国产精品av| 亚洲国产精品自拍| 国产 日韩 欧美大片| 欧美精选午夜久久久乱码6080| 久久久久国产精品麻豆ai换脸| 亚洲大片在线观看| 懂色中文一区二区在线播放| 4438x成人网最大色成网站| 亚洲国产精品成人综合色在线婷婷| 一区二区欧美精品| 国产精品18久久久久久久网站| 在线视频你懂得一区| 久久日一线二线三线suv| 亚洲成人av电影| 色综合久久九月婷婷色综合| 久久伊人蜜桃av一区二区| 亚洲国产视频一区| 色综合天天狠狠| 中文字幕精品一区 | 久久久久国产精品麻豆ai换脸| 亚洲精品视频免费看| 丁香六月久久综合狠狠色| 91精品国产全国免费观看| 亚洲资源中文字幕| 91丨九色丨蝌蚪富婆spa| 国产精品色呦呦| 紧缚奴在线一区二区三区| 欧美一区二区三区人| 亚洲国产成人av网| 在线观看免费亚洲| 亚洲一区二区三区四区中文字幕 | 欧美日韩中文精品| 亚洲人妖av一区二区| 不卡的av中国片| 国产人成亚洲第一网站在线播放| 精品一区在线看| 久久日韩精品一区二区五区| 黄色成人免费在线| 欧美精品一区二区三区在线播放 | 国产精品视频一二| 99麻豆久久久国产精品免费| 日本一区二区高清| 懂色中文一区二区在线播放| 国产精品无人区| av网站一区二区三区| 亚洲精品乱码久久久久久久久| 成人av中文字幕| 亚洲精品免费播放| 欧美一区二区三区性视频| 美女视频黄 久久| 欧美变态凌虐bdsm| 国产河南妇女毛片精品久久久| 久久久国产精华| jizzjizzjizz欧美| 亚洲国产成人高清精品| 日韩欧美国产一区二区在线播放| 美女mm1313爽爽久久久蜜臀| 国产色综合一区| 91福利在线播放| 麻豆国产91在线播放| 国产片一区二区三区| 91久久精品一区二区| 香蕉久久夜色精品国产使用方法| 欧美日韩三级在线| 美国三级日本三级久久99 | 北条麻妃国产九九精品视频| 亚洲激情自拍视频| 日韩女优制服丝袜电影| 成人免费av在线| 自拍偷自拍亚洲精品播放| 欧美人与禽zozo性伦| 久久99热这里只有精品| 国产精品丝袜久久久久久app| 欧美日韩中文国产| 国产精品一二三区| 一区二区三区av电影| 欧美精品欧美精品系列| 成人黄色在线看| 亚洲成a人片综合在线| 国产女同性恋一区二区| 欧美一区二区三区四区五区| 国内精品免费**视频| 国产亚洲短视频| 欧美精品久久99| 不卡的av在线| 另类小说综合欧美亚洲| 亚洲午夜精品17c| 国产精品麻豆久久久| 日韩一区二区高清| 色综合久久久久久久久| 国产高清一区日本| 美腿丝袜在线亚洲一区| 亚洲成a人片在线不卡一二三区| 中文字幕成人av| 日韩精品一区在线观看| 欧美日韩久久久一区| 一本色道久久综合亚洲精品按摩| 国产一区美女在线| 日本网站在线观看一区二区三区| 亚洲欧美日韩在线| 中文字幕中文字幕在线一区| 久久日一线二线三线suv| 欧美一级精品在线| 91精品婷婷国产综合久久性色| 91丨porny丨首页| 99久久精品免费看| 成人av免费在线播放| 国产成人h网站| 国产精品白丝av| 国产麻豆午夜三级精品| 韩国一区二区三区| 狠狠色丁香婷婷综合| 久久超碰97人人做人人爱| 欧美aaaaaa午夜精品| 日本成人在线电影网| 日韩 欧美一区二区三区| 三级精品在线观看| 日韩av一区二区三区| 另类小说色综合网站| 国产一区二区不卡在线| 国产乱码精品一区二区三| 国产精品自拍网站| 成人永久aaa| 99国产麻豆精品| 欧美又粗又大又爽| 7777精品伊人久久久大香线蕉超级流畅 | 国产呦精品一区二区三区网站| 久久er99精品| 高清成人免费视频| 色狠狠色狠狠综合| 欧美精选一区二区| 久久综合色之久久综合| 国产精品看片你懂得| 亚洲日韩欧美一区二区在线| 洋洋av久久久久久久一区| 图片区小说区国产精品视频| 日韩高清电影一区| 成人丝袜18视频在线观看| 色综合久久综合网97色综合| 欧美精品日日鲁夜夜添| 国产色产综合色产在线视频| 依依成人综合视频| 美女网站视频久久| 91丝袜国产在线播放| 欧美一卡二卡三卡| 中文字幕一区二区三中文字幕| 午夜精品视频在线观看| 国产精品一区在线| 欧美艳星brazzers| 国产视频一区不卡| 亚洲成人动漫一区| 国产91丝袜在线观看| 欧美日韩国产综合一区二区| 久久人人超碰精品| 亚洲高清免费视频| 国产成人综合精品三级| 欧美三级欧美一级| 亚洲国产高清不卡| 日韩国产精品久久| 91视频免费看| 26uuu色噜噜精品一区二区| 亚洲国产日韩精品| k8久久久一区二区三区| 久久亚洲一级片| 日韩综合小视频|