背景
每个支持SQL的数据库,都有一个强大的SQL引擎。
而对于SQL引擎,基本都是大同小异的,负责SQL文法解析,语意分析,指定查询树,优化查询树,再到最终的执行,客户端返回结果。
而presto的也跟一般的是一样的。
架构如下:
准备
1.postgresql-9.5.3
2.mysql-5.0.7
3.hadoop-2.5.2
4.hive-1.2.1
5.presto-server-0.147
6.presto-cli-0.147-executable.jar
且注意系统要求:
Mac OS X or Linux
Java 8 Update 60 or higher (8u60+), 64-bit
Maven 3.3.9+ (for building)
Python 2.4+ (for running with the launcher script)
环境搭建_1
mysql,postgresql都是在windows这边搭建的,直接就可以使用。
hadoop-2.5.2的搭建手顺之前的博文中已经记载了,此处不再说明。
hive的环境,解压后就可以使用了。
这里主要说一下hive的两种CLI工具:
1.hive shell
2.beeline
现在官网标记beeline是new,hive shell是older。建议使用beeline,结果的现实比较直观易懂。跟mysql的比较像。
beeline的启动,如果hive使用默认的debery数据库的话,请使用下面的方式启动
./bin/beeline -u jdbc:hive2://
另外,derby只能同时一个用户使用,否则会报错如下所示:
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /home/myProject/apache-hive-1.2.1-bin/metastore_db.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)