安装hive时jline版本不一致问题

本文描述了在运行Hive脚本时遇到的jline版本冲突错误,并详细解释了错误原因及解决方案。解决步骤包括删除Hadoop中不一致的jline包,并替换为Hive自带的版本。

1. 问题描述

将hive包解压后,运行bin目录下的hive脚本,报以下错误:
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
	at jline.TerminalFactory.create(TerminalFactory.java:101)

2. 错误的原因

Hadoop jline版本和hive的jline不一致

3. 解决方法

删除your_install_path/hadoop/share/hadoop/yarn/lib目录下的jline包,然后把hive里面的jline包拷过来。

### Hive 安装、配置及进程启动常见问题及解决方法 Hive 是一个基于 Hadoop 的数据仓库工具,用于处理大规模结构化数据。在安装、配置和启动 Hive 进程的过程中,可能会遇到各种问题。以下是常见的问题及其解决方案。 #### 1. 初始化 Hive 失败 问题描述:执行初始化命令出现 `failed` 提示。 - **原因**:可能是由于 MySQL 数据库权限足或 Hive 元数据表未正确创建。 - **解决方案**:确保 MySQL 用户具有足够的权限。例如,可以使用以下 SQL 命令为 `root` 用户授予权限[^2]: ```sql grant all privileges on *.* to root@"localhost" identified by "123456" with grant option; ``` #### 2. 终端初始化失败 问题描述:错误信息 `[ERROR] Terminal initialization failed; falling back to unsupported`。 - **原因**:HadoopHive 中的 `jline` 包版本匹配。 - **解决方案**:将 Hadoop 的 `share/hadoop/yarn/lib` 路径下的 `jline` 包替换为与 Hive 匹配的高版本 jar 包,并删除原有的 `jline` 包[^3]。 #### 3. 配置文件路径非法字符 问题描述:错误信息 `java.net.URISyntaxException: Illegal character in scheme name at index 0: file:///usr/local/hive-0.13.0/lib/hive-hbase-handler-0.13.0.jar`。 - **原因**:`hive-site.xml` 配置文件中的 `hive.aux.jars.path` 路径格式正确。 - **解决方案**:修改 `hive-site.xml` 文件,将 `hive.aux.jars.path` 配置改为 `file:///` 格式,避免换行符或空格。多个路径用逗号分隔[^3]。 #### 4. 类版本冲突 问题描述:错误提示 `java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected`。 - **原因**:HadoopHive 中的 `jline` 包版本一致。 - **解决方案**:将 Hive 的 `lib` 目录下的高版本 `jline` jar 包复制到 Hadoop 的 `share/hadoop/yarn/lib` 目录下。 #### 5. Java 环境变量配置错误 问题描述:Java 编译环境未正确配置,导致 Hive 启动失败。 - **原因**:`CLASSPATH` 环境变量未正确设置。 - **解决方案**:确保 `CLASSPATH` 环境变量包含必要的 Java 库路径。例如,在 `.bashrc` 文件中添加以下内容[^4]: ```bash export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar ``` #### 6. Hive 无法连接到 Hadoop 问题描述:Hive 启动后无法访问 HDFS 或 YARN。 - **原因**:Hadoop 集群未正确启动或 Hive 配置文件未正确指向 Hadoop。 - **解决方案**:检查 Hadoop 集群状态,并确保 `hive-site.xml` 文件中的 `fs.defaultFS` 和 `yarn.resourcemanager.address` 配置正确。 --- ### 示例代码:配置 `hive-site.xml` 以下是一个典型的 `hive-site.xml` 配置示例: ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</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>123456</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration> ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值