Hive安装配置启动的时候出现的问题以及解决办法

本文详细介绍了在启动Hadoop Hive时遇到的IncompatibleClassChangeError错误,通过添加环境变量HADOOP_USER_CLASSPATH_FIRST设置为true来解决此问题。文章提供了具体的步骤,包括编辑.bashrc文件和重新加载配置。
[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)
	at jline.TerminalFactory.get(TerminalFactory.java:158)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
	at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)
	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)
	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
	at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)
	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)
	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

当出现这个问题的时候只需要添加一个环境变量就可以解决了。

export HADOOP_USER_CLASSPATH_FIRST=true

具体实现步骤:

$ vi ~/.bashrc

打开bashrc之后,将 export HADOOP_USER_CLASSPATH_FIRST=true 添加进去

$ source .bashrc
$ hive

就可以完美解决了。

### 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`。 - **原因**:Hadoop 和 Hive 中的 `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`。 - **原因**:Hadoop 和 Hive 中的 `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
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值