apache-hive / 3.1.1 / reference / User_FAQ.html

Hive 用户常见问题解答

General

我看到以下错误:服务器访问错误:连接超时 url = http://archive.apache.org/dist/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz

运行以下命令:
cd ~/.ant/cache/hadoop/core/sources
wget http://archive.apache.org/dist/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz

如何更改旧表的 warehouse.dir 位置?

要更改 Hive 表的基本位置,请编辑 hive.metastore.warehouse.dir 参数。这不会影响较旧的表。需要在数据库(MySQL 或 Derby)中更改元数据。 Hive 表的位置在表 SDS 和列 LOCATION 中。

运行 JOIN 查询时,我看到内存不足错误。

这通常是由 JOIN 表的 Sequences 引起的。代替“ FROM tableA a JOIN tableB a ON ...”,请尝试“ FROM tableA b JOIN tableA a ON ...”。请注意,如果使用的是“左外部连接”,则可能需要更改为“右外部连接”。这个技巧通常可以解决问题-经验法则是,始终将具有相同值的很多行的表放在 JOIN 最右侧的连接键中。

{#UserFAQ-IamusingMySQLasmetastoreandIseeerrors:"com.mysql.jdbc.exceptions.jdbc4.!CommunicationsException:Communicationslinkfailure"}我将 MySQL 用作元存储,但看到错误:“ com.mysql.jdbc.exceptions.jdbc4.!CommunicationsException:通信链接失败”

这通常是由于 MySQL 服务器在连接空闲一段时间后关闭连接而导致的。在 MySQL 服务器上运行以下命令将解决问题“设置全局 wait_status = 120;”。

  • 当使用 MySQL 作为元存储库时,我看到错误“ com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:指定的密钥太长;最大密钥长度为 767 字节”。
    这是 MySQL 5.0 和 UTF8 数据库的已知限制。一种选择是使用另一种已知的字符集,例如“ latin1”。

Hive 是否支持 Unicode?

您可以在数据/Comments 上使用 Unicode 字符串,但不能用于数据库/表/列名称。

您可以对 Hive 数据使用 UTF-8 编码。但是,不支持其他编码(HIVE-7142 引入了 LazySimpleSerDe 的编码,但是,实现方式并不完整,无法解决所有情况)。

Hive SQL

Hive SQL 标识符(例如表名,列名等)是否区分大小写?

否。Hive 不区分大小写。

Executing:

Note

SELECT * FROM MyTable WHERE myColumn = 3

严格等于

Note

select * from mytable where mycolumn = 3

Hive SQL 标识符允许的最大长度是多少?

将数据导入 Hive

如何将 XML 数据导入 Hive?

如何将 CSV 数据导入 Hive?

如何将 JSON 数据导入 Hive?

如何将 Thrift 数据导入 Hive?

如何将 Avro 数据导入 Hive?

如何将定界的文本数据导入 Hive?

如何将固定宽度的数据导入 Hive?

如何将 ASCII 日志文件(HTTP 等)导入 Hive?

从 Hive 导出数据

Hive 数据模型

本机表和外部表有什么区别?

什么是动态分区?

Hive 表可以包含多种格式的数据吗?

是否可以按分区设置数据格式?

JDBC Driver

Hive 是否具有 JDBC 驱动程序?

是。注意 hive-jdbc jar。驱动程序是“ org.apache.hadoop.hive.jdbc.HiveDriver”。

它支持两种模式:本地模式和远程模式。

在远程模式下,它通过其 Thrift API 连接到配置单元服务器。使用的 JDBC 网址应采用以下形式:'jdbc:hive:// hostname:port/databasename'

在本地模式下,Hive 被嵌入。要使用的 JDBC 网址应为“ jdbc:hive://”。

ODBC Driver

Hive 是否具有 ODBC 驱动程序?

是。许多第三方供应商提供 ODBC 驱动程序。

Simba 同时提供 ODBC 和 JDBC 驱动程序,并为其他公司开发了许多驱动程序。

http://www.simba.com/drivers/hive-odbc-jdbc/

Microsoft 为 HDInsight 和本地群集中的 Hive 提供了 ODBC 驱动程序。

https://azure.microsoft.com/en-us/documentation/articles/hdinsight-connect-excel-hive-odbc-driver/
https://www.microsoft.com/en-ca/download/details.aspx?id=40886

Hortonworks 为 HDP 提供 ODBC 驱动程序

http://hortonworks.com/hdp/addons/

Cloudera 为 Cloudera Enterprise 提供了 ODBC 驱动程序

http://www.cloudera.com/downloads/connectors/hive/odbc/2-5-12.html

MapR 提供 ODBC 驱动程序

http://doc.mapr.com/display/MapR/Hive+ODBC+Connector

Progress 提供了 DataDirect ODBC 驱动程序

https://www.progress.com/odbc/apache-hadoop-hive

Amazon 为 Amazon EMR 提供 ODBC/JDBC 驱动程序

https://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-bi-tools.html