虚拟机安装单机hive以及简单使用hive
hive是我打算了解的有一个大数据方面的一个技术栈,上一篇文章介绍了Hadoop和hbase,有兴趣的朋友可以点击“文章”浏览,今天要介绍的hive也是要基于hadoop的,安装hive也要提前安装好hadoop。
刚了解这块的朋友肯定就会疑问这三者之间的关系是什么呢,从我这段时间对它们的简单了解,我的理解是,hadoop是根本,它通过分布式存储,分布式计算的方式从而提供了存储,处理大数据量的能力。
而hive基于hadoop可以将hadoop(存放在hadoop中的HDFS上)的数据可以结构化为我们经常见到的关系型数据库那样的一张张表的形式,而且通过类sql,这里叫hive sql的sql语句可以帮助我们处理数据,不用我们去写mapreduce,简化了我们对hadoop的操作。
但是hive的问题应该是它处理数据的速度是比较慢的(这里的慢比较的是hbase处理数据的速度),那么有些业务需要实时,快速的查询,或者要处理数据的时候,hive显然不符合,这时候就可以通过hbase来处理,hbase将数据(这里的数据其实也是hadoop里HDFS上的,通过hive处理同步给habse)转换成key-value的形式,hbase是一种nosql的形式,不过它也是可以通过hbase支持的sql来查询的,而且有相关的java API支持这些操作。至于hbase的查询速度为什么这么快,博主也还没有具体了解过,后面如果有需要会专门写一篇博客来分析。
上面是我对这三者的一些理解。废话少说,进入今天的正题
安装hive
安装hive之前先要在你的虚拟机上安装hadoop和mysql,上一篇文件博主已经安装了hadoop,所以这次只需要安装一下mysql即可
安装mysql
mysql安装可以去官网下载对应的安装包,然后传到虚拟机上,自己手动去安装,我这次主要不是要介绍这个,所以直接使用yum命令安装
执行下面的命令:
等待安装完成之后执行:
通过这种方式安装最开始root是没有密码的,直接回车就可以登录mysql了
然后执行下面的命令给root用户添加上密码:
然后退出重新登录mysql输入上面设置的密码就ok了
hive的安装
下载hive安装包
hive 安装包官网下载地址(官网,下载速度慢):
https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
hive 安装包国内镜像下载链接(清华大学开源软件镜像站,下载速度快):
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 还是推荐使用国内镜像源,直接通过wget下载,解压
配置hive-site.xml
在hive的安装目录conf下创建hive-site.xml文件
vi hive-site.xml
然后将下面的内容添加上:
配置hive-env.sh
将hive安装目录conf下的hive-env.sh.template 复制一份改名为 hive-env.sh
vi hive-env.sh
将下面的内容加上:
上传mysql JDBC jar包
Maven 中央仓库下载地址:
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar
将该jar包上传到hive的安装目录lib下,也可以在lib/文件夹下通过wget直接下载
设置环境变量
初始化元数据库
启动hive
启动hive之前保证hadoop和mysql已经启动了
hive启动有三种方式(博主还没有深入了解)
这里采用第一种启动方式,编写启动脚本,start-hive.sh
将下面内容添加上
然后:
放行端口,web客户端
然后浏览器上访问:ip:8042
yarn-site.xml 添加 Hadoop 的类路径
查看 Hadoop 的类路径
hadoop classpath
编辑 Hadoop 的 yarn-site.xml 文件
vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/yarn-site.xml
添加以下配置项:
重启 Hadoop
hive的简单使用
使用hive自带的客户端工具beeline来连接hive
这里就可以使用hive sql来操作了
下面创建一个表,并加载数据
建表语句:
CREATE TABLE t_gdp(f_year VARCHAR(100),f_province VARCHAR(100),f_city VARCHAR(100),f_county VARCHAR(100),f_gdp DOUBLE) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘|’ LINES TERMINATED BY ‘\n’ STORED AS TEXTFILE;
在虚拟机上创建本地文件t_gdp_text.txt
vi t_gdp_text.txt
将下面的内容加上:
将文件中的数据加载到hive表中
连接hive客户端之后,在里面执行,local代表加载本地文件,也可以加载hdfs上的文件,去掉local即可
可以看到数据已经加载到hive中,同时在hdfs中同样存在了这份数据,通过下面的命令可以看到,/user/hive/warehouse/internal这是配置文件中内部表的目录,同样也有一个外部表的配置
除了通过hive自带的客户端beeline来连接,也可以通过DBeaver 来连接,我就不讲了,感兴趣可以百度一下,应该有很多教程。
这就是今天介绍hive的全部内容了,大数据相关的技术栈接下来要去了解一下spark,关注后续博客
参考文章:
https://www.hanshuixin.com/app/blog/detail/8492101201849a641d4b2c9380920000
“是不是一定要有所失,才能有所悟!”