原创 《Hadoop權威指南》讀書筆記——MapeReduce入門

1 MR的原理 MapeReduce(簡稱MR)的是大數據計算引擎,相對於Linux awk等工具而已,最大的優勢是可以分佈式執行,充分利用計算機的多核性能。 一個MR作業(job)是客戶端需要執行的一個工作單元,包括輸入數據、M

原创 深入淺出類加載器及其用法

1 類產生的原因 在Linux上創建hello.c,使用gcc編譯器進行編譯gcc hello.c -o hello,得到綠色的可執行程序hello,執行./hello便會在控制檯輸出Hello World! 學過編譯原理的同學

原创 Apahce Avro入門及其在大數據中的應用

1 Avro簡介 在互聯網發展早期,很多項目都是運行在單體架構上,使用Java原生序列化機制能滿足大部分場景需求。後面隨着業務和訪問量的增大,項目架構慢慢遷移到微服務架構。每個微服務可能採用不同的開發語言,而且部分服務對通信性能要

原创 Spark源碼分析系列—編譯源碼

1 Spark源碼的下載 作爲一名大數據開發工程師,研讀源碼是我們日常開發學習中必不可少的環節,而萬里長征的第一步就是編譯源碼。開源Spark主要有3大發行版Apache,CDH和HDP,本文以Apache Spark 2.4.5

原创 從C語言系統調用函數read和write到Java阻塞IO

一 背景 作爲一名Java代碼搬運工,我們經常通過java.io包對進行操作IO。由於JVM跨平臺的優點,能夠幫開發者屏蔽底層細節,使我們不需要直接與操作系統打交道,更加專注業務開發。缺點也很明顯,開發者對底層往往一臉懵逼。最近樓

原创 在Ubuntu14中安裝MySQL數據庫並使用SQLyog進行連接

1 下載MySQL數據庫 root@ubuntu:~# apt-get install mysql-server root@ubuntu:~# apt-get install mysql-client root@ubuntu:~# apt

原创 基於Guava庫的ListenableFuture類實現Java異步編程

1 Future接口的缺點 通過Future接口的get()方法可以獲取類Callable的返回值,但是此方法最大缺點是阻塞的,因此在併發環境下,效率比較低。Google公司提供的開源Guava庫提供了有效的處理異步Future的

原创 Spark Streaming消費Kafka並手動使用Redis管理Kafka Offset

1 Spark Streaming讀取Kafka的兩種模式 Spark Streaming消費Kafka的數據有兩種模式:Receiver和Direct模式,學習時候重點關注下Direct即可,因爲在最新讀取方式中已經不支持Rec

原创 操作系統要點總結-內存篇

1 什麼叫做虛擬內存 一個32位的PC,內存的最大容量不超過CPU的尋址範圍是2^32B,即4G。如果完全裝入一個桌面遊戲程序所需要的內存爲5G,是不是就不能好好玩耍?答案是否定的,可以使用虛擬內存技術。簡單點說就是程序不需要全部

原创 Ubuntu14上搭建HIVE-1.1.0-CDH5.9.3

1 安裝Hadoop Hive是建立在Hadoop上的一個數倉工具,說簡單點就是真實數據存儲在HDFS上。因此需要先安裝Hadoop,詳見博文hadoop-2.6.0-cdh完全分佈式集羣的搭建。 2 安裝MySQL Hive是將

原创 二叉搜索樹

1 重要特性 2 完整代碼 2.1 二叉搜索樹的節點 /** * 二叉搜索樹的節點 * Created by JayLai on 2019-10-05 22:45:58 */ public class Node {

原创 zookeeper完全分佈式安裝教程

1 虛擬機配置 序號 操作系統 CPU/核數 內存/GB 硬盤/GB IP地址 1 Ubuntu 64 位 1 2 20 192.168.0.131 2 Ubuntu 64 位 1 2 20 192.168

原创 兩棧共享內存

1 實現原理和步驟 假如存在兩個以數組爲存儲的棧1和棧2,其中棧1已滿了,而棧2還有空間。如果需要繼續往棧1插入數據,則需要棧1重新擴容,即將棧1中數組的數據再複製一遍的另外一個容量更大的棧中,這樣存在空間浪費和效率低的問題。 面

原创 Java實現靜態鏈表

1 實現原理和步驟 單向鏈表是通過引用next指向下一個節點來實現的,當對鏈表進行增刪操作時,只需移動引用,而不需要移動數據,算法的時間複雜度爲O(1)。 問題來了,如果Node1不通過引用next,有什麼辦法能夠快速建立與N

原创 Ununtu14上安裝Elasticsearch5.x及其可視化插件Elasticsearch-Head

1. 拓撲圖 2. Elasticsearch的單實例安裝 1)解壓安裝包 hadoop@ubuntu:~$ tar -zxvf elasticsearch-5.6.16.tar.gz -C ~/app/ hadoop@ubu