Hive安装之后,安装Hive过程中,出现的一些问题,以及解决方法。
问题列表如下:
序号 | 问题 |
1 | 为何我配置的是MySQL存储hive元数据,但总是存储到它自带的Derby数据库里? |
2 | 为何我的Hive总是以Local模式启动,而不能将作业提交到Hadoop集群上? |
3 | 为何Hive在执行过程中,会报异常Container [pid=1436,containerID=container_1406649013279_0001_01_000005] is running beyond virtual memory limits. Current usage: 88.0 MB of 1 GB physical memory used; 4.6 GB of 2.1 GB virtual memory used. Killing container,该如何解决 ? |
暂时就上面几个问题,下面散仙将分析并给出解决方法?
第一个问题比较简单,如果你明明配置了MySQL存储元数据,但启动过程中,并没生效,多半是因为在Hive-env.sh里面的HIVE_CONF_DIR这个路径没有配置正确。
第二个问题,总是Local模式启动,而不能提交到8088的Web界面上,多半是hadoop的配置文件里缺少了mapreduce.framework.name=yarn的属性。
解决方法有2种,第一种更改hadoop的mapred-site.xml文件,并添加如下属性,配置完后,分发各个节点,并重启生效.
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
第二种方式比较简单,直接在Hive的shell里面使用SET命令,临时给mapreduce.framework.name赋值,但仅在本次会话有效:
执行命令:
SET mapreduce.framework.name=yarn;
执行完毕后可使用SET -v:命令查看变更情况。
下面来看下第三个异常,截图如下:
什么意思呢,要解决这个异常,得熟悉yarn自身的虚拟内存管理规则,在Yarn平台中,CPU,内存,磁盘都被抽象成资源来自使用,管理资源的角色主要有Yarn Resource Manager (RM) 负责总的资源调度,然后每个节点上有Nodemanager 来监听守护资源,在具体到每一个应用上是通过Application Master (AM) container来给Map或Reduce任务来分配资源,具体的属性如下:
(1)yarn.nodemanager.resource.memory-mb
可分配的物理内存总量,默认是8*1024MB。
(2)yarn.nodemanager.vmem-pmem-ratio
每单位的物理内存总量对应的虚拟内存量,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。
第二个属性,比率的控制影响着虚拟内存的使用,当yarn计算出来的虚拟内存,比在mapred-site.xml里的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb的2.1倍还要多时,就会发生上面截图中的异常,而默认的mapreduce.map.memory.mb或
mapreduce.reduce.memory.mb得初始大小为1024M,然后根据异常中的yarn自身根据运行环境推算出来的虚拟内存来做比较,发现比1024*2.1还要大,所以就会由NodeManage守护进程kill掉AM容器,从而导致整个MR作业运行失败,现在我们只需要调大这个比率即可,避免发生这种异常。具体调大多小,可根据具体情况来设置。
相关推荐
### Hive安装知识点详解 #### 一、Hive简介与安装目的 Hive 是基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行...
6. Hive安装完成后,需要创建元数据库。Hive默认使用derby数据库,但为了生产环境的稳定性和性能,建议使用MySQL。配置文件位于$HIVE_HOME/conf目录下,需要修改hive-site.xml来指定MySQL连接信息: ```xml ...
之后,就可以使用Hive的命令行工具(hive CLI)进行操作,比如创建表、加载数据、执行查询等。 在Hive中执行的每一条HQL语句,会经过Hive的编译器、优化器等组件进行处理,然后Hive将这些SQL语句转换成MapReduce...
由于 Hive 2.0 之后默认使用 JLine 2,而 Hadoop 2.6.4 默认自带的是 JLine 0.9.94,因此需要替换 JLine 版本。将 JLine 2.12.jar 复制到 Hive 的 lib 目录中: ```bash cp /home/hadoop/app/hadoop-2.6.4/share/...
配置完环境变量之后,我们还需要对Hive进行更细致的配置,这通常涉及到修改Hive安装目录下的配置文件。在这个示例中,我们需要进入到Hive的配置目录,然后复制一个模板文件hive-env.sh.template来创建一个新的环境...
- **安装 hook rpm 包**:在 HiveServer 所在节点执行 `yum install -y tbds-hive-hook`。 3. **更新 tbds 集成代码** - **备份现有代码**:在进行任何更改之前,请先备份 `/var/lib/tbds-server/resources/...
在完成了 Hadoop 的安装配置之后,接下来可以安装 Hive,以便于进行更高级的数据查询和管理操作。 1. **下载并解压 Hive 安装包**:将 Hive 的安装包解压到合适的目录,如 `/home/hadoop/hive-1.2.1`。 2. **配置...
Hive的原理是指定HQL之后,Hive如何将HQL转换为MapReduce任务,再由Hadoop执行。 总的来说,Hive作为一个数据仓库工具,其学习和使用对于处理大数据集和进行大数据分析具有重要的意义。初学者可以从Hive的安装配置...
通过上述步骤,可以成功安装Hive,并且将其配置为使用MySQL作为元数据库,之后就可以开始使用Hive进行数据查询和分析了。需要注意的是,Hive对于MySQL的支持在内部实现良好,使得用户可以专注于数据处理而不是底层...
要使用HWI,需要安装Ant并配置其环境变量,然后通过命令`hive --service hwi`启动服务,之后可通过浏览器访问`localhost:9999/hwi`。使用过程中可能遇到的问题包括无法找到Java编译器等,解决这些问题通常需要复制...
之后,为了保证Hive能够通过MySQL用户root访问数据库,需要授予相应的权限。 最后,如果在Hive使用过程中遇到中文乱码问题,可能需要对Hive使用的MySQL元数据库进行编码设置,包括修改表字段编码和表注释编码。可以...
官方文档作为学习和使用Hive的权威指南,提供了安装配置、使用方法、命令行选项、脚本编写、配置变量等多方面的信息。以下是文档中提及的一些关键知识点: 1. Hive命令行界面(CLI):Hive命令行界面是Hive的用户...
要使用DBeaver连接到Hive 2.1.1,你需要确保安装了所有必要的JAR文件,这些文件提供了与Hive服务器通信的驱动程序和库。 Hive 2.1.1的连接依赖于以下关键组件: 1. **Hive JDBC驱动**:这是Java Database ...
确保你已经安装了Apache Spark和Hive,并且它们的版本兼容。在配置Spark时,需要在`spark-defaults.conf`文件中指定Hive的相关路径,如Hive Metastore URI、Hive配置目录等。例如: ``` spark.sql.warehouse.dir=...
在Hive 2.x版本之后,Tez成为默认的执行引擎,替代了早期的MapReduce。Tez的并行处理能力和低延迟特性使得Hive能够更高效地处理大数据查询,特别是对于复杂的查询和交互式分析,Tez的优势更为明显。 在实际部署中,...
Hive 的安装部署需要依赖 Hadoop 集群,需要安装 Hadoop 之后才能安装 Hive。Hive 的安装过程包括下载、解压、配置、启动等步骤。 Hive 开发使用 ----------------- Hive 的开发使用需要了解 Hive 的基本概念和...
首先,确保在添加Hive数据库前,系统中不存在先前安装的MySQL版本。使用命令rpm -qa | grep mysql查询已安装的MySQL包,然后使用rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64移除它。 接下来,利用yum工具安装...
hive被大多数企业使用,学习它,利于自己掌握企业所使用的技术,这里从安装使用到概念、原理及如何使用遇到的问题,来讲解hive,希望对大家有所帮助。 此篇内容较多: 看完之后需要达到的目标 1.hive是什么 2.明白...
- 版本选择:本例中选择了Hive 1.2.2版本,该版本支持MapReduce作业,而2.0之后的版本仅支持Spark作业。 ##### 错误处理 - **JLine版本冲突**:如果使用的是Hadoop 2.6.x版本,可能会遇到JLine的版本冲突问题。解决...