大数据Hive安装与应用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 大数据Hive安装与应用

1 启动条件

Hive需要安装在成功部署的Hadoop平台上,并且要求Hadoop已经正常启动。所以,读者需要首先验证自己计算机上的Hadoop是否处于正常运行状态,方法是执行一个Hadoop命令,如“hdfs dfs -ls /”,看是否能正常显示HDFS上的目录列表;同时,通过浏览器查看系统状态,地址是“http://maser:9870”和“http://master:18088”(注意,Hadoop 3.0以前的老版本的查询地址是“http://master:50070”),查看结果应当与安装时的情况一致。如果满足上述两个条件,就说明Hadoop已经正常启动。


准备就绪后,就可以开始安装Hive了。我们打算将Hive安装在Master上,因此以下的操作均是在Master上进行的。同时,所有操作都使用csu用户,所以需要确保已经切换到csu用户。


2 部署安装

2.1 下载并解压Hive安装包

读者可以从http://archive.apache.org/dist/下载各种版本的Hive安装包,也可以直接在本书第6章软件资源中找到Hive安装包文件apache-hive-3.1.0-bin.tar.gz,这是2018年7月发布的版本。

9218cc5f42144275a45181190e44bfaf.png


请将该文件复制到Master的“/home/csu/resources”目录下(为了管理方便,我们建议读者把所有软件资源都放在一个目录下)。


首先将apache-hive-3.1.0-bin.tar.gz从“resources”目录下再复制至“/home/csu/”,接着进入“/home/csu/”子目录,并执行解压Hive安装包的命令。

25ec5d8c42e04af5929364f9d7015909.jpg


按下Enter键后会看到解压缩过程滚动显示的信息。执行完毕后可以查看一下安装情况。请切换到“apache-hive-3.1.0-bin”目录,执行命令“ls -l”,会看到如图6-16所示的内容,这些就是Hive系统文件和目录,说明解压缩成功。

b68c6a008fbc401c9c43c37dcf626cf4.jpg


2.2 配置Hive

创建hive-site.xml文件

实际上,在Hive安装目录下的配置目录“conf”中,系统给出了一些配置文件模板,如hive-default.xml.template等,但是Hive需要的配置文件是hive-site.xml,而它并不存在,所以需要用户自己创建(可以先将hive-default.xml.template改名为hive-site.xml,然后对其进行编辑,也可以完全重新创建,前者涉及比较复杂的配置修改,为简便起见,我们采用后者)。


40dd0f28579c4efaaa94bdf55295aed4.jpg


将下列代码添加到hive-site.xml文件中。

3ca505fd2cf74490894cf8a5a347e3f0.jpg

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
       <property> 
           <name>hive.metastore.local</name> 
           <value>true</value> 
       </property> 
       <property> 
           <name>javax.jdo.option.ConnectionURL</name>
           <value>jdbc:mysql://master:3306/hive_168?useSSL=false&amp;allowPublicKeyRetrieval= 
           true&amp;serverTimezone=GMT%2B8</value> 
       </property> 
       <property> 
           <name>javax.jdo.option.ConnectionDriverName</name> 
           <value>com.mysql.cj.jdbc.Driver</value> 
       </property> 
       <property> 
           <name>javax.jdo.option.ConnectionUserName</name> 
           <value>hadoopcsu</value> 
       </property> 
       <property> 
           <name>javax.jdo.option.ConnectionPassword</name> 
           <value>Hive_%CSUdjhuang168168</value> 
       </property> 
</configuration>

编辑完成,保存退出即可。通过“ls -l”命令可以看到“conf”目录增加了hive-site.xml文件。

2f8e7aad94c8467aa01d00cff18ad414.png



如果配置出现无法连接,请重新配置JDBC连接


我这里是mysql5.6的配置


<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hadoop</value>
    </property>
    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>

在上述代码中,“hive_168”正是我们前面在MySQL中创建的数据库,“hadoopcsu”是我们前面创建的MySQL新用户,而“Hive_%CSUdjhuang168168”则是在MySQL中创建hadoopcsu用户时所设置的密码。特别值得指出的是,我们在URL中采用的“useSSL=false& allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8”包含了多个参数,需要仔细分析。首先,多参数的分割,必须使用“&”分隔符,这是xml文件的要求,有些人简单采用“&”符号,结果遇到报错,给出的提示是没有找到命令,这时往往不知什么原因,甚为郁闷;第二,由于数据库是MySQL 8.0.11,因此要求显式地设置SSL(安全套接层),我们这里设置为“false”,即不使用SSL;第三,“allowPublicKeyRetrieval”设置为“true”,以保证公钥解析;第四,MySQL 8.0.11要求明确设置时区,这里设置为东八区,其中“%2B”是“+”的转义字符,所以是GMT+8(东八区,也就是中国首都北京所在的时区)。此外,MySQL 8.0.11的驱动器也由过去的“com.mysql.jdbc.Driver”换成了“com.mysql.cj.jdbc.Driver”。


复制java connector到依赖库

请读者将第6章软件资源中的mysql-connector-java-8.0.11.jar文件复制到自己计算机Master中的“/home/csu/resources”目录下,然后进入该目录,将其中的mysql-connector-java-8.0.11.jar文件复制到Hive的安装目录的依赖库目录“lib”下,即执行“cp mysql-connector-java-8.0.11.jar ~/apache-hive-3.1.0-bin/lib/”命令。

f1c87222d58249bd8cab05afdc0e5423.jpg

我们顺便说一下如何才能得到上述文件。其实,在安装MySQL 8.0.11时,mysql-connector-java-8.0.11.jar这个文件就由系统放在“tmp”目录下了,用户可以在Root用户权限下通过“find”命令(在Linux终端输入“find / -name mysql-connector-java-8.0.11.jar”即可)找到该文件(图中有两个地方找到了该文件,但是后者是需要我们复制的)。当然用户也可以从MySQL官网下载这个文件,但不一定能找到。


配置.bash_profile文件

我们知道,.bash_profile文件是一个用户(如csu)使用Linux的系统配置文件,所以自然也需要为Hive进行必要的配置,可执行“gedit /home/csu/.bash_profile”命令进行配置,如图6-20所示。


538334c81518496c957065af8744d184.jpg
export HIVE_HOME=/home/csu/apache-hive-3.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin

fd33da4dd66a474ca397bd8af75a0f39.jpg

2.3 启动并验证Hive

要启动Hive,必须保证Hadoop和MySQL已经启动。


在Hadoop和MySQL已经启动的条件下,进入Hive安装目录,执行“bin/hive”命令,如果出现Hive命令提示符“hive>”(Hive交互式命令行,即Hive Shell命令的提示符),则表明Hive安装和部署成功


51d0784fb5114eb9a65ac5f201707bad.jpg


注意事项:


在使用Hive时,有些用户可能会遇到不能启动Hive或者启动了Hive但不能执行命令的问题。例如,输入“bin/hive”命令并按下Enter键后,出现如下的报错信息:

FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache. hadoop.hive.ql.metadata. SessionHiveMetaStoreClient

或者启动后能够进入Hive交互式命令行,但是执行“show databases;”这样的命令时,给出如下异常信息:

FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache. hadoop.hive.ql.metadata. SessionHiveMetaStoreClient

从给出的信息来看,这些都是因为元数据库没有初始化而造成的。在Linux终端执行如下的命令即可解决该问题:

schematool -dbType mysql -initSchema


59f35d6ed86644b8a712457a46925b8b.png


2.4 Hive的基本应用

Hive的应用有两种模式,即命令行模式和交互模式。命令行模式使用如同“Hadoop fs -ls /”的方式,是在Linux提示符下进行的操作;交互模式则需要进入Hive Shell,注意,Hive Shell里的每条命令后都要用分号结束。


1.命令行模式


这里给出两个实例,详细用法可参考Hive的官方文档。


(1)创建表


hive -e 'create table testDB(id int, name string, age int);'


(2)查看已经创建的表


hive -e 'show tables;'

9706637d244e497293dbf73e1522e90e.png


2.交互式模式


进入Hive Shell,然后创建表,命令如图6-26所示。

create database test_db;

e972347c0c174df18569ea74c87f0576.png


show databases;

ba0feb9802bb496ea5cc8f4bf08296e1.png

退出Hive Shell命令是“exit;”或“quit;”。


从上述的实例可以发现,Hive的命令行模式与交互式模式在本质上是一致的,都是基于相同的计算引擎。


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
20天前
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
29 0
|
26天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
2月前
|
SQL JSON 关系型数据库
bigdata-22-Hive高阶应用
bigdata-22-Hive高阶应用
28 0
|
2月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
2月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
11天前
|
SQL HIVE
Hive的安装
Hive的安装
19 1
|
2月前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
2月前
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
155 0
|
7天前
|
SQL 分布式计算 大数据
[AIGC 大数据基础]hive浅谈
[AIGC 大数据基础]hive浅谈
|
20天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
66 1