編譯 Hadoop append 用於Hbase

2021-09-01 17:43:48 字數 2347 閱讀 6857

hbase

building an hadoop 0.20.x version for hbase 0.90.2

作業系統:centos linux

git clonecd hadoop-common

[zhankunlin@icthtc hadoop-common]$

[zhankunlin@icthtc hadoop-common]$

[zhankunlin@icthtc hadoop-common]$git show-branch release-0.20.2

[zhankunlin@icthtc hadoop-common]$vi ../build.properties

[zhankunlin@icthtc hadoop-common]$ln -s ../build.properties build.properties

[zhankunlin@icthtc hadoop-common]$ pwd

安裝 ant

[zhankunlin@icthtc ~]$ tar zxf apache-ant-1.8.2-bin.tar.gz

[zhankunlin@icthtc ~]$ export path=/home/zhankunlin/apache-ant-1.8.2/bin:$path

編譯 hadoop

[zhankunlin@icthtc hadoop-common]$

[zhankunlin@icthtc hadoop-common]$ant mvn-install..

.mvn-install:

build successful

total time: 11 minutes 42 seconds

可選操作:

[zhankunlin@icthtc hadoop-common]$ant test測試所有功能,花很長時間

[zhankunlin@icthtc hadoop-common]$ant test-core測試核心功能

檢視編譯好的 jar包(在當前使用者主目錄下)

[zhankunlin@icthtc hadoop-common]$ find ~/.m2/repository -name "hadoop-*.jar"

/home/zhankunlin/.m2/repository/org/apache/hadoop/hadoop-core/0.20.2/hadoop-core-0.20.2.jar

編譯好的包有:

[zhankunlin@icthtc hadoop-common]$ find ~/.m2/repository -name "hadoop-*.jar" | awk -f"/" ''

hadoop-core-0.20.2.jar (這個包不需要)

注意:hadoop-tools-version.jar

hadoop-test-version.jar

hadoop-examples-version.jar

hadoop-streaming-version.jar

hadoop-core-version.jar

將編譯好的 jar 包複製出來.

[zhankunlin@icthtc hadoop-common]$ mk ../ok_jars

[zhankunlin@icthtc hadoop-common]$ jars=`find ~/.m2/repository -name "hadoop-*.jar"`; for jar in $jars; do cp $jar ../ok_jars/ ; done

接下來就是將編譯生成的新jar替換 hadoop-0.20.2-release 和 hbase-0.90.2 中舊的jar包

(1) 替換舊的hadoop包;

請注意,替換 hadoop 中舊的jar包前需要對編譯生成的新jar包重新命名。

hadoop 0.20.2 release 版本中jar包的命名規則為 hadoop-version-package.jar,如:hadoop-0.20.2-examples.jar。

(2) 替換hbase中lib資料夾中的包

hbase使用的命名規則為hadoop-package-version.jar,和新編譯的jar包命名規則一致,所以只需要直接複製jar包到$hbase_home/lib目錄下,不需要重新命名。

用 RAM Disk 提高編譯速度

專案很大,檔案很多,而且由於開始時編碼的一些不是很合適的設計,規劃,導致了現在每次編譯的時間很長.我的機器配置 p4 d 2.8g 1g,rebuild all 需要 12 分鐘.當然,我也不會沒事就 rebuild all.可問題是.標頭檔案被依賴的太多.隨便改動乙個標頭檔案.幾乎所有的檔案都在編...

用CMake 編譯Android庫

但現在很多專案使用cmake來編譯 cmakelists.txt androidstuidio已經提供了cmake的支援 沒用過 直接使用cmake命令列也是可以編譯android native庫的。參考官方文件給的說明 for example,a toolchain file might cont...

Windows 用VS編譯libevent原始碼

原理 從github上轉殖libevent原始碼,然後使用cmake生成vs工程 第二步 修改cmakelists.txt 開啟libevent資料夾下的cmakelists.txt檔案,找到下面一句,大約在 118 行.option event disable openssl define if ...