原创 基於DelayQueue帶有回調的超時緩存實現

    平時項目中總會用到超時緩存,並且希望超時之後會觸發一些後續處理邏輯,比如心跳。一般做法就是把這些數據放到一個隊列中,然後線程定時遍歷檢查是否超時。於是想自己實現一個簡單的可以自動超時的緩存隊列。在查了一些資料後發現DelayQue

原创 線程池的RejectedExecutionHandler(拒絕策略)

JAVA爲多線程場景提供了線程池,下面是一個線程池的構造方法: public ThreadPoolExecutor(int corePoolSize, int maximumP

原创 Thunderbird提示ExQuilla License Expired問題解決

在Ubuntu上使用Thunderbird客戶端來接收郵件,爲了能支持Exchange,使用了ExQuilla這個插件。剛開始使用沒有任何問題,用了幾個月突然發現不能用了,提示“ExQuilla License Expired”,查了一

原创 JAVA線程池

線程池詳解 ThreadPoolExecutor ThreadPoolExecutor是最靈活的一個線程池,用戶可以根據實際需要通過多個參數配置出合適的線程池。構造方法如下: ThreadPoolExecutor(int corePool

原创 oozie 4.2.0編譯問題

編譯oozie4.2.0遇到問題 版本說明: jdk: 1.7 maven: 3.0.3 hadoop: 2.7.1 hive: 2.0.0 pig: 0.13 1. 在編譯的時候遇到 ShimLoader.getHadoopShim

原创 AKKA Cluser 之SeedNode(種子節點)

AKKA提供的cluser功能能夠很便捷的創建一個分佈式應用,在使用cluster時需要配置seed nodes節點,這裏對seed nodes節點做一下介紹。 AKKA seed nodes 和普通節點沒有什麼本質區別,區別在於指定成爲

原创 熱替換jar包導致JVM崩潰(crash)

情景 在一次項目升級過程中,需要替換一個jar包,已經有進程用這個jar包啓動運行了。 操作 當沒有終止這些進程的情況下,熱替換該jar包 現象 替換jar包之後,在運行的進程全部消失了,打印出jvm crash的日誌。 原因

原创 Docker - 鏡像(Image)

Docker運行容器之前需要本地存在相應的鏡像。鏡像是容器的基礎 獲取鏡像 docker pull NAME[:TAG] 如果不指定TAG,默認是latest 例如:docker pull ubuntu 和 docker pull

原创 cgroup資源隔離內存OOM事件監聽(oom notifier)

CGROUP OOM控制 CGROUP是目前比較流行也比較常用的資源隔離技術,包括docker,hadoop都是使用cgroup做的資源隔離。當對內存做資源隔離時,當進程OOM後,可以選擇直接kill進程,也可以不kill,默認選項是oo

原创 OOZIE JA017: Unknown hadoop job

OOZIE執行任務,集羣上任務已經執行完成,但是報以下錯誤導致任務fail org.apache.oozie.action.ActionExecutorException: JA017: Unknown hadoop job [job_