1. 程式人生 > >20170928 使用網頁管理叢集 按行讀取寫入useragent txt檔案

20170928 使用網頁管理叢集 按行讀取寫入useragent txt檔案

根據20170901---20170903的position資料分析useragent,優化urlutil。

從叢集中hdfs dfs -cat /user/log/position/20170901/*/* |awk -Furlutil'\t' 'print $8'|sort|uniq > ua.txt 匯出useragent資料,寫一個程式讀取資料檔案,把useragentid加在useragent資料後面,判斷useragentid是否準備,由此優化urlutil。

20170901的useragent資料共26469條,1 其他 5527條,2 蘋果手機 2216條,3 安卓手機 15809條,4 pc端 2917條。

其餘兩天資料分佈基本一致。


按行讀取寫入檔案


public class Uarw {

    public static void main(String[] args) {

        try {

            // read file content from file

            StringBuffer sb= new StringBuffer("");

            FileReader reader = new FileReader("/home/hzq/data/ua0903.txt");

            BufferedReader 
br = new BufferedReader(reader); String str = null; String userAgentId = null; while((str = br.readLine()) != null) { userAgentId = UrlUtil.getUAID(str); sb.append(str).append("===").append(userAgentId).append(
"\n"); // System.out.println(str); } br.close(); reader.close(); // write string to file FileWriter writer = new FileWriter("/home/hzq/data/0903userAgentId.txt"); BufferedWriter bw = new BufferedWriter(writer); bw.write(sb.toString()); bw.close(); writer.close(); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }

昨天優化onlinelocationcategory的程式碼,將輸入路徑利用conf.set 配置到程式碼中。出現的問題是在叢集中,輸出檔案中無資料。經過檢視日誌查詢問題,發現是shell指令碼中的輸入路徑中帶有程式碼中無法識別的*,修改此路徑。程式碼中已有遞迴讀檔案的功能。所以在輸入路徑中也無需加*。



利用http://192.168.20.46:7180/cmf/login 數巨管家 在yarn頁面上的webUI中點選Resourcemanager可以檢視application的日誌資訊。但需要之前在本地/etc/hosts中新增配置檔案

192.168.20.46    agent

192.168.20.47    node01

192.168.20.48    node02

192.168.20.49    node03

192.168.20.50    node04

192.168.20.51    node05


重寫上網資料onlinecategory根據uid join位置資料locationtime的mr的shell。projectname 由onlinelocationcategory改為onlinecategorylocationjoin,這樣更直接清楚。