Spark日志分析

根據tomcat日志計算url訪問了情況,具體的url如下,
要求:區別統計GET和POST URL訪問量
結果為:訪問方式、URL、訪問量

?

輸入文件:

196.168.2.1 - - [03/Jul/2014:23:36:38 +0800] "GET /course/detail/3.htm HTTP/1.0" 200 38435 0.038
182.131.89.195 - - [03/Jul/2014:23:37:43 +0800] "GET /html/notes/20140617/888.html HTTP/1.0" 301 - 0.000
196.168.2.1 - - [03/Jul/2014:23:38:27 +0800] "POST /service/notes/addViewTimes_23.htm HTTP/1.0" 200 2 0.003
196.168.2.1 - - [03/Jul/2014:23:39:03 +0800] "GET /html/notes/20140617/779.html HTTP/1.0" 200 69539 0.046
196.168.2.1 - - [03/Jul/2014:23:43:00 +0800] "GET /html/notes/20140318/24.html HTTP/1.0" 200 67171 0.049
196.168.2.1 - - [03/Jul/2014:23:43:59 +0800] "POST /service/notes/addViewTimes_779.htm HTTP/1.0" 200 1 0.003
196.168.2.1 - - [03/Jul/2014:23:45:51 +0800] "GET /html/notes/20140617/888.html HTTP/1.0" 200 70044 0.060
196.168.2.1 - - [03/Jul/2014:23:46:17 +0800] "GET /course/list/73.htm HTTP/1.0" 200 12125 0.010
196.168.2.1 - - [03/Jul/2014:23:46:58 +0800] "GET /html/notes/20140609/542.html HTTP/1.0" 200 94971 0.077
196.168.2.1 - - [03/Jul/2014:23:48:31 +0800] "POST /service/notes/addViewTimes_24.htm HTTP/1.0" 200 2 0.003
196.168.2.1 - - [03/Jul/2014:23:48:34 +0800] "POST /service/notes/addViewTimes_542.htm HTTP/1.0" 200 2 0.003
196.168.2.1 - - [03/Jul/2014:23:49:31 +0800] "GET /notes/index-top-3.htm HTTP/1.0" 200 53494 0.041

?

//textFile() 加載數據
val data = sc.textFile("/spark/seven.txt")

//filter 過濾長度小于0, 過濾不包含GET與POST的URL
val filtered = data.filter(_.length()>0).filter( line => (line.indexOf("GET")>0 || line.indexOf("POST")>0) )

//轉換成鍵值對操作
val res = filtered.map( line => {
if(line.indexOf("GET")>0){ //截取 GET 到URL的字符串
(line.substring(line.indexOf("GET"),line.indexOf("HTTP/1.0")).trim,1)
}else{?? //截取 POST 到URL的字符串
(line.substring(line.indexOf("POST"),line.indexOf("HTTP/1.0")).trim,1)
}//最后通過reduceByKey求sum
}).reduceByKey(_+_)

//觸發action事件執行
res.collect()

?

?

輸出文件:

  1. (POST?/service/notes/addViewTimes_542.htm,2),???
  2. (POST?/service/notes/addViewTimes_544.htm,1),???
  3. (GET?/html/notes/20140609/542.html,2),???
  4. (POST?/service/notes/addViewTimes_23.htm,1),???
  5. (GET?/html/notes/20140617/888.html,3),???
  6. (POST?/service/notes/addViewTimes_24.htm,1),???
  7. (GET?/course/detail/3.htm,1),???
  8. (GET?/course/list/73.htm,2),???
  9. (GET?/html/notes/20140617/779.html,1),???
  10. (GET?/html/notes/20140620/872.html,1)?

?

轉載于:https://www.cnblogs.com/energy1010/p/6933914.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392594.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392594.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392594.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

進程、線程和協程的區別

首先,給出“進程、線程和協程”的特點: 進程:擁有自己獨立的堆和棧,既不共享堆,也不共享棧,進程由操作系統調度;線程:擁有自己獨立的棧和共享的堆,共享堆,不共…

leetcode 493. 翻轉對(分治算法)

給定一個數組 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我們就將 (i, j) 稱作一個重要翻轉對。 你需要返回給定數組中的重要翻轉對的數量。 示例 1: 輸入: [1,3,2,3,1] 輸出: 2 代碼 class Solution {public int reversePairs(int[] nums) {return getR…

使用brew安裝軟件

brew 又叫Homebrew&#xff0c;是Mac OSX上的軟件包管理工具&#xff0c;能在Mac中方便的安裝軟件或者卸載軟件&#xff0c; 只需要一個命令&#xff0c; 非常方便 brew類似ubuntu系統下的apt-get的功能 閱讀目錄 安裝brew 使用brew安裝軟件 使用brew卸載軟件 使用brew查詢軟…

mysql 繞過select報錯_MySQL注射繞過技巧(三)

在測試一次注入的時候發現過濾了逗號 所以找到這個思路第一次遇到的時候是看key哥挖洞 遇到后就想記錄下來正文過濾了逗號 利用join來逐步查詢select*from(select 1)a join (select 2)b join (select 3)c;例如下圖逐步查詢user()user() basediruser() basedir version()也可以…

深入理解javascript

深入理解JavaScript系列&#xff08;1&#xff09;&#xff1a;編寫高質量JavaScript代碼的基本要點 深入理解JavaScript系列&#xff08;2&#xff09;&#xff1a;揭秘命名函數表達式 深入理解JavaScript系列&#xff08;3&#xff09;&#xff1a;全面解析Module模式 深入理…

spark 并行處理_如何使用Spark集群并行處理大數據

spark 并行處理by Hari Santanam通過Hari Santanam 如何使用Spark集群并行處理大數據 (How to use Spark clusters for parallel processing Big Data) 將Apache Spark的彈性分布式數據集(RDD)與Databricks一起使用 (Use Apache Spark’s Resilient Distributed Dataset (RDD)…

django前后端分離部署

部署靜態文件&#xff1a; 靜態文件有兩種方式1&#xff1a;通過django路由訪問2&#xff1a;通過nginx直接訪問 方式1&#xff1a; 需要在根目錄的URL文件中增加&#xff0c;作為入口 url(r^$, TemplateView.as_view(template_name"index.html")), 在setting中更改靜…

Citrix、Microsoft、VMware虛擬桌面之網頁接口登錄對比

軟件環境 Citrix Xendesktop 5.6 Microsoft Windows Server 2008 R2 Hyper-v VMware View client 4.6 首先看citrix的&#xff0c;很早之前Citrix就推出了網頁的虛擬桌面和應用程序&#xff0c;默認是單點登錄獲取桌面 下面是微軟的&#xff0c;和citrix很類似&#xff0c; 據我…

leetcode 976. 三角形的最大周長

給定由一些正數&#xff08;代表長度&#xff09;組成的數組 A&#xff0c;返回由其中三個長度組成的、面積不為零的三角形的最大周長。 如果不能形成任何面積不為零的三角形&#xff0c;返回 0。 示例 1&#xff1a; 輸入&#xff1a;[2,1,2] 輸出&#xff1a;5 示例 2&…

recyclerview 加載fragment_恢復 RecyclerView 的滾動位置

您可能在開發過程中遇到過這種情況&#xff0c;在 Activity/Fragment 被重新創建后&#xff0c;RecyclerView 丟失了它之前保有的滾動位置信息。通常這種情況發生的原因是由于異步加載 Adapter 數據&#xff0c;且數據在 RecyclerView 需要進行布局的時候尚未加載完成&#xff…

4.6.2 軟件測試的步驟

系統測試是可有可無的。因為系統測試是和環境結合在一起。系統測試應該是在系統設計或者是需求分析階段的前一步來完成的。 單元測試它的測試計劃是在詳細設計階段完成。所以說單元測試的計劃是在詳細設計階段來完成的。 模塊接口的測試它保證了測試模塊的數據流可以正確地流入…

nodejs調試ndb_如何開始使用NDB調試NodeJS應用程序

nodejs調試ndbNodeJs was released almost 9 years ago. The default debugging process of NodeJs (read Node.js) is quite clumsy. You are likely already aware of the need to add --inspect to the node script with node inspector. It is also dependent on Chrome. T…

初學必讀:61條面向對象設計的經驗原則

(1)所有數據都應該隱藏在所在的類的內部。(2)類的使用者必須依賴類的共有接口&#xff0c;但類不能依賴它的使用者。(3)盡量減少類的協議中的消息。(4)實現所有類都理解的最基本公有接口[例如&#xff0c;拷貝操作(深拷貝和淺拷貝)、相等性判斷、正確輸出內容、從ASCII描述解析…

棧,遞歸

棧的基本操作注意&#xff1a;是從后往前連接的 1 #include <stdio.h>2 #include <Windows.h>3 typedef struct sStack4 {5 int num;6 struct sStack* pnext;7 }Stack;8 void push(Stack **pStack,int num);9 int pop(Stack **pStack); 10 BOOL isEmpty(St…

mysql集群多管理節點_項目進階 之 集群環境搭建(三)多管理節點MySQL集群

多管理節點MySQL的配置很easy&#xff0c;僅須要改動之前的博文中提高的三種節點的三個地方。1)改動管理節點配置打開管理節點C:\mysql\bin下的config.ini文件&#xff0c;將當中ndb_mgmd的相關配置改動為例如以下內容&#xff1a;[ndb_mgmd]# Management process options:# Ho…

leetcode 767. 重構字符串(貪心算法)

給定一個字符串S&#xff0c;檢查是否能重新排布其中的字母&#xff0c;使得兩相鄰的字符不同。 若可行&#xff0c;輸出任意可行的結果。若不可行&#xff0c;返回空字符串。 示例 1: 輸入: S “aab” 輸出: “aba” 代碼 class Solution {public String reorganizeStri…

APK偽加密

一、偽加密技術原理 我們知道android apk本質上是zip格式的壓縮包&#xff0c;我們將android應用程序的后綴.apk改為.zip就可以用解壓軟件輕松的將android應用程序解壓縮。在日常生活或者工作中&#xff0c;我們通常為了保護我們自己的文件在進行壓縮式都會進行加密處理。這樣的…

亂花漸欲迷人眼-杜絕設計的視噪

視噪&#xff0c;又稱視覺噪音。我們每天接受來自外界的大量信息&#xff0c;這些信息有將近70&#xff05;是通過視覺感知獲得的。視噪會干擾我們對信息的判斷&#xff0c;影響到產品的易用性和可用性&#xff0c;與用戶體驗的好壞息息相關。(克勞德香農圖演示了噪音如何影響信…

超詳細windows安裝mongo數據庫、注冊為服務并添加環境變量

1.官網下載zip安裝包 官網地址https://www.mongodb.com/download-center/community?jmpnav&#xff0c;現在windows系統一般都是64位的&#xff0c;選好版本、系統和包類型之后點擊download&#xff0c;mongodb-win32-x86_64-2008plus-ssl-4.0.10.zip。 2.解壓zip包&#xff0…

開源 數據倉庫_使用這些開源工具進行數據倉庫

開源 數據倉庫by Simon Spti西蒙斯派蒂(SimonSpti) 使用這些開源工具進行數據倉庫 (Use these open-source tools for Data Warehousing) These days, everyone talks about open-source software. However, this is still not common in the Data Warehousing (DWH) field. W…