GDAL編譯安裝指南

1.需求

根據(jù)GDAL2.4.0的更新說(shuō)明瓣履,從該版本開始GDAL支持對(duì)HDFS存儲(chǔ)的影像數(shù)據(jù)的讀取岔绸,但是目前發(fā)布的prebuilt版本均沒(méi)有提供此功能,因此需要從源代碼重新編譯。

2.環(huán)境

CentOS 7 , GDAL 2.4.0 , hadoop 2.9.2

3.編譯準(zhǔn)備
3.1源代碼下載

GDAL:https://github.com/OSGeo/gdal/releases
hadoop:https://hadoop.apache.org/releases.html

4.編譯hadoop

下載hadoop源代碼并解壓縮后籍嘹,在BUILDING.txt文件可看到hadoop的安裝指南方库,其中編譯需求摘錄如下:

Requirements:

* Unix System
* JDK 1.7 or 1.8
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
* Zlib devel (if compiling native code)
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
* python (for releasedocs)
* Node.js / bower / Ember-cli (for YARN UI v2 building)

根據(jù)該說(shuō)明下載相關(guān)軟件并安裝后结序,進(jìn)入hadoop-2.9.2-src源代碼目錄,執(zhí)行
mvn clean package -Pdist,native -DskipTests -Dtar -Dsnappy.lib=/usr/lib64 -Dbundle.snappy -Drequire.openssl進(jìn)行編譯和打包纵潦,打包好的文件位于hadoop-2.9.2-src/hadoop-dist目錄下

5.配置libhdfs.so

libhdfs.so是hadoop提供的操作HDFS的C語(yǔ)言客戶端徐鹤,經(jīng)過(guò)上一步的編譯后,生成的libhdfs.so位于/hadoop-dist/target/hadoop-2.9.2/lib/native/邀层,生成的hdfs.h頭文件位于/hadoop-dist/target/hadoop-2.9.2/include/返敬,然后將libhdfs.so拷貝到/usr/local/lib,將hdfs.h文件拷貝到/usr/local/include寥院,編寫測(cè)試代碼testhdfs.c

#include <stdio.h>
#include "hdfs.h"

int main(int argc, char **argv)
{
    hdfsFS fs = hdfsConnect("10.46.120.32", 8010);
    if (!fs) {
        fprintf(stderr, "connect fail\n");
        return -1;
    }
    hdfsFile writeFile = hdfsOpenFile(fs, "/first.txt", O_WRONLY, 4096, 0, 0);
    if (!writeFile) {
        fprintf(stderr,"openfile fali\n");
        return -1;
    }
    hdfsWrite(fs, writeFile, "hello hdfs", 10);
    hdfsCloseFile(fs, writeFile);
    hdfsDisconnect(fs);
    return 0;
}

使用GCC編譯gcc testhdfs.c -lhdfs劲赠,若編譯成功,表示以上步驟正確秸谢,libhdfs.so配置正確经磅。

6.編譯gdal

進(jìn)入gdal源代碼路徑下,輸入

./configure --with-java=/home/jdk1.8.0_191 --with-hdfs=/usr/local/
make
make install

默認(rèn)安裝路徑在/usr/local钮追,在控制臺(tái)輸入gdalinfo --version看到版本信息即代表編譯安裝成功预厌。

6.1.編譯gdal的Java binding

首先需要安裝swig和ant
yum install -y swig
http://ant.apache.org/
然后進(jìn)入/gdal/swig/java目錄,在控制臺(tái)輸入make元媚,即可在該目錄下生成gdal.jar,libgdalalljni.so,libgdalalljni.la三個(gè)文件轧叽,最后將so文件和la文件拷貝到/usr/local/lib

7.測(cè)試gdal讀取hdfs文件

將hadoop配置文件core_site.xml拷貝到本機(jī)HADOOP_HOME目錄下
在控制臺(tái)輸入
gdalinfo /vsihdfs/hdfs://ip:port/tif/3857t.tif
若成功顯示該tiff文件的信息苗沧,則說(shuō)明GDAL+HDFS編譯安裝成功。

7.1.測(cè)試gdal通過(guò)webHDFS接口讀取hdfs文件

在控制臺(tái)輸入
gdalinfo /vsiwebhdfs/http://ip:port/webhdfs/v1/tif/3857t.tif

補(bǔ)充

如需支持ESRI FileGDB讀寫炭晒,首先從GitHub上下載對(duì)應(yīng)操作系統(tǒng)的FileGDB API待逞,然后在編譯GDAL時(shí)添加
./configure --prefix=/export/gdal/gdal-3.4.3/build --with-java=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64 with_fgdb=/export/esri_filegdb_api/FileGDB_API_RHEL7_64

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市网严,隨后出現(xiàn)的幾起案子识樱,更是在濱河造成了極大的恐慌,老刑警劉巖震束,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怜庸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡垢村,警方通過(guò)查閱死者的電腦和手機(jī)割疾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嘉栓,“玉大人宏榕,你說(shuō)我怎么就攤上這事∏值瑁” “怎么了麻昼?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)馋辈。 經(jīng)常有香客問(wèn)我抚芦,道長(zhǎng),這世上最難降的妖魔是什么首有? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任燕垃,我火速辦了婚禮,結(jié)果婚禮上井联,老公的妹妹穿的比我還像新娘卜壕。我一直安慰自己,他們只是感情好烙常,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布轴捎。 她就那樣靜靜地躺著,像睡著了一般蚕脏。 火紅的嫁衣襯著肌膚如雪侦副。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天驼鞭,我揣著相機(jī)與錄音秦驯,去河邊找鬼。 笑死挣棕,一個(gè)胖子當(dāng)著我的面吹牛译隘,可吹牛的內(nèi)容都是我干的亲桥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼固耘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼题篷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起厅目,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤番枚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后损敷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葫笼,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年嗤锉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渔欢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墓塌。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瘟忱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苫幢,到底是詐尸還是另有隱情访诱,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布韩肝,位于F島的核電站触菜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哀峻。R本人自食惡果不足惜涡相,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剩蟀。 院中可真熱鬧催蝗,春花似錦、人聲如沸育特。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缰冤。三九已至犬缨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棉浸,已是汗流浹背怀薛。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迷郑,地道東北人枝恋。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓迂苛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鼓择。 傳聞我的和親對(duì)象是個(gè)殘疾皇子三幻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 環(huán)境 一臺(tái)ubuntu 14.04虛擬機(jī)。 Hadoop版本:2.6.0呐能。 增加用戶 為了隔離Hadoop和其它軟...
    doc001閱讀 1,829評(píng)論 1 9
  • 各版本hadoop文檔地址 Hadoop的框架最核心的設(shè)計(jì)就是:HDFS(Hadoop Distributed F...
    MicoCube閱讀 998評(píng)論 0 2
  • 1.前言: 1)生產(chǎn)環(huán)境建議使用:CDH念搬、HDP等商業(yè)版本,因?yàn)槎嗫蚣苷戏矫婕嫒菪员容^好 2)統(tǒng)一軟件安裝包下載...
    白面葫蘆娃92閱讀 1,727評(píng)論 2 2
  • Hadoop 源碼編譯支持 snappy 壓縮 1.下載安裝包 centos7x64 jdk1.8.0_181 a...
    貓頭木有鷹閱讀 1,771評(píng)論 0 0
  • 有那么一會(huì)兒摆出,特別想發(fā)朋友圈朗徊,但是過(guò)不了多久,覺(jué)著發(fā)了也沒(méi)什么意思偎漫,于是就算了爷恳。 有那么一會(huì)兒,特別想勸勸TA象踊,但...
    ciciviola閱讀 205評(píng)論 0 0