作者:2551529836hive,今天小编就来聊一聊关于hive怎么查询大数据?接下来我们就一起去研究一下吧!

hive怎么查询大数据(大数据分析工具)

hive怎么查询大数据

作者:2551529836

hive

** Facebook开源

** 官网:hive.apache.org

** Hive是基于Hadoop的一个数据仓库工具

Hive与数据库:

数据库: mysql、oracle、DB2、sqlserver

数据仓库 !== 数据库 换言之, Hive不是数据库

为什么要选择hive

** MapReduce编程成本高

** 针对传统的DBA,不会不熟悉java,要想数据分析,借助Hive

Hive简介:

** 流程

** HQL --> Hive(java) --> mapreduce -->yarn --> HDFS

** 本质: 将HQL转化成MapReduce程序

** 使用MapReduce计算模型,运行在yarn平台之上

** Hive适合离线批量处理,延时比较大

** 不适合在线业务实时分析结果,业务要求延时较低的场景不适合

Hive体系结构

** 用户接口: Client

** 终端命令行CLI --主要的一种使用方式

** jdbc方式 --几乎不用

** 元数据:metastore

** 默认apache使用的是derby数据库(只能有一个客户端使用),CDH使用postgreDB

** 企业通常我们会选择另外一种mysql来存储

** 元数据包括:表名、表所属的数据库(默认是default)、

表的拥有者、列/分区字段、表的类型(是否是外部表)、

表的数据所在目录等

** 这里并没有存储Hive表的真实数据

** Hadoop

** 使用HDFS进行存储

** 使用MapReduce进行计算

** 驱动器: Driver

** 解析器: 解析Hql语句

** 编译器: 把sql语句翻译成MapReduce程序

** 优化器: 优化sql语句

** 执行器: 在yarn平台运行MapReduce程序

====Hive安装======================================================

** 版本 0.13.1(和后面使用到的框架兼容性好)

hive安装所需要的环境:

1、安装JDK,然后测试

$ java -version

2、安装Hadoop

** 确保Hadoop可以正常使用(测试:上传文件、或者运行jar)

$ hdfs dfs -mkdir /input2 #在HDFS上创建文件夹,没有类似-cd进入目录的参数

$ hdfs dfs -mkdir -p /aaa/bbb/ccc #级联创建目录

$ hdfs dfs -ls / #查看

$ hdfs dfs -put b.txt /input #把本地文件拷到HDFS

$ hdfs dfs -cat /input2/b.txt #查看文件

$ hdfs dfs -rm /input2/b.txt #删除文件

$ hdfs dfs -rmr /input? #递归删除文件夹和里面的文件,推荐使用'-rm -r'格式;单字符通配符'?'

$ hdfs dfs -help

3、安装mysql

$ su -

# yum -y install mysql --安装mysql客户端、常用命令

# yum -y install mysql-server --mysql服务

# yum -y install mysql-devel --mysql develop扩展包

***以上可以合并为一句,-y表示所有提问回答都为yes

# yum -y install mysql mysql-server mysql-devel

# rpm -qa|grep mysql --查看安装的mysql

# rpm -ql mysql-server-5.1.73-7.el6.x86_64 --查看安装位置

# rpm -e --nodeps mysql-server-5.1.73-7.el6.x86_64 --卸载,nodeps:不检查依赖

# service mysqld start --启动mysql服务

# chkconfig mysqld on --设置开机启动

# /usr/bin/mysqladmin -uroot password 'root' --初始化密码,只能执行一次

给用户授权:

# mysql -uroot -proot

*** grant 权限 on 数据库对象(数据库.表) to 用户

mysql> grant all on *.* to root@'blue01.mydomain' identified by 'root';

mysql> flush privileges; #刷新授权表,可以不执行

mysql> set password for root@localhost = password('root'); --修改密码

mysql> show databases;

** mysql数据库默认只允许root用户通过localhost(127.0.0.1)来登录使用

** 想要使用Windows上的Navicat登录,需要授权

** mysql> grant all on *.* to root@'192.168.122.1' identified by 'root';

附:yum命令和rpm命令安装的都是rpm包

yum安装包的来源: 来自互联网(由仓库配置文件指定)

rpm安装包的来源: 先提取现在需要安装的软件包

----------------------

4、开始安装Hive

# su - tom

$ tar zxf /opt/softwares/apache-hive-0.13.1-bin.tar.gz

** 在conf/目录:

$ cp -a hive-env.sh.template hive-env.sh --重命名,-a连同原来属性一起复制

$ cp -a hive-default.xml.template hive-site.xml

5、修改hive-env.sh

JAVA_HOME=/opt/modules/jdk1.7.0_67

HADOOP_HOME=/opt/modules/hadoop-2.5.0

export HIVE_CONF_DIR=/opt/modules/apache-hive-0.13.1-bin/conf

6、配置hive-site.xml,注意:用户名和密码不可以有空格

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://blue01.mydomain:3306/metastore?createDatabaseIfNotExist=true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>root</value>

</property>

7、拷贝mysql驱动到lib/

** 若是jar已解压,则不必执行这步:$ tar zxf mysql-connector-java-5.1.27.tar.gz

$ cp mysql-connector-java-5.1.27-bin.jar /opt/modules/apache-hive-0.13.1-bin/lib/

8、进入Hadoop目录,修改目录权限

** /tmp存放临时文件

$ bin/hadoop fs -chmod g w /tmp #给用户组加上写的权限

** /user/hive/warehouse为Hive存放数据的目录

$ bin/hdfs dfs -mkdir -p /user/hive/warehouse

$ bin/hadoop fs -chmod g w /user/hive/warehouse

9、启动客户端使用Hive

$ bin/hive --用法几乎跟mysql一样

hive> show databases;

,