一、初识Hive

1、什么是Hive

Hive是基于Haddop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表并提供SQL查询功能,可以将SQL语句转换

MapReduce任务运行。

Hive提供了一系列的工具,可以给用来数据提取转换加载(ETL)是一种存储、查询和分析存储在Hadoop中的大规模数据的机制

2、Hive发展历史及版本

2007年8月 – 始于Facebook

2013年5月 – 0.11 Stinger Phase 1 ORC HiveServer2

2013年10月 – 0.12.0 Stinger Phase 2 - ORC improvement

2014年4月 – Hive 0.13.0 as Stinger Phase 3

2014年11月 – Hive 0.14.0

2015年2月 – Hive 1.0.0

2015年5月 – Hive 1.2.0 (1.2.1 本系列课实验重点版本 )

2016年2月 – Hive 2.0.0 (添加 HPLSQL, LLAP)

2016年6月 – Hive 2.1.0 (2.1.0 本系列课实验补充版本 )

3、为什么要使用Hive

提供了一个简单的优化模型

HQL类SQL语法,简化MR开发

支持在不同的计算框架上运行

支持在HDFS和HBase上临时查询数据

支持用户自定义函数、格式

成熟的JDBC和ODBC驱动程序,用于ETL和BI

稳定可靠(真实生产环境)的批处理

有庞大活跃的社区

4、Hive体系架构

Hive的体系结构分以下几个部分

1)用户接口主要是3个:CLI,Client,HWI(Hive Web Interface)

2)Hive将元数据存储在数据库中,如MySQL、Derby。

3)解释器、编译器、优化器完成HQL查询语句从词法分析、语句分析、编译、优化到查询计划的生成。生成的查询计划存储在HDFS中,随后由MapReduce调用执行。
4)Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(注意 含*的查询,例如:select * from tbl 不会生成 MapReduce任务)

5、Hive与传统数据库

6、交互模式

7、Hive数据类型

1)原始数据类型(类似于SQL数据类型)

2)复杂数据类型

* ARRAY:存储的数据为相同类型
* MAP:具有相同类型的键值对
* STRUCT:封装了一组字段

8、Hive元数据结构

9、Hive数据表

分为内部表和外部表

1) 内部表(管理表)

HDFS中为所属数据库目录下的子文件夹

数据完全由Hive管理,删除表(元数据)会删除数据

2)外部表(External Tables)

数据保存在指定位置的HDFS路径中

Hive不完全管理数据,删除表(元数据)不会删除数据

10、Hive建表语句

create table student if not exists (

id int,

name string)

row format delimited fields terminated by ‘,’

location ‘/file’;

11、建表语句分析

二、配置Hive

1、安装准备

jdk-8u221-linux-x64.tar.gz

hadoop-2.6.0-cdh5.14.2.tar.gz

hive-1.1.0-cdh5.14.2.tar.gz

zookeeper-3.4.6.tar.gz

MySQL-client-5.6.46-1.el7.x86_64.rpm

MySQL-server-5.6.46-1.el7.x86_64.rpm

mysql-connector-java-5.1.48-bin.jar

更改主机名:hostnamectl set-hostname hadoop01

更改主机列表:vi /etc/hosts 新增:192.168.48.104 hadoop01保存退出

在opt目录下创建soft文件夹:mkdir /opt/soft

切换至soft文件夹 cd /opt/soft

将文件拖入此目录中

解压hadoop: tar -zxfhadoop-2.6.0-cdh5.14.2.tar.gz

解压hive:tar -zxfhive-1.1.0-cdh5.14.2.tar.gz

解压zookeeper:tar -zxfzookeeper-3.4.6.tar.gz

解压jdk: tar -zxf jdk-8u221-linux-x64.tar.gz

给文件夹改名:

mvhadoop-2.6.0-cdh5.14.2 hadoop

mvhive-1.1.0-cdh5.14.2 hive hive

mvzookeeper-3.4.6 zookpr

mvjdk-8u221-linux-x64 java8

配置免密登录:

ssh-keygen -t rsa -P ‘’

ssh-copy-id hadoop01

ps:需要稍等片刻

2、配置jdk及环境变量

vi /etc/profile

shift + g 最后一行添加

export JAVA_HOME=/opt/soft/java8

export JRE_HOME=/opt/soft/java8/jre

export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA\_HOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

export HADOOP_HOME=/opt/soft/hadoop

export HIVE_HOME=/opt/soft/hive

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS=“-Djava.library.path=$HADOOP_HOME/lib”

export PATH=PATH:PATH:PATH:JAVA_HOME/bin:JRE_HOME/bin:JRE\_HOME/bin:JRE_HOME/bin:HADOOP_HOME/sbin:HADOOP_HOME/bin:HADOOP\_HOME/bin:HADOOP_HOME/bin:HIVE_HOME/bin

保存退出

使配置即时生效:source /etc/profile

3、配置hadoop

切换至:cd /opt/soft/hadoop/etc/hadoop 目录

vi core-site.xml

新增

fs.defaultFS

hdfs://192.168.48.104:9000

hadoop.tmp.dir

/opt/soft/hadoop/tmp

hadoop.proxyuser.root.hosts

*

hadoop.proxyuser.root.groups

*

vi hdfs-site.xml

dfs.replication

1

dfs.permissions.enable

false

vi mapred-site.xml

mapreduce.framework.name

yarn

vi yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.resourcemanager.localhost

localhost

修改jdk环境变量

vi hadoop-env.sh

export JAVA_HOME=/opt/soft/java8

4、配置zookeeper

切换目录至:cd /opt/soft/zookpr

将zoo_sample.cfg改名:mv zoo_sample.cfg/ zoo.cfg

修改zoo.cfg :vi zoo.cfg

修改:将路径改到zookpr目录下

dataDir=/opt/soft/zookpr/zookprdata

新增

server.1=hadoop01:2888:3888

mkdir /opt/soft/zookprzookprdata 使core-site.xml配置中的文件夹存在

格式化:hadoop namenode -format

运行zookper:start-all.sh

ps:首次需要输入四次yes

jps:查看进程如下图 配置无误

5、配置mysql

查看冲突软件:rpm -qa | grep mariadb

卸载冲突文件:rpm -emariadb-libs-5.5.64-1.el7.x86_64 --nodeps

切换至:cd /opt/soft 目录下

下载MySQL组件:

yum install -y nettools

yum install -y perl

yum install -y autoconf

解压客户端:rpm -ivh MySQL-client-5.6.46-1.el7.x86_64.rpm

解压服务端:rpm -ivh MySQL-server-5.6.46-1.el7.x86_64.rpm

启动数据库:service mysql start

修改配置文件: vi /usr/my.conf‘

[client]

default-character-set = utf8

[mysql]

skip-grant-tables

character-set-server = utf8

collation_server = utf8_general_ci

lower_case_table_names

保存退出

重启MySQL:service mysql restart

进入MySQL:mysql

使用数据库:use mysql

设置登陆密码:update user set password = password(‘ok’);

/q 退出数据库

6、配置Hive

切换至:cd /opt/soft/zookpr/conf 目录

新建hive-site.xml文件:vi hive-site.xml

hive.metastore.warehouse.dir

/usr/hive/warehouse

管理表存储的位置,可以是linux中的目录,也可以是相对于fs.default.name有关的目录

hive.metastore.local

true

javax.jdo.option.ConnectionURL

jdbc:mysql://127.0.0.1:3306/hivecreateDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

root

javax.jdo.option.ConnectionPassword

ok

hive.server2.authentication

NONE

hive.server2.thrift.client.user

root

hive.server2.thrift.client.password

ok

更改hive-env.sh.template文件名:mv hive-env.sh.template hive-env.sh

修改hive-env.sh文件:vi hive-env.sh

export HADOOP_HOME=/opt/soft/hadoop

export HIVE_CONF_DIR=/opt/soft/hive/conf

export HIVE_AUX_JARS_PATH=/opt/soft/hive/lib

export JAVA_HOME=/opt/soft/java8

将mysql-connector-java-5.1.48-bin.jar移动到移动到/opt/soft/hive/lib目录下:

mv /opt/soft/mysql-connector-java-5.1.48-bin.jar /opt/soft/hive/lib

hadoop fs -ls / 查看hdfs目录文件

hadoop fs -mkdir -p /usr/hive/warehouse 创建管理表存储位置

hadoop fs-chmod -R 777 /usr/hive 给文件夹赋权

初始化 MySQL:schematool -dbType mysql -initSchema

关闭黑界面后台运行提示功能,节省一个后台窗口:

hive后台执行:nohup hive --service hiveserver2 &

beeline -u jdbc:hive2://localhost:10000 命令行模式

ps:最好在hive/bin目录下运行

要退出beeline :!q

hive 进入hive 交互模式

退出 quit; 或者 exit;

此时 jps

7、常见错误

1)未能成功连接数据库(命令行模式启动失败)

可能的原因:1、未启动Hive后台运行 2、数据库hive已经存在 3、配置文件更改后未重新启动

2)无法创建数据库

解决方案:查看hive-site.xml配置文件中的管理表存储的位置 文件夹是否存在 以及 有无赋权

3)无法删除数据库中的表

连接数据库的jar包版本较低,需要升级

4)未在hive/bin目录下运行beeline模式,导致的冲突问题

5)其他,欢迎补充

菜鸟先飞之初识Hive、安装教程及常见问题相关推荐

  1. 人工智能 - paddlepaddle飞桨 - 入门之安装教程

    人工智能 - paddlepaddle飞桨 - 入门之安装教程 快速安装 PaddlePaddle支持使用pip快速安装, 执行下面的命令完成CPU版本的快速安装: pip install -U pa ...

  2. 新的比较详细的hive安装教程,包含:hadoop的安装配置,hive安装详细教程,大数据下hive详细配置和简单使用和hive元数据迁移相关安装配置操作

    简介:这是大数据里安装hive比较详细的教程,包括安装hive时hadoop的相关配置,hive安装,hive 之后的mysql安装,hive的元素配置到mysql相关配置,hive常见属性的相关配置 ...

  3. 无显示器u盘安装centos_最新版 CentOS 8.1.1911 安装教程及常见问题图文详解

    基于笔记本(华硕)操作,使用软碟通(UltraISO)制作的系统启动盘(U盘,内存大于8G)操作可自行百度,非常简单(或可留言,择情况出一期U盘制作启动盘教程). a.登录 centos 官网下载镜像 ...

  4. 菜鸟先飞之初识Linux操作系统

    2020-06-16 Linux 操作系统 服务器基本要求: 稳定 安全 灵活性高 常见操作系统中 windows 和 apple 操作系统是闭源的: 安卓操作系统是开源的: Linux操纵系统是闭源 ...

  5. 菜鸟学python小助手不能添加_菜鸟学Python 安装教程和常见问题

    Anaconda 安装链接及教程 (强烈建议把此文档看到最后再下手装!!) 一.什么是 python python 是一门解释性语言,语法简单,有大量的扩展包,如处理图像,爬取网页等等.(需安装 py ...

  6. Windows下Python安装教程与常见问题

    1.安装Python Python3.x版本与Python2.x版本有很多语法差异,并且不兼容2.x版本,而且现在网上很多资料都是关于Python2.x的,所以建议安装2.x的版本. 本文安装的是Py ...

  7. desktop docker 无法卸载_docker 安装教程和常见问题

    docker能干什么? 简单的说docker 是一个非常方便的环境搭建工具.比如想搭建一个mongodb服务,但是许多服务没有方便的安装包.这时你只需要5行命令就能完成三部搭建mongo,和mongo ...

  8. 学习笔记Hive(二)—— Hive安装配置

    一.环境介绍 环境 描述 4个Linux操作系统虚拟机 使用centos7镜像配置 安装java 1.8以上版本 安装Hadoop 2.6.5以上版本 安装MySQL 5.1以上版本 二.安装MySQ ...

  9. Alex 的 Hadoop 菜鸟教程: 第10课 Hive 安装和使用教程

    原帖地址: http://blog.csdn.net/nsrainbow/article/details/41748863 最新课程请关注原作者博客 声明 本文基于Centos 6.x + CDH 5 ...

最新文章

  1. java原子变量的作用_AtomicInteger原子类的作用介绍(代码示例)
  2. java spring框架 注解_详解Java的Spring框架中的注解的用法
  3. 工程制图 (立体投影)
  4. git clone远程仓库时,输错密码如何解决?
  5. 海尔计算机类,海尔计算机类笔题
  6. CentOS7虚拟机断电,出现:“Entering emergency mode. Exit the shell to continue.”
  7. asp.net MVC:CheckBoxFor 绑定 nullablebool 类型
  8. Linux 命令 之 【stat】 查看文件状态。 (包括修改时间)
  9. LeetCode刷题系列(一)把回溯算法框架将给爷爷奶奶听
  10. 数据结构与算法之队列
  11. XP系统还原计算机用户名,详细教你xp系统还原操作方法
  12. flowable 配置自定义表单_SpringBootSecurity学习(03)网页版登录添加自定义登录页面...
  13. 开热点给电脑消耗大吗_电脑用手机热点上网耗流量多不多
  14. 制作中国范围地图的几点注意事项
  15. 破14亿,用Python分析我国存在哪些人口危机!
  16. linux 水印软件下载,水印美图滤镜相机
  17. win 10 右键新建offic失效问题
  18. 如何将图片中的表格变成Excel?这几个操作很简单
  19. JavaScript blog式日历控件
  20. 知物由学 | 如何从勒索软件的攻击中全身而退

热门文章

  1. 很遗憾,你们的问题我无法回答--Leo谈应届生求职 10
  2. 选房要诀:一问,二要,三不可不知
  3. 新书推荐 |《Linux系统安全:纵深防御、安全扫描与入侵检测》
  4. 在PC上通过手机发送短消息(续篇)
  5. RAD Studio Delphi、C++Builder 11 即将推出:新版本号公告和更新订阅客户的 Beta 版邀请
  6. 产品经理从专能到全能——似懂非懂的分辨率
  7. SAP销售订单一张交货单对应一张发票
  8. 第八届省赛——D.引水工程)
  9. 达梦数据库导入导出操作步骤
  10. Play! framework开发规范