热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于Hadoop集群的Hive安装配置(Derby数据库)

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据,提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据,提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行(具体的Hive架构大家自行搜索)。接下来主要讲下Hadoop集群下Hive的安装配置,并搭载Derby数据库(一款小巧的数据库,用于测试,不推荐开发使用,具体大家自行百度),进行一些基本的数据库操作,好了,让我们开始吧。

一、环境:同样的启用三个节点,分别是虚拟机slave01,slave02,slave03,基于之前已经搭建好的环境,包括JDK、Zookeeper、Hadoop二、Hive、Derby配置(自行解压)

这里推荐下载版本较低的Hive,本人经验教训告诉大家:高版本易出现问题,比如说我的Hadoop 2.7.6,下载Hive 2.2.0 安装配置后就出现了很多问题,体验极差,像 报错为:

Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

就属于版本过高导致的,所以,大家尽量下载低版本的。

(1)设置Hive、Derby环境变量

vim/etc/profile

添加HIVE_HOME、DERBY_HOME,如下:

JAVA_HOME=/usr/java/jdk1.8.0_161

JRE_HOME=/usr/java/jdk1.8.0_161/jre

SCALA_HOME=/usr/local/scala

HADOOP_HOME=/usr/local/hadoop

SPARK_HOME=/usr/local/spark

ZOOKEEPER_HOME=/usr/local/zookeeper

HBASE_HOME=/usr/local/hbase

KAFKA_HOME=/usr/local/kafka

HIVE_HOME=/usr/local/hive

DERBY_HOME=/usr/local/derby

PATH=PATH:JAVA_HOME/bin:JRE_HOME/bin:SCALA_HOME/bin:HADOOP_HOME/bin:HADOOP_HOME/sbin:SPARK_HOME/bin:SPARK_HOME/sbin:ZOOKEEPER_HOME/bin:HBASE_HOME/bin:KAFKA_HOME/bin:HIVE_HOME/bin:DERBY_HOME/binCLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:JRE_HOME/lib:DERBY_HOME/lib/derby.jar:DERBY_HOME/lib/derbyclient.jar:DERBY_HOME/lib/derbytools.jar:DERBY_HOME/lib/derbynet.jarexportJAVA_HOME JRE_HOME SCALA_HOME HADOOP_HOME SPARK_HOME ZOOKEEPER_HOME HBASE_HOME KAFKA_HOME HIVE_HOME DERBY_HOME PATH CLASSPATH

使文件生效,运行命令:

source/etc/profile

(2)修改Hive文件夹conf目录下配置文件 hive-env.sh 复制一份 hive-env.sh.template 重命名为 hive-env.sh:

cphive-env.sh.templatehive-env.sh

修改 hive-env.sh 内容:

exportHIVE_CONF_DIR=/usr/local/hive/confexportHADOOP_HOME=/usr/local/hadoop

(3)配置Hive的Metastore配置Metastore意味着,指定要Hive的数据库存储,同样,Hive/conf目录下,复制一份 hive-default.xml.template重命名为 hive-site.xml:

cphive-default.xml.templatehive-site.xml

修改 hive-site.xml 内容,由于里面原内容较多,可通过命令gedit以编辑器模式打开:

gedithive-site.xml

删除所有的配置,替换为:

javax.jdo.option.ConnectionURLjdbc:derby:;databaseName=metastore_db;create=truejavax.jdo.option.ConnectionDriverNameorg.apache.derby.jdbc.EmbeddedDriverhive.metastore.warehouse.dir/usr/local/hive/warehouse

其中,jdbc:derby:;databaseName=metastore_db;create=true 表示使用嵌入式的derby,create为true表示自动创建数据库,数据库名为metastore_db,另一种客服模式大家感兴趣的可以自己看下;org.apache.derby.jdbc.EmbeddedDriver 表示使用嵌入式的derby;warehouse文件夹手动创建。三、验证Hive运行Hive之前,需要创建/tmp文件夹在HDFS独立的Hive文件夹,并给这些新创建的文件夹写权限:

[hadoop@slave01 bin]$ hadoop fs -mkdir /tmp

[hadoop@slave01 bin]$ hadoop fs -chmod g+w /tmp

启动Hive前,先启动Hadoop集群,注意关闭防火墙,再然后启动Hive,首次启动可能会出现一个报错提示:

无法访问/usr/local/spark/lib/spark-assembly-*.jar: 没有那个文件或目录

虽然过了几秒后Hive仍然成功启动,但这个报错信息是怎么回事呢?原因:spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包。解决办法:进入hive安装路径下的bin目录下,编辑hive,如通过编辑器打开:gedit hive,找到下面的Shell脚本命令:

sparkAssemblyPath=ls${SPARK_HOME}/lib/spark-assembly-*.jar

修改为:

sparkAssemblyPath=ls${SPARK_HOME}/jars/*.jar

好了,让我们再次启动Hive,成功启动如下:

[hadoop@slave01 bin]$ hiveLogging initializedusingconfigurationinjar:file:/usr/local/hive/lib/hive-common-1.2.2.jar!/hive-log4j.propertieshive>

以上就是基于Hadoop集群Hive+derby的安装配置过程,当然对于数据库的选择比如mysql配置过程类似,大家自行参考资料。 要了解学习大数据的可以加群,群号: 834325294,群里有免费的学习资料和视频。希望可以帮助到大家哦。

转:https://juejin.im/post/5b67aa3d5188251aa91dd4e7



推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 深入解析Android GPS机制:第五部分 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
author-avatar
cocoC陳靜雯具_606
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有