虽然说每一次的错误都会加深我对一个东西的深入理解,但是我这一天都用在这上面了,所以必须写的一个文档,不能同一个地方跌到两次。
用MapD新建一个大表(使用copy的方式,7百万行的表),系统崩掉了。经过各种方法后系统重新工作,但是MapD不干活了。
报错是Thrift的连接被拒绝,错误在9091口上。
一开始就感觉防火墙有问题,然后 sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
发现没有firewall-cmd这个东西,使用以下的命令:
ubuntu 系统默认已安装ufw.
1.安装
sudo apt-get install ufw
2.启用
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
3.开启/禁用
sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
4.查看防火墙状态
sudo ufw status
一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
经过以上操作后,发现仍未解决。但是再次使用sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
告诉我,我没有防火墙,并告诉了安装方式,用他给的方法安装即可。
问题仍然没有解决。
以下重装了Thrift:(在总目录下,先用 rm -rf删除掉已经安装的thrift-0.10.0)
$ 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
然后,编译 MapD
$ git clone https://github.com/mapd/mapd-core.git
$ cd mapd-core
$ git checkout 21fc39
进入build,强制初始化mapd-data(由于是新建表格时出现的问题,所以强烈怀疑只用这一步就行)
bin/initdb -f --data ~/mapd-data
然后打开mapd
$ bin/mapd_server --data ~/mapd-data &
$ bin/mapd_web_server &
$ bin/mapdql -p HyperInteractive
此时,所有的之前建的表都没有了。要重新下载。
在build中执行:./insert_sample_data 下载相关文件
然后$ bin/mapdql -p HyperInteractive 进入mapdql 环境,进行相关操作。