大数据平台搭建之hive本地模式安装

1、什么是hive?

        Hive 是一个开源的数据仓库基础设施,用于查询和分析大规模数据集。它建立在 Hadoop 上,并提供了类似于传统数据库的查询和分析功能。

        Hive 使用 HiveQL(类似于 SQL)作为查询语言,允许用户通过类 SQL 的语法编写查询语句,这些查询语句会被转换为 MapReduce 任务在 Hadoop 集群上执行。

        Hive 的主要优势之一是它的可扩展性和容错性。它能够处理各种类型和格式的数据,并且能够在成百上千台机器上并行处理数据。此外,Hive 还提供了数据分区、分桶、索引等功能,以提高查询性能。

        Hive 在大数据领域得到广泛应用,特别是在数据仓库、数据分析和业务智能方面。它可以帮助用户快速查询和分析大量的结构化和半结构化数据,从而提取有价值的信息和洞察力。

2、hive有什么优缺点?

优点:

  1. 易于使用:Hive 的查询语言 HiveQL 类似于传统的 SQL,使得用户能够使用熟悉的语法编写和执行查询语句,降低了学习成本。
  2. 可扩展性:Hive 能够处理大规模的数据集,并且可以在分布式环境下进行并行计算,从而实现水平扩展。
  3. 容错性:Hive 建立在 Hadoop 上,具备高可靠性和容错性,能够应对节点故障和数据丢失等问题。
  4. 多格式支持:Hive 能够处理各种类型和格式的数据,包括结构化数据和半结构化数据,以及不同的文件格式。

缺点:

  1. 延迟较高:由于 Hive 使用 MapReduce 进行计算,而 MapReduce 是批处理模型,所以对于实时需求和低延迟应用来说,Hive 的查询响应时间相对较长。
  2. 存储冗余:Hive 在执行查询时会生成中间结果,并将这些结果存储在磁盘上,这可能导致存储冗余和额外的 I/O 开销。
  3. 复杂的数据模型:Hive 采用类似于传统数据库的数据模型,但它并不是一个完整的数据库系统,因此对于复杂的数据模型和事务处理等场景可能无法满足需求。
  4. 不适合小规模数据:由于 Hive 的设计初衷是处理大规模数据集,所以在处理小规模数据时,Hive 的开销相对较高,不如传统数据库效率高。

3、hive的架构

  1. 用户接口(User Interface):Hive 提供了多种用户接口,包括命令行界面(CLI)、Web UI、ODBC/JDBC 接口等,使用户能够与 Hive 进行交互。

  2. 驱动器(Driver):驱动器负责解析和编译用户提交的 HiveQL 查询,并将其转换为适当的执行计划。驱动器还负责与底层执行引擎(如 MapReduce 或 Tez)进行交互,执行查询并返回结果。

  3. 元数据(Metadata):元数据存储了与 Hive 相关的结构信息,包括数据库、表、分区、列等定义。Hive 的元数据通常存储在关系型数据库中,比如 MySQL 或 Derby。

  4. 编译器(Compiler):编译器接收驱动器生成的执行计划,并将其转换为适当的 MapReduce 任务或 Tez DAG(有向无环图)。编译器还负责生成操作符树,以便在计划执行过程中进行优化。

  5. 执行引擎(Execution Engine):执行引擎负责实际执行编译后的任务或 DAG,并将结果返回给用户。Hive 可以使用多种底层执行引擎,最常用的是基于 Hadoop MapReduce 的执行引擎,也可以使用 Tez、Spark、Flink 等。

  6. 存储(Storage):Hive 支持多种数据存储格式,包括文本文件、序列文件、ORC(Optimized Row Columnar)文件和 Parquet 文件等。这些文件通常存储在分布式文件系统(如 HDFS)上。

  7. 扩展库(Extensions):Hive 提供了一些扩展库,使用户能够自定义和扩展 Hive 的功能,如添加自定义函数、自定义存储处理器等。

4、hive和mysql数据库的区别?

  1. 应用场景:Hive 适合于数据仓库和大规模数据处理领域,而 MySQL 更适合作为传统关系型数据库进行事务处理。

  2. 数据规模:Hive 处理大规模数据,可以处理 PB 级别的数据,而 MySQL 主要用于中小规模数据存储和处理。

  3. 查询语言:Hive 使用 HiveQL,类似 SQL,支持更多复杂的数据分析和处理操作,而 MySQL 使用原生 SQL,语法相对简单。

  4. 存储格式:Hive 支持多种数据存储格式,如文本文件、ORC 和 Parquet,而 MySQL 通常使用关系型数据库存储机制。

  5. 扩展性:Hive 支持水平扩展,可以通过添加节点来实现更高性能和更大存储容量,而 MySQL 更多是通过垂直扩展来提升性能

5、hive本地模式的安装嵌入式的模式(元数据在Derby数据库中,通常用于开发测试时使用)

1) 解压

tar -xf apache-hive-3.1.2-bin.tar.gz -C /opt

2) 改名字

mv /opt/apache-hive-3.1.2-bin /opt/hive

3)环境变量 /etc/profile

          
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin

4) 刷新一下

source /etc/profile
hive --version

5) 配置各种配置文件

hive-env.sh 系统是没有这个文件的, 使用hive-env.sh.template进行拷贝

cp hive-env.sh.template hive-env.sh
chmod 777 hive-env.sh

修改这个文件内容:

export HIVE_CONF_DIR=/opt/hive/conf
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export HIVE_AUX_JARS_PATH=/opt/hive/lib

配置hive-site.xml

 cp hive-default.xml.template hive-site.xml

1、从hive-default.xml.template 拷贝一份过来
删除3215行的特殊字符  

6) 检查 hdfs以及yarn是否启动,如果没有启动,手动启一下。

7)修改dir

在这个文件hive-site.xml中替换两个重要的东西

把hive-site.xml 中所有包含 ${system:Java.io.tmpdir}替换成/opt/hive/iotmp

如果系统默认没有指定系统用户名,那么要把配置${system:user.name}替换成当前用户名root

创建这个配置文件中没有的路径,并且赋权限。

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -chmod 777 /user/hive/warehouse
hdfs dfs -chmod 777 /tmp/hive

8) 创建本地的临时目录 io.tmpdir

在hive 安装路径下  hive_home 下,创建文件夹
mkdir /opt/hive/iotmp
chmod 777 iotmp

9)初始化hive

在hive 的家路径下,执行该命令

schematool -initSchema -dbType derby

10) 简单的操作

show databases;
show talbes; 
create table stu(id int,name string);
insert into stu values(1,"zhangsan");
select * from stu;
退出使用quit;

以上就是我们的Derby模式,Derby 作为一种轻量级的嵌入式数据库具有一些优点,但它也存在一些性能、扩展性、高可用性和生态系统支持方面的缺点.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值