原创 深入理解 Spark Sql

最近想來,大數據相關技術與傳統型數據庫技術很多都是相互融合、互相借鑑的。傳統型數據庫強勢在於其久經考驗的sql優化器經驗,弱勢在於分佈式領域的高可用性、容錯性、擴展性等,假以時日,讓其經過一定的改造,比如引入Paxos、raft等,強化自

原创 JVM常量池淺析

需要說明的一點是,這篇文章是以《深入理解Java虛擬機》第二版這本書爲基礎的,這裏假設大家已經瞭解了JVM的運行時區域,以及class文件結構,類加載流程等基礎內容。當然,文中我們也會提一提相關的內容作爲複習總結 一.JVM有幾種常量池

原创 RDD、DataFrame和Dataset 怎麼選擇纔好?

最令開發者們高興的事莫過於有一組API,可以大大提高開發者們的工作效率,容易使用、非常直觀並且富有表現力。Apache Spark廣受開發者們歡迎的一個重要原因也在於它那些非常容易使用的API,可以方便地通過多種語言,如Scala、Jav

原创 ft 總結

1.如何防止網絡抖動產生的重複建單? 答:原因:你這種情況應該是客戶端請求發過去了,服務器寫到數據庫了,返回完成狀態的時候網斷了,這時客戶端沒有收到反饋以爲訂單沒有生成,再點擊下單,這時網絡好了,結果生成了兩個。 解決辦法:(1).待支付

原创 nc 的安裝與使用

  netcat被譽爲網絡安全界的‘瑞士軍刀’,相信沒有什麼人不認識它吧...... 一個簡單而有用的工具,透過使用TCP或UDP協議的網絡連接去讀寫數據。它被設計成一個穩定的後門工具,能夠直接由其它程序和腳本輕鬆驅動。同時,它也是一個功

原创 hive 和 mysql 求解分組 top n

MySQL分組排序求Top N 表結構 按照grp分組,按照num排序,每組取Top 3,輸出結果如下: SELECT * FROM score AS t3    WHERE (        SELECT COUNT(*) FROM s

原创 Spring Boot單元測試編譯報錯 No runnable methods

遇到這種情況表示單元測試中沒有可以運行的方法,有可能是以下的原因: 1.第一種情況,有的測試類爲空,只定義了一個類名,也就是類裏面沒有能運行的方法,這個是非法的。 2.第二種情況,測試類方法有錯,或者沒有添加@Test註解。

原创 count distinct 引發的傾斜

Hive底層使用MapReduce作爲實際計算框架,SQL的交互方式隱藏了大部分MapReduce的細節。這種細節的隱藏在帶來便利性的同時,也對計算作業的調優帶來了一定的難度。未經優化的SQL語句轉化後的MapReduce作業,它的運行效

原创 詳解內部類

  可以將一個類的定義放在另一個類的定義內部,這就是內部類。       內部類是一個非常有用的特性但又比較難理解使用的特性(鄙人到現在都沒有怎麼使用過內部類,對內部類也只是略知一二)。 第一次見面       內部類我們從外面看是非

原创 java中的字符串到底是在方法區的常量池裏還是new出來的對象裏

String實質是字符數組,兩個特點:1、該類不可被繼承;2、不可變性(immutable) 例如 String s1 = new String("myString"); 和 String s1 = "myString";  第一種方式

原创 什麼是 gc root

GC Roots原理 GC Roots基本思路就是通過一系列的稱爲“GC Roots”的對象作爲起始點, 從這些節點開始向下搜索, 搜索所走過的路徑稱爲引用鏈( Reference Chain),當一個對象到 GC Roots 沒有任何引

原创 如果hashMap的key是一個自定義的類,怎麼辦?

hashcode()和equals()都繼承於object,在Object類中的定義爲: equals()方法在Object類中的定義: public boolean equals(Object obj){     return (thi

原创 緩存穿透,緩存擊穿,緩存雪崩解決方案分析

前言 設計一個緩存系統,不得不要考慮的問題就是:緩存穿透、緩存擊穿與失效時的雪崩效應。 緩存穿透 緩存穿透是指查詢一個一定不存在的數據,由於緩存是不命中時被動寫的,並且出於容錯考慮,如果從存儲層查不到數據則不寫入緩存,這將導致這個不存在的

原创 Redis 之布隆過濾器(BloomFilter)

1. 認識BloomFilter 1.1 原理 布隆過濾器,英文叫BloomFilter,可以說是一個二進制向量和一系列隨機映射函數實現。 可以用於檢索一個元素是否在一個集合中。 下面來看看布隆過濾器是如何判斷元素在一個集合中,如下圖:

原创 MySQL Binlog解析

概述 MySQL的安裝可以參考:Linux(CentOS)中常用軟件安裝,使用及異常——MySQL, VmTools MySQL關於Binlog的官方文檔:The Binary Log 基於Binlog的主備複製:MySQL主備複製原理、