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

主頁 > 知識庫 > 詳解如何使用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訪問日志的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    高清国产一区二区| 免费久久精品视频| 精品久久久久久综合日本欧美| 色婷婷综合五月| av中文字幕不卡| 不卡的av电影| 北条麻妃一区二区三区| 国产福利精品导航| 国产精品77777竹菊影视小说| 久久国产精品免费| 九九久久精品视频| 国产99久久久国产精品潘金网站| 久久精品国产精品青草| 国产原创一区二区三区| 国产伦精品一区二区三区免费迷 | 久久久久9999亚洲精品| 欧美va日韩va| 久久久九九九九| 国产精品久久久久久久浪潮网站| 日本一区免费视频| 亚洲精选在线视频| 日本在线不卡一区| 国产一区二区不卡老阿姨| 不卡视频在线看| 一本一道久久a久久精品| 欧美无砖砖区免费| 欧美一二三四区在线| 久久综合色婷婷| 国产精品理论在线观看| 亚洲视频 欧洲视频| 日本在线不卡一区| 成人性生交大片免费看中文| 色悠悠亚洲一区二区| 3d动漫精品啪啪| 精品va天堂亚洲国产| 国产精品国产三级国产普通话蜜臀| 亚洲女与黑人做爰| 另类欧美日韩国产在线| av在线不卡网| 91精品国产综合久久久久久漫画| 久久久久久久精| 亚洲另类在线制服丝袜| 亚洲高清免费视频| 国产精品一区免费视频| 91九色最新地址| 久久久99精品免费观看| 亚洲第一精品在线| 成人久久18免费网站麻豆| 91精品黄色片免费大全| 中文字幕一区二区视频| 久久er精品视频| 日本高清无吗v一区| 国产亚洲综合av| 日韩精品成人一区二区在线| 99久久婷婷国产综合精品电影| 日韩美女在线视频| 亚洲高清在线视频| 91丨九色丨国产丨porny| 久久人人超碰精品| 肉色丝袜一区二区| 在线观看亚洲一区| 成人免费一区二区三区在线观看| 国产精品综合av一区二区国产馆| 777色狠狠一区二区三区| 亚洲男人天堂av网| 91原创在线视频| 国产欧美一区二区三区网站| 久久er99精品| 欧美tk丨vk视频| 日本大胆欧美人术艺术动态| 欧美日韩情趣电影| 亚洲综合久久av| 99re这里只有精品首页| 国产精品视频线看| 国产成人免费在线观看不卡| 久久久777精品电影网影网| 午夜在线成人av| 欧美唯美清纯偷拍| 亚洲高清中文字幕| 欧美日韩精品免费| 亚洲超丰满肉感bbw| 欧美日韩在线一区二区| 亚洲高清在线精品| 欧美一区二区高清| 久久av资源网| 久久久精品黄色| 国产成人日日夜夜| 亚洲日本在线a| 欧美在线观看视频一区二区| 亚洲一区二区三区在线| 欧美日韩国产乱码电影| 奇米影视一区二区三区| 精品美女一区二区| 国产成人精品一区二区三区四区 | 亚洲一区二区精品视频| 欧美三区在线观看| 日韩av成人高清| 亚洲精品一区二区三区在线观看| 精品在线播放午夜| 亚洲欧洲性图库| 欧美日韩免费在线视频| 免费成人av资源网| 日本一二三不卡| 在线免费观看日本一区| 喷水一区二区三区| 国产精品色眯眯| 欧美日韩在线综合| 国产一区二区三区美女| 国产精品久久久久aaaa樱花| 欧美日本在线观看| 国产成人激情av| 午夜精品福利一区二区蜜股av | 久久久综合视频| 99麻豆久久久国产精品免费优播| 亚洲一区二区三区在线看| 精品免费视频一区二区| 99久久伊人精品| 美女国产一区二区| 亚洲精品大片www| 日韩美女视频一区二区在线观看| 99免费精品在线观看| 蜜臂av日日欢夜夜爽一区| 亚洲三级在线观看| 欧美va亚洲va在线观看蝴蝶网| 91啪亚洲精品| 久久99精品国产91久久来源| 专区另类欧美日韩| 久久人人97超碰com| 欧美欧美午夜aⅴ在线观看| 丁香一区二区三区| 日本一区中文字幕| 亚洲三级小视频| 久久久高清一区二区三区| 欧美日韩中字一区| 99国产精品99久久久久久| 国内精品写真在线观看| 亚洲国产日韩av| 一区二区三区日韩精品视频| 久久久www成人免费无遮挡大片| 欧美日韩情趣电影| 欧美午夜一区二区| 91在线一区二区| 国产精品影视在线观看| 秋霞午夜av一区二区三区| 亚洲一区二区综合| 亚洲黄一区二区三区| 中文字幕在线一区免费| 国产亚洲自拍一区| 精品成a人在线观看| 精品久久久久久亚洲综合网 | 日韩中文欧美在线| 亚洲国产精品久久人人爱蜜臀| 国产精品第一页第二页第三页| 国产日韩欧美一区二区三区乱码 | 国产一区在线看| 久久99精品久久久久久久久久久久| 日韩精品国产欧美| 青娱乐精品视频| 人妖欧美一区二区| 久久99这里只有精品| 黄色精品一二区| 国产精品亚洲一区二区三区妖精| 免费不卡在线观看| 精品一区二区三区蜜桃| 极品少妇xxxx精品少妇| 韩国毛片一区二区三区| 国产一区二区91| 成人黄色av网站在线| 91网页版在线| 欧美日韩一区二区三区在线| 欧美日韩国产小视频| 日韩欧美亚洲国产另类| www国产亚洲精品久久麻豆| 欧美精品一区二区精品网| 久久久久久99久久久精品网站| 国产欧美日韩久久| 一区二区三区高清不卡| 日日摸夜夜添夜夜添国产精品 | 国产精品伦理在线| 亚洲精品成人悠悠色影视| 午夜视频在线观看一区| 精品一区二区国语对白| 成人免费黄色在线| 欧美午夜寂寞影院| 久久影院电视剧免费观看| 国产精品日日摸夜夜摸av| 一区二区成人在线观看| 青青青伊人色综合久久| 国产黄色精品视频| 欧美色视频一区| 日本一区二区三区电影| 亚洲观看高清完整版在线观看| 狠狠色丁香婷综合久久| 91久久精品一区二区三区| 精品国内二区三区| 亚洲欧美日韩国产手机在线 | 中文字幕欧美日韩一区| 亚洲综合久久av| 高清不卡在线观看| 欧美一区二区免费|