数据仓库Hive的安装和使用
发布日期:2021-06-22 22:48:20
浏览次数:2
分类:技术文章
本文共 4453 字,大约阅读时间需要 14 分钟。
文章目录
平台:阿里云轻量级应用服务器
Hadoop:3.2.2
Hive:3.1.2
一、Hive的安装
(一)下载安装文件
- Hive官网链接
- hive-3.1.2的链接
- 下载
sudo wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
- 解压及相应设置
sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local # 解压到/usr/local中cd /usr/local/sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hivesudo chown -R hadoop:hadoop hive # 修改文件权限
(二)配置环境变量
- 进入环境变量设置文件
sudo nano ~/.bashrc
- 添加变量的内容
export HIVE_HOME=/usr/local/hiveexport PATH=$PATH:$HIVE_HOME/bin
- 使文件生效
source ~/.bashrc
(三)修改配置文件
- 修改配置文件名称
cd /usr/local/hive/confsudo mv hive-default.xml.template hive-default.xml
- 新建一个配置文件
cd /usr/local/hive/confsudo nano hive-site.xml
文件内容javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName hive username to use against metastore database javax.jdo.option.ConnectionPassword hive password to use against metastore database hive.metastore.warehouse.dir /hive/warehouse hive default warehouse, if nessecory, change it
(四)安装并配置MySQL
- 安装MySQL
sudo apt-get updatesudo apt-get install mysql-server
- 下载MySQL JDBC驱动程序 下载链接: 解压并进行相关设置
cd ~tar -zxvf mysql-connector-java-8.0.17.tar.gz #解压#下面将mysql-connector-java-8.0.17.jar拷贝到/usr/local/hive/lib目录下cp mysql-connector-java-8.0.17/mysql-connector-java-8.0.17.jar /usr/local/hive/lib
- 启动MySQL
service mysql start #启动MySQL服务mysql -u root -p #登录MySQL数据库
遇到输入密码的时候,直接回车 - 在MySQL中为Hive新建数据库 新建一个名称为hive的数据库,用来保存Hive的元数据。
mysql> create database hive;
- 配置MySQL允许Hive接入 MySQL进行权限配置,允许Hive连接到MySQL
mysql> grant all on *.* to hive@localhost identified by 'hive'; mysql> flush privileges;
- 初始化元数据库
schematool -dbType mysql -initSchema
出现到如下问题org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
解决方法: 打开/usr/local/hive/conf/hive-site.xml,在hive配置文件hive-site.xml中加上serverTimezone=GMT - 启动Hive 启动Hive之前,需要先启动Hadoop集群
cd /usr/local/hadoop./sbin/start-dfs.shcd /usr/local/hive./bin/hive
出现下面错误Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgumen
解决方法 hadoop和hive的jar包冲突cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/librm /usr/local/hive/lib/guava-19.0.jar
二、Hive的数据类型
- Hive的基本数据类型
- Hive的集合数据类型
三、Hive基本操作
- 创建数据库、表、视图
保存的位置为/user/hive/warehouse/,根据上面是否添加可选的配置
①创建数据库create database hive;#避免因为数据库已存在,而出现抛异常,加上if not exists关键字,则不会抛出异常create database if not exists hive;
②创建表#通常创建表hive> use hive;hive>create table if not exists usr(id bigint,name string,age int);#创建可以读取以“,”分隔的数据create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
- 删除数据库、表、视图 ①删除数据库
drop database hive;#删除数据库hive,因为有if exists关键字,即使不存在也不会抛出异常drop database if not exists hive;#加上cascade关键字,可以删除当前数据库和该数据库中的表drop database if not exists hive cascade;
②删除表#删除表usr,如果是内部表,元数据和实际数据都会被删除;如果是外部表,只删除元数据,不删除实际数据drop table if exists usr;
③删除视图drop view if exists little_usr;
- 往表中加载数据
load data local inpath "/home/hadoop/student.txt" into table student;
- 查询数据
select * from student;
- 查看表结构
desc student;
四、Hive应用实例——WordCount
实例描述:需要创建一个需要分析的输入数据文件,然后编写HiveQL语句实现WordCount算法
-
创建input目录,其中input为输入目录
cd /usr/local/hadoopmkdir input
-
创建两个测试文件file1.txt和file2.txt
cd /usr/local/hadoop/inputecho "hello world" > file1.txtecho "hello hadoop" > file2.txt
-
编写HiveQL语句实现WordCount算法
./hive/bin/hivehive> create table docs(line string);hive> load data inpath "hdfs://localhost:9000/input" overwrite into table docs;hive>create table word_count as select word, count(1) as count from (select explode(split(line,' '))as word from docs) w group by word order by word;
select语句查看运行结果
select * from word_count;
小结 Hive是一个构建于Hadoop顶层的数据仓库工具,主要用于对存储在 Hadoop 文件中的数据集进行数据整理、特殊查询和分析处理。Hive在某种程度上可以看作是用户编程接口,本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据。
五、参考资料
转载地址:https://blog.csdn.net/qq_43279579/article/details/116332181 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年03月08日 20时27分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
二重积分转换成极坐标_二重积分转换极坐标r的范围如何确定?
2019-04-21
python中倒背如流_八字基础知识--倒背如流篇
2019-04-21
以太坊地址和公钥_以太坊地址是什么
2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题
2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置
2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析
2019-04-21
hibernate mysql 缓存_hibernate和mysql的缓存问题,没辙了!
2019-04-21
abp框架 mysql_ABP框架使用Mysql数据库
2019-04-21
mysql树形递归删除_使用递归删除树形结构的所有子节点(java和mysql实现)
2019-04-21
linux mysql 不能连接远程_linux mysql 远程连接
2019-04-21
install python_Install python on AIX 7
2019-04-21
jquery查找div下第一个input_jquery查找div元素第一个元素id
2019-04-21
如何修改手机屏幕显示的长宽比例_屏幕分辨率 尺寸 比例 长宽 如何计算
2019-04-21
mysql 的版本 命名规则_MySQL版本和命名规则
2019-04-21
no java stack_Java Stack contains()用法及代码示例
2019-04-21
java动态代码_Java Agent入门学习之动态修改代码
2021-06-24
python集合如何去除重复数据_Python 迭代删除重复项,集合删除重复项
2021-06-24