AsterixDB是一个大数据管理软件,由UC Irvine的Michael Carey发起,据说比Hadoop更为高效,同样开源,现在就从零开始学习并争取在一年内成为它的一个committer.
首先,可以从官网里下载源码,或者用git把源码clone下来,
git clone http://asterix-gerrit.ics.uci.edu/asterixdb
然后用maven将源码编译,可能需要比较长的时间,并且如果网速不行的话可能会出现超时错误,只需要反复尝试几次就可以了.
进入编译好的源码目录,找到asterix-installer/target目录下的asterix-installer-0.8.9-SNAPSHOT-binary-assembly,将它移动到你的工作路径下,可以rename一下方便之后的操作,我将它重命名为asteridb,这就是AsterixDB运行的文件啦.
下一步就是搞一下ssh免密码登陆什么的,如果之前配置过Hadoop的话这里就不用麻烦啦,然后修改clusters/local目录下的xml配置文件,里面主要包括几个部分:java路径(最好1.8),工作路径,master的ip和端口,node的ip等等.
AsterixDB里和Hadoop类似,有master的概念,和其相对应会有一个CC进程来管理master下各个node的工作,然后每个node会各自有一个NC进程来管理下面小线程的工作.
我的电脑cpu有4个core,所以分配两个node,每个node里面再设置两个小线程(姑且理解为小线程),配置文件可以参考如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cluster xmlns="cluster">
<java_home>/home/lyx/jdk1.8.0_91/jre</java_home>
<log_dir>/home/lyx/asterixdb/clusters/demo/working_dir/logs</log_dir>
<txn_log_dir>/home/lyx/asterixdb/clusters/demo/working_dir/txnLogs</txn_log_dir>
<store>storage</store>
<working_dir>
<dir>/home/lyx/asterixdb/clusters/demo/working_dir</dir>
<NFS>true</NFS>
</working_dir>
<master_node>
<id>master</id>
<client_ip>127.0.0.1</client_ip>
<cluster_ip>127.0.0.1</cluster_ip>
<client_port>1098</client_port>
<cluster_port>1099</cluster_port>
<debug_port>8800</debug_port>
<http_port>8888</http_port>
</master_node>
<node>
<id>node1</id>
<debug_port>8701</debug_port>
<cluster_ip>127.0.0.1</cluster_ip>
<txn_log_dir>/home/lyx/asterixdb/clusters/demo/working_dir/node1/txnLogs</txn_log_dir>
<iodevices>/home/lyx/asterixdb/clusters/demo/working_dir/node1/1,/home/lyx/asterixdb/clusters/demo/working_dir/node1/2</iodevices>
</node>
<node>
<id>node2</id>
<debug_port>8702</debug_port>
<cluster_ip>127.0.0.1</cluster_ip>
<txn_log_dir>/home/lyx/asterixdb/clusters/demo/working_dir/node2/txnLogs</txn_log_dir>
<iodevices>/home/lyx/asterixdb/clusters/demo/working_dir/node2/1,/home/lyx/asterixdb/clusters/demo/working_dir/node2/2</iodevices>
</node>
</cluster>
因为是配置单机版的AsteriDB,所以ip都设置为127.0.0.1,环境配置完之后就可以验证是否能够正常运行啦!
进入你的asterixdb的目录,我的就是工作路径下的asterixdb,然后
managix create -n test -c demo.xml
-n后的参数是你要生成的一个work(姑且这么叫吧)的名字,可以随便定义;
-c后面是你的配置文件名,我的配置文件就是demo.xml.
如果生成成功的话就说明配置成功啦!万里长征走出了第一步!
那么,想要用AsterixDB实现自定义的工作该怎么办呢?
打开浏览器,输入127.0.0.1:19001,回车!
哈哈,原来如此,看来是需要在左边的Query框框里写入你需要执行的AQL语句(神似SQL)然后轻轻点一下下面的run就可以啦!
来试一下,输入
let $message := 'Hello World!'
return $message
SO EASY !!!