1、前言java
Hadoop简介node
Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等.接下来咱们使用的是Hivemysql
Hive简介linux
Hive 是一个基于 Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据。 它把海量数据存储于 hadoop 文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用 HQL (类 SQL )语言对这些数据进行自动化管理和处理。咱们能够把 Hive 中海量结构化数据当作一个个的表,而实际上这些数据是分布式存储在 HDFS 中的。 Hive 通过对语句进行解析和转换,最终生成一系列基于 hadoop 的 map/reduce 任务,经过执行这些任务完成数据处理。sql
Presto简介数据库
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto的设计和编写彻底是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询能够将多个数据源的数据进行合并,能够跨越整个组织进行分析。apache
2、环境准备centos
Hadoop2.X服务器
apache-hive-2.1.0jvm
presto-server-0.156.tar.gz
Mysql5.7
3、速度测试
4、本机服务器准备
虚拟机使用linux的centos
Hadoop 192.168.209.142,192.168.209.140
hive 192.168.209.140
presto 192.168.209.140
mysql 10.0.0.7
5、环境搭建
1.Hadoop环境搭建<略>
2.Hive环境搭建
解压Hive文件
[root@HDP134 ~]# tar -zxvf /home/hive/apache-hive-2.1.0-bin.tar.gz
配置hive
[root@HDP134 ~]# vi /etc/profile
由于HIVE用到了Hadoop须要在最下边加上hadoop和Hive的路径
#Hadoop
export HADOOP_INSTALL=/opt/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_HOME=$HADOOP_INSTALL
#Hive
export HIVE_HOME=/home/hive/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
保存退出以后进入配置文件,复制并生命名hive-env.sh,hive-site.xml
[root@HDP134 ~]# cd /home/hive/apache-hive-2.1.0-bin/conf
[root@HDP134 ~]# cp hive-env.sh.template hive-env.sh
[root@HDP134 ~]# cp hive-default.xml.template hive-site.xml
配置hive-site.xml
替换hive-site.xml文件中的 ${system:java.io.tmpdir} 和 ${system:user.name}
默认状况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但通常状况下生产环境使用 MySQL 来存放 Hive 元数据。
继续修改Hive-site.xml配置Mysql
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property>
保存退出
因为Hive要使用Hadoop,因此如下全部操做均是在hadoop用户下操做先为Hadoop赋值目录权限使用以下命令
chown -R hadoop:hadoop /home/hive
切换用户
在 Hive 中建立表以前须要使用如下 HDFS 命令建立 /tmp 和 /user/hive/warehouse (hive-site.xml 配置文件中属性项 hive.metastore.warehouse.dir 的默认值) 目录并给它们赋写权限。
至此基本配置已经完成,能够运行Hive了,运行Hive以前须要先开启Hadoop.
从 Hive 2.1 版本开始, 咱们须要先运行 schematool 命令来执行初始化操做。
执行成功以后,能够查看本身的Mysql,我刚配置的mysql库为Hive,咱们能够进行MYSQL执行show databases;查看是否已经建立hive数据库
咱们能够看到已经自动生成了不少表。说明Hive已成功链接Mysql
咱们来运行一下Hive,直接输入hive命令,便可(必定要是在hadoop下操做,否则会报一些无权限的一大堆错误)
hive已启动,咱们能够执行一下show tables;查看一下;
至此hive已安装完成,后边会说到如何建立一个orcfile格式的文件。
3.Presto安装
首先解压下载好的tar.gz包
配置presto
进入etc文件,咱们总共须要建立并配置5个文件
除去hadoop那个文件夹,另外的5个下边一一说明
node.properties:每一个节点的环境配置
jvm.config:jvm 参数
config.properties:配置 Presto Server 参数
log.properties:配置日志等级
Catalog Properties:Catalog 的配置
1>node.properties配置
节点配置node.id=1
切记:每一个节点不能重复我本地把协调和生产节点部署到了一块儿
2>config.properties
discover.uri是服务地址,http://HDP134:8080是我192.168.209.140的映射
3>catalog hive.properties的配置
connector.name是链接器,咱们就用Hive-cdh5
4>jvm.config配置
这个能够根据本身的机器配置进行相应调整
5>log.properties配置
配置完成以后,能够运行presto服务了,前提是要先为hadoop赋值目录权限,使用以下命令
chown -R hadoop:hadoop /home/presto
presto服务的启动方式有两种,第一种是strat后台运行看不到日志输出 ,run前台运行,可在前台看到打印日志,建议前期使用run进行前台运行
一样的,要使用hadoop用户启动服务
当出现这样的关键词时,恭喜搭建完成
接下来能够测试一下,咱们使用一个工具presto-cli-0.90-executable.jar 下载以后,重命名为presto-cli
启动Hive服务
Presto客户端链接
链接Hive库,并进入如上命令行,能够执行一下show tables;进行测试
能够显示出hive的全部表,表示presto链接Hive成功
今天就先写到这里,接下来会写建立一个orcfile的几种方法,包括从txtfile转成orcfile,另外一种是经过jdbc直接生成orcfile。
以上纯属本身的理解以及本地部署的过程,若是有什么地方有误敬请谅解!