原创 Spark數據結構優化

       要減少內存的消耗,除了使用高效的序列化庫以外,還有一個很重要的事情,就是優化數據結構。從而避免Java語法特性中所導致的額外內存的開銷,比如基於Java數據結構,以及包裝類型。        1、優先使用數組以及字符串,而不

原创 solr億萬級索引優化實踐(三)

       本篇文章主要介紹下如何從客戶端solrJ以及服務端參數配置的角度來提升索引速度。       solrJ6.0提供的Java客戶端主要有下面幾種接口:HttpSolrClient,ConcurrentUpdateSolrCl

原创 solr億萬級索引優化實踐(一)

       海量數據的索引,第一個要解決的是數據存儲的問題,solr提供數據存儲平臺有兩種,第一個是本地磁盤,另一個是HDFS,我們可以通過solrhome的配置來實現。在本次實踐中,我們選擇的是本地磁盤,因爲採用的solrcloud部

原创 調用lucene向solr建索引實踐

      Solr的底層是基於Lucene索引結構,Lucene是一套信息檢索工具包,但並不包含搜索引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能。所以,只要是相同版本的Solr和Lucene其用的索引文件是兼容的,s

原创 Hadoop NameNode元數據相關文件目錄解析

本文轉自 Hadoop NameNode元數據相關文件目錄解析 一 NameNode 元數據相關文件目錄架構二 元數據相關文件解析 1 VERSION 文件2 seen_txid 文件3 fsimage 和 edits 及 md5

原创 HDFS性能測試及優化部署

hadoop的存儲系統hdfs在大數據領域有着無可比擬的地位,本篇文章對hdfs的存儲性能做一個相對詳細的測試,影響因素有哪些,來幫助我們優化部署應用程序和hadoop集羣,最大化利用hadoop的吞吐能力。1.1 HDFS存儲機制 HD

原创 Elasticsearch索引原理

最近在參與一個基於Elasticsearch作爲底層數據框架提供大數據量(億級)的實時統計查詢的方案設計工作,花了些時間學習Elasticsearch的基礎理論知識,整理了一下,希望能對Elasticsearch感興趣/想了解的同學有所

原创 solr億萬級索引優化實踐(四)

       本篇是這個系類的最後一篇,但優化方案不僅於此,需要後續的研究與學習,本篇主要從schema設計的角度來做一些實踐。        schema.xml 這個文件的作用是定義索引數據中的域的,包括域名稱,域類型,域是否索引,

原创 分佈式緩存應用

        在MR作業中,經常有使所有節點的作業共享引用數據的需求,Hadoop爲我們提供了一種可供選擇的機制:分佈式緩存。它可以把map或reduce任務要用的通用只讀文件在所有節點之間共享。這些文件可以是文本數據,也可以是jar包

原创 Spark自定義RDD重分區

    在某些計算場景中,我們可能需要將兩個有關聯的數據輸入的部分數據,也就是說RDD中的部分數據,需要聚合在同一個partition進行匹配計算,這個時候,我們就需要根據實際的業務需求,自定義RDD重分區。下面結合代碼,看看具體怎麼實現

原创 Java指令-Djava.ext.dirs的陷阱

        這兩天由於現場需求,需要把ES索引寫入插件改造成帶安全認證的方式,加密算法是由java.security相關類實現的。在DEMO中測試了若干次都沒問題,但是放到生成環境中就是報NoSuchAlgorithmExceptio

原创 Java虛擬機垃圾回收調優

      GC對性能的影響在於,如果內存中數據量比較大的話,那麼可能會造成GC頻繁的發生,另外如果要回收的數據量特別大,那麼會導致GC的速度也比較慢。gc線程工作時,會讓程序中的task線程暫停工作,那麼整個應用程序的性能就會大打折扣。

原创 日誌中如何輸出完整的堆棧異常

    程序中發生異常後,我們捕捉到異常之後一般是輸出e.toString到日誌,這樣我們只能知道異常類型是什麼,只有一個簡單的描述,無法看到具體的堆棧信息。利用下面一段代碼,可以將完整的堆棧信息輸出到日誌系統中。 public stat

原创 solr億萬級索引優化實踐(二)

      通過上一篇的幾個優化方案,我們的索引速度其實已經能得到很大的提升了,從最初的平均每臺機器7000TPS/S,大概能到2.5WTPS/S。但是這個速度遠遠還達不到我們的需求,最關鍵的時候隨着節點數增加並不能速度並不能線性增加,然

原创 Nginx實現tcp/udp消息轉發

1、編譯安裝 $ yum -y install proc* openssl* pcre* $ tar zxvf nginx-1.12.2.tar.gz $ cd nginx-1.12.2 $ ./configure --prefix=/u