logo资料库

Hive操作笔记(呕心沥血制作).docx

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
一、Hive介绍
1.Hive概念
2.结构图
二、Hive安装
1.安装Hive
2.错误处理
3.启动Hive
4.服务端、客户端
三、mysql存储元数据
1.mysq安装
2.myql元数据配置
四、Hive的DDL语法
1.数据库
2.内部表
3.外部表
4.内部表与外部表对比
5.修改表
6.表分区
7.其他
五、Hive的DML语法
1.Import数据
2.Export数据
3.Insert操作
4.select操作
六、Hive存储格式
1.自定义存储格式
2.固定存储格式
七、案例分析
1.复杂数据解析
2.SQL级联求和
一、 Hive 介绍 1. Hive 概念 Hive 是基于 Hadoop 的一种数据仓库工具,可以将结构化的数据文件映射为一张数据 库表,并提供类 SQL 的查询操作。Hive 的安装可以在集群中任何一台机器,本例子放在 hdp-nn-01 上机器上,我们选用 1.2.2 支持 MR,2.0 以后不再支持 MR job,只是支持 Spark job 的。 2. 结构图 二、 Hive 安装 1. 安装 Hive 1) 安装包上传
2) 安装包解压 tar -zxvf apache-hive-1.2.2-bin.tar.gz rm -rf apache-hive-1.2.2-bin.tar.gz mv apache-hive-1.2.2-bin hive-1.2.2 3) 使用前提 使用 Hive,前提上本机器上必须有 Hadoop 的安装目录,因为 hive 要依赖 hadoop,需 要启动 mr 程序。 2. 错误处理 1) Jline 错误(2.6.x 版本) 解决办法:hive 的 lib 下的 jline-2.12.jar 版本比 Hadoop 下 jline-0.9.94.jar 版本高,删除 hadoop 下的 jline 对应 jar 包,拷贝 hive 下的到 hadoop 下即可。 2) Metastore 错误(metastore_db)
解决办法:进入到 metastore_db,执行 rm -rf *.lck 3) Myql 的 hive 库错误 解决办法, a) 设置 hive 服务器 tmp 权限 hadoop dfs -chmod -R 777 /tmp b) 进入 msql mysql>drop database hive; mysql>create database hive; mysql>alter database hive character set latin1; 4) 内存分配错误 解决办法,在 yarn-site.xml 配置中,把 mr 所需资源根据机器配置下,例如请求中需要的 资源内存 1536,而只给了 1024 就报错了,改如下: yarn.scheduler.maximum-allocation-mb 2000 yarn.nodemanager.resource.memory-mb 2000
3. 启动 Hive 1) 启动 Hadoop 集群 start-all.sh 2) 启动 hive(配置了 hive 的环境变量) hive 3) 查看 yarn 节点 yarn node –list 4. 服务端、客户端 1) 服务端(10000 端口) 启动服务:hive --service hiveserver2 & 关闭服务:查询进程:ps -aux| grep hiveserver2 杀死进程:kill -9 20670 监听服务端:netstat –nltp 2) 客户端(安装了 hive 的机器 master-01:10000) 启动:beeline beeline>!connect jdbc:hive2://master-01:10000 用户名:root 密码:空
三、 mysql 存储元数据 1. mysq 安装 1) 上传安装包 http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 2) 安装(保证虚拟机能上网) # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server 3) 重启 mysql # service mysqld restart 4) 设置 root 帐号和密码 mysql -uroot(第一次进入,没有密码) mysql> set password for 'root'@'localhost'=password('root');
5) 退出 exit 6) 重新登录 mysql -u root -proot 7) 远程 mysql 服务器  mysql> grant all privileges on *.* to root@'master-01' identified by 'root'; 给来自 master-01 的用户 root 分配可对所有数据库的所有表进行所有操作的权限, 并设定口令为 root。  mysql> grant all privileges on *.* to root@localhost identified by 'root'; 给本机用户 root 分配对所有表所有操作的权限,并设定口令为 root。 2. myql 元数据配置 1) hive 的 conf 中新建 hive-site.xml vim hive-site.xml javax.jdo.option.ConnectionURL jdbc:mysql://slave-01:3306/hive?createDatabaseIfNotExist=true javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword root 2) Jar 包引入
Hive 的 lib 下拷贝 mysql-connector-java-5.1.7-bin.jar 3) 再次启动 Hive:可以看见 myql 中具备 hive 的数据库 四、 Hive 的 DDL 语法 客户端连接工具要设置 Linux 的键盘操作 1. 数据库 1) 查看数据库 show databases; 2) 创建数据库 create database db_1; 3) 删除空数据库
drop database if EXISTS db_1; 4) 删除带数据表的数据库 DROP DATABASE IF EXISTS db_1 CASCADE; 5) 使用数据库 use db_1; 2. 内部表 1) 查看数据表 show tables; 2) 创建默认表 create table t_1 (id int,name string,add string) >row format delimited >fields terminated by ','; 3) 创建 db_1 中表: use db_1; create table t_2 (id int,price double) >row format delimited >fields terminated by ' '; 4) 删除表 DROP TABLE IF EXISTS t_1; 5) 默认路径 默认表路径:/user/hive/warehouse 3. 外部表 create external table t_3 (id int,name string,add string)
分享到:
收藏