crate部署(crateDB)

crateDB部署

介绍

crateDB底层用elasticsearch开发,多表搜索和子查询功能要比elasticsearch强大很多。官网地址https://crate.io/

部署步骤

1.安装java

我一般喜欢yum安装,如果没有特殊需要yum安装即可

#查看可以安装java哪些版本
yum list java*

#选择好版本后进行安装
yum install java-1.8.0-openjdk*

2.需要创建执行crate的用户,root下不能启动,这点需要注意

useradd crate

3.创建存放crateDB的文件夹,然后启动安装crateDB脚本,等待安装结束即可

#我将crateDB存放在了/data下
mkdir /data
#指定权限
chown -R crate.crate /data
#切换到crate用户并且执行官方脚本
su - crate
cd /data
bash -c "$(curl -L try.crate.io)"

4.安装结束后就可以使用了,需要注意的是安装后不是后台运行,需要给停止然后重新启动(配置文件我这里没有修改)

ctrl+c #强制结束
./bin/crate -d #后台启动

5.需要注意的是python下启动crash脚本会报错,需要手动升级脚本到2.7以上,

我这里使用的是最新的python版本。

#安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
#下载python版本,现在稳定版本是3.6.4并且解压
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar xvzf Python-3.6.4.tgz
mv Python-3.6.4 python-3.6.4
cd python-3.6.4
#编译安装python
./configure --prefix=/usr/local/python3.6
make
make install
#替换之前的版本
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python
#查看当前pthon版本
python -V
#修改yum配置,不然会报错
vi /usr/bin/yum
将第一行的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6

6.创建UI界面的用户名,并创建权限,一般情况下本机安装crateDB直接访问localhost:4200会直接进入UI界面,不用账号密码,但是生产环境需要用户名密码,这样就需要借助crash脚本来生成。crash脚本其实就是sql命令行模式,非常方便,但是如果使用UI界面的话就可以不用登录服务器这样更方便。

#启动脚本
./bin/crash
#创建账号密码(需要注意的是默认用户有crate该用户不能修改密码,也不能删除)
CREATE  USER  test  WITH  (password  =  '123456');
#赋予权限
GRANT DQL TO test;
GRANT DDL TO test;
GRANT DML TO test;
#这样test就拥有所有权限了

7.我并不想暴露我服务器的ip地址,所以加了一个域名去访问,如果认为没事儿的话可以省略这一步,但是需要注意开放4200端口。

#nginx转发配置
server {
     listen       80;
     server_name  crate.test.com; #自己的域名

     location / {
           proxy_set_header  X-Real-IP  $remote_addr;
           proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header  Host $host;
           #proxy_redirect off;

           proxy_connect_timeout 180;
           proxy_read_timeout 180;
           proxy_send_timeout 180;
           proxy_pass http://127.0.0.1:4200;
     }

}

8.最后就可以使用了,需要注意的是crateDB语句和sql语句还是有区别的。

猜你喜欢

转载自blog.csdn.net/z619193774/article/details/79376256