寫在前面
有的時候,可能就是我們做實時資料收集的時候,會有乙個頭疼的問題就是,你會發現,你可能一下子,沒有日誌的資料來源。所以,我們可以簡單使用python指令碼來實現產生實時的資料,這樣就很方便了
在編寫**之前,我們得知道我們的webserver日誌到底長什麼樣,下面我找了一段的nginx伺服器上真實日誌,作為樣例:
接下來,我們就開始來開發模擬的日誌產生器
思路??
開發的pyhton日誌產生器中包括:請求的url、ip、referer和狀態碼等資訊。
實現,這裡直接貼上**python:
"spark 專案實戰",
"hadoop 專案實戰",
"storm 專案實戰",
"spark streaming實戰",
"古詩詞鑑賞"
generate_log(10)這樣我們就能夠實現日誌的產生,測試:
du.com/s?wd=storm 專案實戰
gou.com/web?query=spark 專案實戰
#產生的部分資料可以產生了,接下來我們要實現資料的實時產生了,這裡就是需要使用到linux裡面的crontab執行計畫了。相信學過linux的人,肯定會知道。我們編寫乙個執行計畫就好。
推薦乙個測試工具**:
1)先寫乙個執行計畫的執行指令碼。new乙個.sh檔案:
[hadoop@hadoop000 project]$ vim log_generator.sh
python /home/hadoop/data/project/generate_log.py
2)寫好之後,就可以寫我們的執行計畫了
[hadoop@hadoop000 project]$ crontab -e
* * * * * /home/hadoop/data/project/log_generator.sh
* * * * * sleep 10; /home/hadoop/data/project/log_generator.sh
* * * * * sleep 20; /home/hadoop/data/project/log_generator.sh
* * * * * sleep 30; /home/hadoop/data/project/log_generator.sh
* * * * * sleep 40; /home/hadoop/data/project/log_generator.sh
* * * * * sleep 50; /home/hadoop/data/project/log_generator.sh
這樣,我們的執行計畫就設計好了,我們這裡設計的是每10秒執行一次
,即每10秒產生十條日誌資訊
驗證:
[hadoop@hadoop000 logs]$ tail -f access.log
77.31.153.127 2017-11-21 06:45:01 "get /class/116.html http/1.1" 403 spark streaming實戰
192.32.156.31 2017-11-21 06:45:01 "get /class/147.html http/1.1" 500 spark 專案實戰
153.32.105.82 2017-11-21 06:56:01 "get /course/list http/1.1" 500 spark 專案實戰
上面是部分擷取,可以觀察到,每隔10秒就會產生日誌資料
接下來,我們就可以來使用這個日誌產生器來實時產生我們需要的日誌資訊了。
隨機數產生器
最近在學習c 自己沒事做的關於隨機數和winform的練習 附上 using system using system.collections.generic using system.componentmodel using system.data using system.drawing usin...
隨機數產生器RNG
用opencv做演算法的朋友們肯定為隨機數煩惱過,新版本一直支援隨機數產生器啦,而且還繼續支援之前版本的c格式的函式,不過與時俱進,我這裡介紹c 的rng類。它可以壓縮乙個64位的i整數並可以得到scalar和array的隨機數。目前的版本支援均勻分布隨機數和gaussian分布隨機數。隨機數的產生...
隨機數產生器RNG
用opencv做演算法的朋友們肯定為隨機數煩惱過,新版本一直支援隨機數產生器啦,而且還繼續支援之前版本的c格式的函式,不過與時俱進,我這裡介紹c 的rng類。它可以壓縮乙個64位的i整數並可以得到scalar和array的隨機數。目前的版本支援均勻分布隨機數和gaussian分布隨機數。隨機數的產生...