- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 VMware Fusion 在 macOS 上的 CentOS6.8 上构建 spark 环境。
我之前安装过jdk-10.0.1、hadoop-2.4.1.tar.gz和MySQL。他们工作成功。
但是,当我尝试格式化 matadata 存储库时,
schematool -dbType mysql -initSchema
发生以下错误:
which: no hbase in (/opt/hive/bin:/usr/local/hive/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/latest/bin:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/usr/local/hive/bin:/root/bin:/usr/java/latest/bin:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/opt/hive/bin)
^HMetastore connection URL: jdbc:mysql://hbase01:3306/myhive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: myhive
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver
Use --verbose for detailed stacktrace.
*** schemaTool failed ***
我忽略了输入“$HIVE_HOME/bin/hive”,出现如下错误:
which: no hbase in (/opt/hive/bin:/usr/local/hive/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/latest/bin:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/usr/local/hive/bin:/root/bin:/usr/java/latest/bin:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/opt/hive/bin)
Exception in thread "main" java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader
at org.apache.hadoop.hive.ql.session.SessionState.<init>(SessionState.java:387)
at org.apache.hadoop.hive.ql.session.SessionState.<init>(SessionState.java:363)
at org.apache.hadoop.hive.cli.CliSessionState.<init>(CliSessionState.java:60)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:663)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
我确定我已经将 mysql-connector-java 放入 hive 的 lib 文件夹中。但是还是有问题。
感谢任何帮助。非常感谢!
最佳答案
根本原因:
java.lang.ClassNotFoundException : com.mysql.jdbc.Driver
上面的错误说明你的mysql.jdbc.driver jar is missing.
下载 mysql JDBC 连接器以从 Metastore 服务访问 MySQL 数据库。
将连接器 jar 放入 $HIVE_HOME/lib 目录,使其在类路径中可用。
wget http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-commercial-5.1.7-bin.jar.zip
unzip mysql-connector-java-commercial-5.1.7-bin.jar.zip cp
mysql-connector-java-commercial-5.1.7-bin.jar $HIVE_HOME/lib/
sudo mysql
Create database hive DEFAULT CHARACTER SET utf8; mysql> grant allPRIVILEGES on . TO 'hive'@'localhost' IDENTIFIED BY'password_for_hive' WITH GRANT OPTION;
在上面的命令中,您可以使用 Metastore 服务器的 IP 地址或主机名代替 localhost。
配置 Hive 以与 MySQL 一起工作gedit $HIVE_HOME/conf/hive-site.xml
将以下配置添加到行尾。
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive</value>
<description>JDBC connection string used by Hive Metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>JDBC Driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>Metastore database user name</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password_hive</value>
<description>Metastore database password</description>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9084</value>
<description>Thrift server hostname and port</description>
</property>
保存文件并关闭
在上述配置中,您可以使用相关的 IP 地址或主机名代替 localhost。
修改hive-site.xml的属性值
hive.exec.scratchdir /home/path/to/apache-hive-2.3.2-bin/iotmp Hive 作业的 HDFS root scratch dir,它是使用 write all (733) 权限创建的。对于每个连接用户,一个 HDFS 临时目录:${hive.exec.scratchdir}/<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/path/to/apache-hive-2.3.2-bin/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
编辑 hive-env.sh 文件并添加以下内容
export METASTORE_PORT=9084
启动 Hive Metastore 服务器
初始化 Hive Metastore 数据库模式:
HIVE_HOME/bin/schematool -initSchema -dbType $databaseType $ hive--service metastore &
hive
关于mysql - 根本原因 : java. lang.ClassNotFoundException : com. mysql.jdbc.Driver 使用 --verbose 获取详细的堆栈跟踪信息。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500718/
我需要您在以下方面提供帮助。近一个月来,我一直在阅读有关任务和异步的内容。 我想尝试在一个简单的 wep api 项目中实现我新获得的知识。我有以下方法,并且它们都按预期工作: public Htt
我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用
我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 Javascript 中的继承很有用。 在这个例子中... define([], function () { "use
影响我性能的前三项操作是: 获取滚动条 获取偏移高度 Ext.getStyle 为了解释我的应用程序中发生了什么:我有一个网格,其中有一列在每个单元格中呈现网格。当我几乎对网格的内容做任何事情时,它运
我正在使用以下函数来获取 URL 参数。 function gup(name, url) { name = name.replace(/[\[]/, '\\\[').replace(/[\]]/,
我最近一直在使用 sysctl 来做很多事情,现在我使用 HW_MACHINE_ARCH 变量。我正在使用以下代码。请注意,当我尝试获取其他变量 HW_MACHINE 时,此代码可以完美运行。我还认为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试过的解决方案、为什么
由于使用 main-bower-files 作为使用 Gulp 的编译任务的一部分,我无法使用 node_modules 中的 webpack 来require 模块code> dir 因为我会弄乱当
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我使用 Gridlayout 在一行中放置 4 个元素。首先,我有一个 JPanel,一切正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我的 JPanel 上添加了一个 J
由于以下原因,我想将 VolumeId 的值保存在变量中: #!/usr/bin/env python import boto3 import json import argparse import
我正在将 MSAL 版本 1.x 更新为 MSAL-browser 的 Angular 。所以我正在尝试从版本 1.x 迁移到 2.X.I 能够成功替换代码并且工作正常。但是我遇到了 acquireT
我知道有很多关于此的问题,例如 Getting daily averages with pandas和 How get monthly mean in pandas using groupby但我遇到
This is the query string that I am receiving in URL. Output url: /demo/analysis/test?startDate=Sat+
我正在尝试使用 javascript 中的以下代码访问 Geoserver 层 var gkvrtWmsSource =new ol.source.ImageWMS({ u
API 需要一个包含授权代码的 header 。这就是我到目前为止所拥有的: var fullUrl = 'https://api.ecobee.com/1/thermostat?json=\{"s
如何获取文件中的最后一个字符,如果是某个字符,则删除它而不将整个文件加载到内存中? 这就是我目前所拥有的。 using (var fileStream = new FileStream("file.t
我是这个社区的新手,想出了我的第一个问题。 我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。
在回答 StoreStore reordering happens when compiling C++ for x86 @Peter Cordes 写过 For Acquire/Release se
我有一个函数,我们将其命名为 X1,它返回变量 Y。该函数在操作 .on("focusout", X1) 中使用。如何获取变量Y?执行.on后X1的结果? 最佳答案 您可以更改 Y 的范围以使其位于函
我是一名优秀的程序员,十分优秀!