手撕項目-Flink電商實時分析四

目錄

 

1.前端服務

2.hadoop環境搭建

3.總結


1.前端服務

構建前端服務DsViewservice,創建項目,添加對應的maven依賴

測試前端服務連redis服務

引入maven

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-redis</artifactId>    <version>2.2.6.RELEASE</version></dependency>

測試代碼:

@RequestMapping("listzjPdrd")public String listzjPdrd(Model model){    String aq = redisService.getStr("aq");    model.addAttribute("result",aq);    System.out.println("hello listzjPdrd");    return "dsrdlist";}

測試結果:

上一篇得出的存入dedis的結果:

完善整合flink分析後存入redis的代碼:

@RequestMapping("listzjPdrd")public String listzjPdrd(Model model, int topnum){    //取出 pingdaord內的值    Map<String,List<String>> map = redisService.getAllData("pingdaord");    Set<Map.Entry<String, List<String>>> set = map.entrySet();    //排序    Map<Long,String> sortmap = new TreeMap<Long,String>(new Comparator(){        @Override        public int compare(Object o1, Object o2) {            return Integer.valueOf((long)o2-(long)o1+"");        }    });    //根據總數量分組    for(Map.Entry<String,List<String>> entry :set){        String pindaoid = entry.getKey();        List<String> list = entry.getValue();        long total = 0l;        for(String o : list){            total += Long.valueOf(o);        }        if(sortmap.get(total)!=null){            String pindaoidtemp = sortmap.get(total);            sortmap.put(total,pindaoidtemp+","+pindaoid);        }else {            sortmap.put(total,pindaoid);        }    }    int temptotal = 0;    //取出總數量分組後的值,排序展示    Set<Map.Entry<Long,String>> sortmapset = sortmap.entrySet();    List<String> result = new ArrayList<String>();    for(Map.Entry<Long,String> entry :sortmapset){        String pindaoid = entry.getValue();        String [] temp = pindaoid.split(",");        temptotal += temp.length;        if(temptotal >= topnum){            int sy = temptotal - topnum;            int tempqz = temp.length - sy-1;            for(int i=0;i<=tempqz;i++){                result.add(temp[i]);            }            break;        }else{            for(String tempinner :temp){                result.add(tempinner);            }        }    }    model.addAttribute("result",result);    System.out.println("hello listzjPdrd");    return "dsrdlist";}

前端頁面展示結果:

 

 

2.hadoop環境搭建

 

下載hadoop-2.6.0.tar.gz,解壓之後

修改etc/core-site.xml(如果是本地虛擬機,可以查看修改/etc/hostname名稱,儘量不要有下劃線

如果沒有配置java_home,需要配置hadoop-env.sh

修改etc/hdfs-site.xml

添加mapred-site.xml(可以複製mapred-queues.xml.template進行修改)

修改etc/yarn-site.xml

    

修改slaves(之前自己修改的)

hadoop的bin目錄下執行./hadoop namenode -format

再執行./start-dfs.sh

再執行./start-yarn.sh

結果:

bug:

    8088端口無法訪問,還在排查。。。有知道的可以告知

 

 

3.總結

 

昨天沒有顯示Task Slots數量是因爲:1.沒有配置taskmanager name2.服務器的內存太小。

今天先構建前端項目,搭建hadoop,依然出錯,後續再排查解決

後續搭建hbase,並整合在業務邏輯中。

具體代碼可參照我的git項目地址,現有代碼均已通過測試可以使用,後續會持續更新,直到項目結束,不懂的細節,可以關注公衆號,後臺留言,會細緻解答。

git地址:https://github.com/jyqjyq/filnkDS.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章