菜鸟先飞之初识Hive、安装教程及常见问题
一、初识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、安装教程及常见问题相关推荐
- 人工智能 - paddlepaddle飞桨 - 入门之安装教程
人工智能 - paddlepaddle飞桨 - 入门之安装教程 快速安装 PaddlePaddle支持使用pip快速安装, 执行下面的命令完成CPU版本的快速安装: pip install -U pa ...
- 新的比较详细的hive安装教程,包含:hadoop的安装配置,hive安装详细教程,大数据下hive详细配置和简单使用和hive元数据迁移相关安装配置操作
简介:这是大数据里安装hive比较详细的教程,包括安装hive时hadoop的相关配置,hive安装,hive 之后的mysql安装,hive的元素配置到mysql相关配置,hive常见属性的相关配置 ...
- 无显示器u盘安装centos_最新版 CentOS 8.1.1911 安装教程及常见问题图文详解
基于笔记本(华硕)操作,使用软碟通(UltraISO)制作的系统启动盘(U盘,内存大于8G)操作可自行百度,非常简单(或可留言,择情况出一期U盘制作启动盘教程). a.登录 centos 官网下载镜像 ...
- 菜鸟先飞之初识Linux操作系统
2020-06-16 Linux 操作系统 服务器基本要求: 稳定 安全 灵活性高 常见操作系统中 windows 和 apple 操作系统是闭源的: 安卓操作系统是开源的: Linux操纵系统是闭源 ...
- 菜鸟学python小助手不能添加_菜鸟学Python 安装教程和常见问题
Anaconda 安装链接及教程 (强烈建议把此文档看到最后再下手装!!) 一.什么是 python python 是一门解释性语言,语法简单,有大量的扩展包,如处理图像,爬取网页等等.(需安装 py ...
- Windows下Python安装教程与常见问题
1.安装Python Python3.x版本与Python2.x版本有很多语法差异,并且不兼容2.x版本,而且现在网上很多资料都是关于Python2.x的,所以建议安装2.x的版本. 本文安装的是Py ...
- desktop docker 无法卸载_docker 安装教程和常见问题
docker能干什么? 简单的说docker 是一个非常方便的环境搭建工具.比如想搭建一个mongodb服务,但是许多服务没有方便的安装包.这时你只需要5行命令就能完成三部搭建mongo,和mongo ...
- 学习笔记Hive(二)—— Hive安装配置
一.环境介绍 环境 描述 4个Linux操作系统虚拟机 使用centos7镜像配置 安装java 1.8以上版本 安装Hadoop 2.6.5以上版本 安装MySQL 5.1以上版本 二.安装MySQ ...
- Alex 的 Hadoop 菜鸟教程: 第10课 Hive 安装和使用教程
原帖地址: http://blog.csdn.net/nsrainbow/article/details/41748863 最新课程请关注原作者博客 声明 本文基于Centos 6.x + CDH 5 ...
最新文章
- java原子变量的作用_AtomicInteger原子类的作用介绍(代码示例)
- java spring框架 注解_详解Java的Spring框架中的注解的用法
- 工程制图 (立体投影)
- git clone远程仓库时,输错密码如何解决?
- 海尔计算机类,海尔计算机类笔题
- CentOS7虚拟机断电,出现:“Entering emergency mode. Exit the shell to continue.”
- asp.net MVC:CheckBoxFor 绑定 nullablebool 类型
- Linux 命令 之 【stat】 查看文件状态。 (包括修改时间)
- LeetCode刷题系列(一)把回溯算法框架将给爷爷奶奶听
- 数据结构与算法之队列
- XP系统还原计算机用户名,详细教你xp系统还原操作方法
- flowable 配置自定义表单_SpringBootSecurity学习(03)网页版登录添加自定义登录页面...
- 开热点给电脑消耗大吗_电脑用手机热点上网耗流量多不多
- 制作中国范围地图的几点注意事项
- 破14亿,用Python分析我国存在哪些人口危机!
- linux 水印软件下载,水印美图滤镜相机
- win 10 右键新建offic失效问题
- 如何将图片中的表格变成Excel?这几个操作很简单
- JavaScript blog式日历控件
- 知物由学 | 如何从勒索软件的攻击中全身而退