hadoop - 如何在HDFS上使用Hive?

标签 hadoop hive

我已经建立了Apache Hive环境。

而且,我创建了一个名为cx的数据库,如下所示:

hive>create database cx;
OK
Time taken: 0.32 seconds
hive (default)> show databases;
OK
cx
default
Time taken: 0.032 seconds, Fetched: 2 row(s)
hive (default)>

当我使用“DESCRIBE DATABASE”命令检查数据库cx的详细信息时。我发现它的存储位于本地文件系统上:
hive> describe database cx;
OK
cx      file:/user/hive/warehouse/cx.db root    USER
Time taken: 0.038 seconds, Fetched: 1 row(s)

我的问题是,如何在hdfs上存储此数据库?

这是我的hive-site.xml设置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/user/hive/warehouse/metastore_db;create=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
</configuration>

这是我的.hiverc文件:
set hive.cli.print.current.db=true;
set hive.exec.mode.local.auto=true;

最佳答案

Hive是 Hadoop(即HDFS / HBase )之上的 Meta Service层

Hive不存储实际数据,实际数据存储在 HDFS或NoSQL 存储区(如HBase / Cassandra)中。

Hive是HDFS数据的表管理/关系 View 。因此实际数据位于HDFS和元数据中,即使用Hive Metastore将数据库名称,表名称, View 名称等存储在Hive中。

配置单元数据库是HDFS中扩展名为.db的目录。所有数据库目录的位置都是HDFS中的仓库位置,即/ user / hive / warehouse(hive.metastore.warehouse.dir)。

因此,我们使用Hive创建数据库,Hive在HDFS内部创建一个目录,并将此目录映射到Hive元数据中的数据库名称。

关于hadoop - 如何在HDFS上使用Hive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38182567/

相关文章:

java - 如何使 'hadoop jar'命令拾取相同名称的jar的新版本

java - 读取JSON对象作为映射器的输入值时获取 “java.lang.ClassNotFoundException: org.json.simple.parser.ParseException”

apache-spark - 如何在 Google Dataproc 主节点上启用 pyspark HIVE 支持

hadoop - Hive查询针对Cassandra columnFamily执行时返回null

mysql - 如何将Hive数据表迁移到MySql?

json - 执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 com/mongodb/util/JSON

database - 在 Hive 中删除包含表的数据库

python - 如何在 spark 中使用 transform python udf 执行 hql 脚本?

hadoop - 我们如何在配置单元中将字符串转换为数组?

hadoop - 获取当前运行的reduce任务数