當前位置:
首頁 > 新聞 > 不再收費!MapD資料庫開源,過來人指點如何上手

不再收費!MapD資料庫開源,過來人指點如何上手

不再收費!MapD資料庫開源,過來人指點如何上手

雷鋒網按:本文作者為英國著名大數據分析師 Mark Litwintschik,閱讀原文請戳這裡,雷鋒網編譯。

不再收費!MapD資料庫開源,過來人指點如何上手

Mark Litwintschik:前幾天,MapD 將要開源的消息一傳出,我是非常驚訝的。

在我的數據處理、管理系統跑分榜上,MapD 一直霸佔著頭名。此前,如果想要用 MapD,你得花錢買一個 license,或者在 AWS 上運行 MapD 的 AMI。但現在,其 GPU 驅動的資料庫源代碼,已經陸續上傳到 GitHub。任何人都可以從原始資料編譯資料庫,運行在有任意數量 GPU 的任何計算設備上。或者,也可以把編譯的二進位數據運行在 GPU 支撐的 AWS, 谷歌雲或微軟 Azure 等雲計算平台。

相比我測試過的其他流行分析引擎,MapD 處理工作量的速度要比它們快兩個量級。但它的好處不止於此,MapD 還有一個基於網頁端的製圖檢索界面。因此,我非常懷疑,它開源的消息將在數據社區掀起一波海嘯。

既然成本門檻已經被移除,更多的開發者將可自由探索 MapD 的各項功能。因此,我也預測它的部署數量將會迎來井噴。只要運行的是 Linux、用的是英偉達的 GPU,現在任何人都可以編譯、運行、分析 MapD 的源代碼,而它是迄今為止我所發現的最先進的 GPU 資料庫。

對於英偉達,這大概是一個很大的利好——MapD 實現其性能用的是 N 卡的 CUDA 平台以及 GPU 硬體。但有一點我要提醒大家,雖然 MapD 在 N 卡上才能發揮真正的性能,但在原則上,沒有 GPU 還是能夠照常運行、使用 MapD 的各項功能。在沒有 GPU 的機器上,英偉達驅動會報告沒有找到設備,探後 MapD 會回到 CPU 模式。我從沒用 CPU 模式跑過分,所以對於該模式下的性能犧牲幅度,我沒法評論。但該模式下MapD 起碼看起來功能正常,操作起來沒什麼問題。

本文中,我將手把手帶大家從原始數據上編譯、運行 MapD。開始之前雷鋒網做個友情提醒,大伙兒若遇到任何問題,可到 MapD 社區論壇求助。

我的硬體、系統設置

我的機器用的是英特爾酷睿 i5 4670K,頻率是 3.4 GHz;內存為 8 GB DDR3 RAM;硬碟是閃迪 SDSSDHII960G 960 GB SSD;GPU 是英偉達 GTX 1080。

系統是 Ubuntu 16.04.2 Server LTS。我選這個版本,因為它的技術支持會一直到 2021 四月。

安裝 MapD"s 附件

我會從在 apt 的資源列表中,啟用資源庫源代碼開始。


$ sudo sed -i --

"s/# deb-src/deb-src/g"

/etc/apt/sources.list

之後刷新 apt 資源列表,安裝 39 個包。


$ sudo apt update

$ sudo apt install

autoconf

autoconf-archive

binutils-dev

bison++

bisonc++

build-essential

clang-3.8

clang-format-3.8

cmake

cmake-curses-gui

default-jdk

default-jdk-headless

default-jre

default-jre-headless

flex

git-core

golang

google-perftools

libboost-all-dev

libcurl4-openssl-dev

libdouble-conversion-dev

libevent-dev

libgdal-dev

libgflags-dev

libgoogle-glog-dev

libgoogle-perftools-dev

libiberty-dev

libjemalloc-dev

libldap2-dev

liblz4-dev

liblzma-dev

libncurses5-dev

libpng-dev

libsnappy-dev

libssl-dev

llvm-3.8

llvm-3.8-dev

maven

zlib1g-dev

下一步,我會下載安裝 8.0 版本的英偉達 CUDA Toolkit。它會安裝顯卡驅動,並取代所有已存在的驅動。


$ curl -L -O https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb

$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb

$ sudo apt update

$ sudo apt install cuda

新驅動裝好之後,重啟系統


$ sudo reboot

系統備份之後,英偉達的系統管理界面應該顯示對你的驅動和 GPU 的檢測診斷。

$ nvidia-smi

MapD 利用 Thrift 在客戶和伺服器之間進行交流。我將從資源哪裡安裝它。0.10.0 版本的 Thrift 與 MapD 的兼容性是很不錯的。


$ sudo apt build-dep thrift-compiler

$ curl -O http://apache.claz.org/thrift/0.10.0/thrift-0.10.0.tar.gz

$ tar xvf thrift-0.10.0.tar.gz

$ pushd thrift-0.10.0

$ ./configure

--with-lua=no

--with-python=no

--with-php=no

--with-ruby=no

--prefix=/usr/local/mapd-deps

$ make -j $(nproc)

$ sudo make install

$ popd

Folly 是一個有 11 個組件的 C++ 演算法庫。它由 Facebook 發布,在 MapD 源代碼中到處都有使用。下面是從資源編譯、創建該演算法庫的步驟:


$ curl -O -L https://github.com/facebook/folly/archive/v2017.04.10.00.tar.gz

$ tar xvf v2017.04.10.00.tar.gz

$ pushd folly-2017.04.10.00/folly

$ autoreconf -ivf

$ ./configure

--prefix=/usr/local/mapd-deps

$ make -j $(nproc)

$ sudo make install

$ popd

Bison 是 MapD 生成 SQL 解析器(parser)的兩個庫之一。下面是編譯、創建步驟:


$ curl -O -L https://github.com/jarro2783/bisonpp/archive/1.21-45.tar.gz

$ tar xvf 1.21-45.tar.gz

$ pushd bisonpp-1.21-45

$ ./configure

$ make -j $(nproc)

$ sudo make install

$ popd

下面,在 MapD 編譯之前,要確保我們用的是想要的那個 LLVM 二進位版本。


$ for BIN in llvm-config llc clang clang++ clang-format

do

sudo update-alternatives

--install

/usr/bin/$BIN

$BIN

/usr/lib/llvm-3.8/bin/$BIN

1

done

我會用如下代碼,在環境變數中添加可執行文件和庫文件的路徑。


$ sudo vi /etc/profile.d/mapd-deps.sh

LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

LD_LIBRARY_PATH=/usr/lib/jvm/default-java/jre/lib/amd64/server:$LD_LIBRARY_PATH

LD_LIBRARY_PATH=/usr/local/mapd-deps/lib:$LD_LIBRARY_PATH

LD_LIBRARY_PATH=/usr/local/mapd-deps/lib64:$LD_LIBRARY_PATH

PATH=/usr/local/cuda/bin:$PATH

PATH=/usr/local/mapd-deps/bin:$PATH

export LD_LIBRARY_PATH PATH

$ sudo chmod +x /etc/profile.d/mapd-deps.sh

$ source /etc/profile.d/mapd-deps.sh

編譯 MapD

我會複製 MapD 的核心源代碼資源庫,然後檢查 21fc39 commit。只用比較好的發布版本或者 master branch 是一個好主意。但出於讓這些指令前後一致的考慮,這裡的代碼實現只針對那一特定的 commit。


$ git clone https://github.com/mapd/mapd-core.git

$ cd mapd-core

$ git checkout 21fc39

我會為 MapD 創建一個 build 文件夾,在開啟修補漏洞的前提下編譯源代碼。


$ cd ~/mapd-core/build

$ cmake -DCMAKE_BUILD_TYPE=debug ..

$ make -j $(nproc)

運行 MapD

經過 MapD 的二進位編譯,我會創建一個數據文件夾,初始化,然後設置 MapD 的資料庫伺服器和它的 Immerse 網路伺服器。


$ mkdir ~/mapd-data

$ bin/initdb --data ~/mapd-data

$ bin/mapd_server --data ~/mapd-data &

$ bin/mapd_web_server &

請注意,這些服務與所有網路界面綁定。所以,請確認 TCP 埠 9090、9091 和 9092,對你不想訪問的系統用防火牆阻止。Immerse 網路伺服器應該在 TCP 埠 9092 上。


$ open http://127.0.0.1:9092/

在 Immerse UI 的頂端,有一個到 SQL 編輯器的鏈接。哪裡,你可以在 MapD 環境里運行 SQL。注意只有檢索文本框里的第一行 SQL 命令會被執行,所以下面的三個請求每次單個運行。


CREATE TABLE testing (

pk INTEGER

);

INSERT INTO testing (pk)

VALUES (123);

SELECT *

FROM testing

LIMIT 1;

如果你從命令行與 MapD 交互,下面的代碼會設置它們的 CLI,並使用默認證書和資料庫連接到 MapD 伺服器。


$ bin/mapdql -p HyperInteractive

學習更多設置資料庫的操作,請查詢 MapD 官方使用指南以及GitHub頁面。

「TensorFlow & 神經網路演算法高級應用班」要開課啦!

不再收費!MapD資料庫開源,過來人指點如何上手

從初級到高級,理論+實戰,一站式深度了解 TensorFlow!

本課程面向深度學習開發者,講授如何利用 TensorFlow 解決圖像識別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎實戰技巧開始,一步步教授學員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,並最終掌握一整套基於 TensorFlow 做深度學習開發的專業技能。

兩名授課老師佟達、白髮川身為 ThoughtWorks 的資深技術專家,具有豐富的大數據平台搭建、深度學習系統開發項目經驗。

時間:每周二、四晚 20:00-21:00

開課時長:總學時 20 小時,分 10 周完成,每周2次,每次 1 小時

線上授課地址:http://www.leiphone.com/special/custom/mooc04.html

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

傳帶觸控屏的亞馬遜Echo六月開售,售價230美元
蘇黎世聯邦理工學院教授Brad Nelson:操縱微米納米級物體的機器人
蘋果和高通爭的不只是專利授權費,更是下一個時代?
一分鐘看懂Facebook、英偉達的這場「AI聯姻」

TAG:雷鋒網 |

您可能感興趣

遊戲輸掉後,Faker總是會查看所有人資料,吐槽低分段,UZI都躺槍了!
你還沒聽過 CynosDB 嗎?不來這場資料庫技術沙龍就要 OUT 了!
DNF裡面腿最粗的人是誰?可惜現在已經不在了,不過我這裡還有資料
關掉這個功能,iPhone上的資料都會不見了?
學完這套Python視頻資料,找工作能拿到15k,現在全部分享出來了
最嚴重iPhone資料外泄!黑客能竊取用戶資料但你也許能賺126萬!
這是我見過最完整的模塊資料!Python有這樣的資源,很快就入門!
魔獸世界:來了來了!聲望箱子又要回來了,PTR資料庫目前已加入
WF卡可以綁定PayPal嗎?WF卡用作收取PayPal付款時要提交什麼資料
偶練2已在錄製中,新PD的資料爆出,你期待嗎?
Hi,你的10G大數據免費學習資料包到了,請簽收!
免費學日語,百G資料還不要錢!
資料庫+AI是如何預測未來的?
看完自己就可以給電腦系統分盤了!不丟資料!不要再去求人了!
微軟收購開源資料庫廠商Citus Data,雲資料庫服務能力再填新砝碼
X-DB期待,即將改寫資料庫未來的你
Hi,你的【10G大數據免費學習資料包】到了,請簽收!
PHP接收json,並將接收數據插入資料庫
HR最熱資料包免費下載:找我要資料的人快把我的褲子都扯破了……
極客,送你一套零售5萬FDM設備的開源資料