mapd环境部署
MapD Technologies将MapD Core数据库进行开源啦。MapD是使用图形处理单元(GPU)以毫秒为单位分析数十亿行数据的先驱,比传统的基于CPU的数据库快几个数量级。MapD Core数据库及其可视化库开源让每个人都可以使用这个世界上最快的分析平台。
准备工具
- 服务系统为: CentOS 7 64位
- SSH登陆工具
系统准备
下面全部在root用户下执行,需要切换用户的地方会指明
一、安装JDK
yum install java-1.8.0-openjdk-headless
然后
vi /etc/profile.d/java.sh
在该文件里面输入
export LD_LIBRARY_PATH=/usr/lib/jvm/jre-1.8.0-openjdk/lib/amd64/server:$LD_LIBRARY_PATH
二、创建mapd用户并更新密码
useradd -U mapd passwd mapd
三、安装CUDA驱动
下载对应显卡的驱动程序,本文环境是NVIDA_P4,下载驱动
登陆网址https://www.nvidia.cn/Download/index.aspx?lang=cn
下载指定版本驱动
驱动下载后执行 ./NVIDIA-Linux-x86_64-384.66.run 进行安装
四、设置防火墙会关闭
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent sudo firewall-cmd --reload
开始安装系统
一、先去MapD的官网下载安装包
这是他们官网地址。
点击Download按钮,然后点击按图所示的Download按钮。
然后把弹出的窗口的信息填好,邮箱一定要真,之后你的邮箱会收到一封邮件。
点击如图所示的GPU会自动下载,可以复制下载链接到SSH中,然后用wget命令下载:
或者直接网址http://go3.mapd.com/e/298412/l-298412-2017-05-07-6c98/6c9d/15747147下载
下载文件为mapd-ce-latest-Linux-x86_64-render.tar.gz
mv mapd-ce-latest-Linux-x86_64-render.tar.gz /home/mapd/mapd.tar.gz cd /home/mapd tar -xvf mapd.tar.gz
然后将解压出来的文件夹改名为 mapd,为了方便
二、配置MapD
输入下面命令,修改环境变量:
vi /etc/profile
环境变量里面添加如下内容:
export MAPD_PATH=/home/mapd/mapd export MAPD_STORAGE=/var/lib/mapd export MAPD_USER=mapd export MAPD_GROUP=mapd export LD_LIBRARY_PATH=/usr/lib/jvm/jre-1.8.0-openjdk/lib/amd64/server
然后
source /etc/profile
使得环境变量生效
1.创建数据目录并修改目录权限
sudo mkdir -p $MAPD_STORAGE sudo chown -R $MAPD_USER $MAPD_STORAGE
2.安装
cd $MAPD_PATH/systemd ./install_mapd_systemd.sh
三、 启动
1.启动MapD Core
sudo systemctl start mapd_server sudo systemctl start mapd_web_serve
2.设置MapD Core随系统启动
sudo systemctl enable mapd_server sudo systemctl enable mapd_web_server
四、验证
验证系统是否启动成功,加载一些数据,然后执行mapdql查询。
首先进入mapd的安装目录:
cd $MAPD_PATH $MAPD_PATH/insert_sample_data
然后你会看到下面的提示:
1:里面有7亿行数据
2:里面有1万行数据
这里笔者选择10K的。
然后执行:
$MAPD_PATH/bin/mapdql -p HyperInteractive
如果看到以下内容说明成功:
然后输入查询语句开始查询:
select count(*) from mapd_counties;
如果看到以下内容说明成功:
在 Immerse UI 的顶端,有一个到 SQL 编辑器的链接。哪里,你可以在 MapD 环境里运行 SQL。注意只有检索文本框里的第一行 SQL 命令会被执行,所以下面的三个请求每次单个运行。
CREATE TABLE testing ( pk INTEGER );
INSERT INTO testing (pk) VALUES (123);
SELECT * FROM testing LIMIT 1;