最近發現 讀取 客戶資訊的資料的時候 發現序列化記憶體不夠,超過了預設的64m,資料量有100多萬了。
之前客戶資訊是儲存在hdfs上的parquet檔案。
現在將客戶的資訊儲存到hbase中去。然後通過hadoop的api將客戶的資訊從hbase中讀取到快取到記憶體中
import org.apache.hadoop.hbase.cellutil
import org.apache.hadoop.hbase.client.result
import org.apache.hadoop.hbase.io.immutablebyteswritable
import org.apache.hadoop.hbase.mapreduce.tableinputformat
private def definecustomerbyhbaseudf(spark: sparksession): unit = ).tomap
(k, new customerentitydata(mm))
}).collectasmap().tomap
)executecustomerexecute(spark, customermeta)
spark.sparkcontext.setjobdescription(previousjobdescription)
}
hbase資料加鹽讀取(spark篇)
未加鹽資料 spark可以使用inputformat outputformat來讀寫hbase表。加鹽以後 需要在rowkey之前加一些字首,否則是查不到資料的。1 我們需要重新寫getsplits方法 從名字我們可以知道是要計算有多少個splits。在hbase中,乙個region對用乙個spli...
HBASE的優化部分 HBASE讀取表的優化
3.1 多htable併發讀 建立多個htable客戶端用於讀操作,提高讀資料的吞吐量,乙個例子 static final configuration conf hbaseconfiguration.create static final string table log name user log...
修改HBase或者Spark預設的8080埠
我們知道8080埠是很多web應用的預設埠,如果一台機器上兩個服務都用8080就會引起衝突,同時8080也容易被黑客攻擊的埠。因此我們希望可以修改hbase或者spark的預設web ui訪問的8080埠。修改hbase home下的conf目錄之下的hbase site.xml檔案 新增hbase...