3 分布式计算SQL体系
Hive
主要功能是将SQL翻译成MapReduce
模拟实现Hive
针对SQL:
SELECT city, COUNT(*) FROM t_user GROUP BY city
提示
针对文本文件,需要对文件生成映射才可以查找计算
针对以上分析构建SQL计算,需要拥有:
- 元数据管理功能(数据位置,数据文件,数据描述)
- SQL解析器(分析SQL,SQL转换MR)
Hive 基础架构
- Metastore-元数据存储
- Driver驱动程序(SQL解析器)
- 用户接口
Hive 部署
提示
Hive 本身是单机工具,只需部署在一台服务器上
规划
服务 | 机器 |
---|---|
Hive程序 | 部署在node1 |
关系性数据库(元数据映射) | 部署在node1 |
配置文件
/hive/conf/hive-env.shsh
export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=/export/server/hive
export HIVE_AUX_JARS_PATH=/export/server/hive/lib
/hive/conf/hive-site.xmlxml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--连接数据的用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--连接数据的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!--mysql数据库的访问路径,没有路径则自动创建-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://guet.gxist.cn:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!--连接数据库的驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--元数据是否校验-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--是否自动创建核心文件-->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<!--thrift服务器绑定的主机-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!--默认的存储地址-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!--设置显示表头字段名-->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
</configuration>