安装mysql、hive步骤
一、什么是hive
Hive是基于Hadoop的一个数据仓库工具(离线),可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
操作接口采用类SQL语法,提供快速开发的能力, 避免了去写MapReduce,减少开发人员的学习成本, 功能扩展很方便。
用于解决海量结构化日志的数据统计。
本质是:将 HQL 转化成 MapReduce 程序
1、优缺点
优点:(1) 操作接口采用类 SQL 语法,提供快速开发的能力(简单、容易上手)。
(2) 避免了去写 MapReduce,减少开发人员的学习成本。
(3) Hive 的执行延迟比较高,因此 Hive 常用于数据分析,对实时性要求不高的场合。
(4) Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高。(不断地开关JVM虚拟机)
5) Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
缺点: 1.Hive 的 HQL 表达能力有限
(1)迭代式算法无法表达 (反复调用,mr之间独立,只有一个map一个reduce,反复开关)
(2)数据挖掘方面不擅长
2.Hive 的效率比较低
(1)Hive 自动生成的 MapReduce 作业,通常情况下不够智能化
(2)Hive 调优比较困难,粒度较粗 (hql根据模板转成mapreduce,不能像自己编写mapreduce一样精细,无法控制在map处理数据还是在reduce处理数据)
2、架构原理
二、启动方式
需要先启动hdfs和yarn,hive数据最终保存在hdfs,操作表需要mr,所以需要yarn资源调度
1、方式一:
[root@hdp-2 lib]# hive
设置一些基本参数,让hive使用起来更便捷,比如:
//让提示符显示当前库:
hive>set hive.cli.print.current.db=true;
//显示查询结果时显示字段名称:
hive>set hive.cli.print.header=true;
但是这样设置只对当前会话有效,重启hive会话后就失效,解决办法:
在linux的当前用户目录中~,编辑一个.hiverc文件,将参数写入其中:
vi .hiverc
set hive.cli.print.header=true;
set hive.cli.print.current.db=true;
2、方式二:
在hdp-1服务器端启动hivesever2 (1)停在这个页面
[root@hdp-1 conf]# hiveserver2
启动hivesever2 (2)信息打印输出台
[root@hdp20-04 hive-1.2.1]# bin/hiveserver2 -hiveconf hive.root.logger=DEBUG,console
启动hivesever2 (2)后台启动
hiveserver2 1>/dev/null 2>&1 &
hive的安装在之前已经写了 地址: