- 浏览: 344806 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lvyuan1234:
你好,你那个sample.txt文件可以分享给我吗
hive insert overwrite into -
107x:
不错,谢谢!
hive 表的一些默认值 -
on_way_:
赞
Hadoop相关书籍 -
bupt04406:
dengkanghua 写道出来这个问题该怎么解决?hbase ...
Unexpected state导致HMaster abort -
dengkanghua:
出来这个问题该怎么解决?hbase master启动不起来。
Unexpected state导致HMaster abort
还原建表语句见:http://www.tbdata.org/archives/939
tianzhao@ubuntu:~$ mysql -uhive -p123456
mysql> use hive
mysql> show tables;
+--------------------+
| Tables_in_hive |
+--------------------+
| BUCKETING_COLS |
| COLUMNS |
| DBS |
| PARTITIONS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SORT_COLS |
| TABLE_PARAMS |
| TBLS |
| TBS_PRIV |
| USER |
+--------------------+
17 rows in set (0.00 sec)
下面的没有全部概括所有的字段信息:
org.apache.hadoop.hive.metastore.model.MTable:
表的信息:
public class MTable { // TBLS 表中,TBL_ID是数据库给每个hive表定义的唯一标识。
private String tableName; //表名 TBLS.TBL_NAME
private MStorageDescriptor sd; //location,columns,serDe等信息。 TBLS.SD_ID
private String owner; //表的创建者 TBLS.OWNER
private int createTime; //创建时间 TBLS.CREATE_TIME
private int lastAccessTime; //最后修改时间 TBLS.LAST_ACCESS_TIME
private List<MFieldSchema> partitionKeys; //分区字段信息 PARTITION_KEYS表中。
private Map<String, String> parameters; //相关属性信息,如表的注释属性key就是comment,value就是表的注释,还有表的其他属性信息如:transient_lastDdlTime,last_modified_by,last_modified_time。 TABLE_PARAMS表中
代码如下:
if (crtTbl.getComment() != null) {
tbl.setProperty("comment", crtTbl.getComment());
}
private String tableType; //表的类型 TBLS.TBL_TYPE
}
MTable 存在mysql的TBLS 表中:
metastore/src/model/package.jdo
<class name="MTable" table="TBLS" identity-type="datastore" detachable="true">
<datastore-identity>
<column name="TBL_ID"/>
</datastore-identity>
<index name="UniqueTable" unique="true">
<column name="TBL_NAME"/>
<column name="DB_ID"/>
</index>
<field name="tableName">
<column name="TBL_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="database">
<column name="DB_ID"/>
</field>
<field name="partitionKeys" table="PARTITION_KEYS" >
<collection element-type="MFieldSchema"/>
<join>
<primary-key name="PARTITION_KEY_PK">
<column name="TBL_ID"/>
<column name="PKEY_NAME"/>
</primary-key>
<column name="TBL_ID"/>
</join>
<element>
<embedded>
<field name="name">
<column name="PKEY_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type">
<column name="PKEY_TYPE" length="767" jdbc-type="VARCHAR" allows-null="false"/>
</field>
<field name="comment" >
<column name="PKEY_COMMENT" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
</embedded>
</element>
</field>
<field name="sd" dependent="true">
<column name="SD_ID"/>
</field>
<field name="owner">
<column name="OWNER" length="767" jdbc-type="VARCHAR"/>
</field>
<field name="createTime">
<column name="CREATE_TIME" jdbc-type="integer"/>
</field>
<field name="lastAccessTime">
<column name="LAST_ACCESS_TIME" jdbc-type="integer"/>
</field>
<field name="retention">
<column name="RETENTION" jdbc-type="integer"/>
</field>
<field name="parameters" table="TABLE_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="TBL_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
<field name="viewOriginalText">
<column name="VIEW_ORIGINAL_TEXT" jdbc-type="LONGVARCHAR"/>
</field>
<field name="viewExpandedText">
<column name="VIEW_EXPANDED_TEXT" jdbc-type="LONGVARCHAR"/>
</field>
<field name="tableType">
<column name="TBL_TYPE" length="128" jdbc-type="VARCHAR"/>
</field>
</class>
public class MStorageDescriptor { //存在mysql的SDS表中
private List<MFieldSchema> cols; //表的非分区字段,存在mysql的COLUMNS表中。
private String location; // 表的数据在hdfs中的路径 SDS.LOCATION
private String inputFormat;
private String outputFormat;
private boolean isCompressed = false; //是否压缩
private int numBuckets = 1;
private MSerDeInfo serDeInfo; // serDe信息,存在mysql的SERDES表中。
private List<String> bucketCols;
private List<MOrder> sortCols;
private Map<String, String> parameters; //相关参数定义。
}
<class name="MStorageDescriptor" identity-type="datastore" table="SDS" detachable="true">
<datastore-identity>
<column name="SD_ID"/>
</datastore-identity>
<field name="cols" table="COLUMNS" >
<collection element-type="MFieldSchema"/>
<join>
<primary-key name="COLUMNS_PK">
<column name="COLUMN_NAME"/>
</primary-key>
<column name="SD_ID"/>
</join>
<element>
<embedded>
<field name="name">
<column name="COLUMN_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type">
<column name="TYPE_NAME" length="4000" jdbc-type="VARCHAR" allows-null="false"/>
</field>
</embedded>
</element>
</field>
<field name="location">
<column name="LOCATION" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="inputFormat">
<column name="INPUT_FORMAT" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="outputFormat">
<column name="OUTPUT_FORMAT" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="isCompressed"/>
<field name="numBuckets">
<column name="NUM_BUCKETS" jdbc-type="integer"/>
</field>
<field name="serDeInfo" dependent="true">
<column name="SERDE_ID"/>
</field>
<field name="bucketCols" table="BUCKETING_COLS">
<collection element-type="java.lang.String"/>
<join>
<column name="SD_ID"/>
</join>
<element column="BUCKET_COL_NAME"/>
</field>
<field name="sortCols" table="SORT_COLS">
<collection element-type="MOrder"/>
<join>
<column name="SD_ID"/>
</join>
<element>
<embedded>
<field name="col">
<column name="COLUMN_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="order">
<column name="ORDER" jdbc-type="INTEGER" allows-null="false"/>
</field>
</embedded>
</element>
</field>
<field name="parameters" table="SD_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="SD_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
</class>
public class MSerDeInfo { //存在mysql的SERDES表中
private String name; //默认是NULL
private String serializationLib; //使用的serde类,默认是org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
private Map<String, String> parameters;
}
<class name="MSerDeInfo" identity-type="datastore" table="SERDES" detachable="true">
<datastore-identity>
<column name="SERDE_ID"/>
</datastore-identity>
<field name="name">
<column name="NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="serializationLib">
<column name="SLIB" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
<field name="parameters" table="SERDE_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="SERDE_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
</class>
非分区字段存在:mysql的COLUMNS表中
分区字段存在:mysql的PARTITION_KEYS表中
// Represent a column or a type of a table or object
public class MFieldSchema { // 字段,普通字段或者分区字段
private String name; //字段名
private String type; // 字段类型
private String comment; //字段注释
}
<class name="MFieldSchema" embedded-only="true" table="TYPE_FIELDS" detachable="true">
<field name="name">
<column name="FNAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type" >
<column name="FTYPE" length="4000" jdbc-type="VARCHAR" allows-null="false"/>
</field>
<field name="comment" >
<column name="FCOMMENT" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
</class>
字段类型,字段注释在hive中是支持中文的,编码格式设成utf8。
写入的数据是utf8,在mysql表中存的字段也要是utf8格式,在终端显示也是需要utf8显示。
很重要的一点是mysql默认的字段编码格式是 latin1,如果MySQL没有进行相关设置或者字段的CHARSET没有改过,那么字段编码就是latin1。
hive-site.xml中的javax.jdo.option.ConnectionURL需要加上characterEncoding=UTF-8
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true</value>
<description>JDBC connect string FOR a JDBC metastore</description>
</property>
mysql> SHOW CREATE TABLE COLUMNS;
| Table | Create Table
-----------------------------------------------------------------------------------------------------------------------------+
| COLUMNS | CREATE TABLE `COLUMNS` (
`SD_ID` bigint(20) NOT NULL,
`COMMENT` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`TYPE_NAME` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`INTEGER_IDX` int(11) NOT NULL,
PRIMARY KEY (`SD_ID`,`COLUMN_NAME`),
KEY `COLUMNS_N49` (`SD_ID`),
CONSTRAINT `COLUMNS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
所以如果mysql中的表的字段没有设置成utf8,那么hive写入的字段名和注释就会变成 ??? 乱码。
中文编码格式可以看:
深入分析 Java 中的中文编码问题
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
tianzhao@ubuntu:~$ mysql -uhive -p123456
mysql> use hive
mysql> show tables;
+--------------------+
| Tables_in_hive |
+--------------------+
| BUCKETING_COLS |
| COLUMNS |
| DBS |
| PARTITIONS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SORT_COLS |
| TABLE_PARAMS |
| TBLS |
| TBS_PRIV |
| USER |
+--------------------+
17 rows in set (0.00 sec)
下面的没有全部概括所有的字段信息:
org.apache.hadoop.hive.metastore.model.MTable:
表的信息:
public class MTable { // TBLS 表中,TBL_ID是数据库给每个hive表定义的唯一标识。
private String tableName; //表名 TBLS.TBL_NAME
private MStorageDescriptor sd; //location,columns,serDe等信息。 TBLS.SD_ID
private String owner; //表的创建者 TBLS.OWNER
private int createTime; //创建时间 TBLS.CREATE_TIME
private int lastAccessTime; //最后修改时间 TBLS.LAST_ACCESS_TIME
private List<MFieldSchema> partitionKeys; //分区字段信息 PARTITION_KEYS表中。
private Map<String, String> parameters; //相关属性信息,如表的注释属性key就是comment,value就是表的注释,还有表的其他属性信息如:transient_lastDdlTime,last_modified_by,last_modified_time。 TABLE_PARAMS表中
代码如下:
if (crtTbl.getComment() != null) {
tbl.setProperty("comment", crtTbl.getComment());
}
private String tableType; //表的类型 TBLS.TBL_TYPE
}
MTable 存在mysql的TBLS 表中:
metastore/src/model/package.jdo
<class name="MTable" table="TBLS" identity-type="datastore" detachable="true">
<datastore-identity>
<column name="TBL_ID"/>
</datastore-identity>
<index name="UniqueTable" unique="true">
<column name="TBL_NAME"/>
<column name="DB_ID"/>
</index>
<field name="tableName">
<column name="TBL_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="database">
<column name="DB_ID"/>
</field>
<field name="partitionKeys" table="PARTITION_KEYS" >
<collection element-type="MFieldSchema"/>
<join>
<primary-key name="PARTITION_KEY_PK">
<column name="TBL_ID"/>
<column name="PKEY_NAME"/>
</primary-key>
<column name="TBL_ID"/>
</join>
<element>
<embedded>
<field name="name">
<column name="PKEY_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type">
<column name="PKEY_TYPE" length="767" jdbc-type="VARCHAR" allows-null="false"/>
</field>
<field name="comment" >
<column name="PKEY_COMMENT" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
</embedded>
</element>
</field>
<field name="sd" dependent="true">
<column name="SD_ID"/>
</field>
<field name="owner">
<column name="OWNER" length="767" jdbc-type="VARCHAR"/>
</field>
<field name="createTime">
<column name="CREATE_TIME" jdbc-type="integer"/>
</field>
<field name="lastAccessTime">
<column name="LAST_ACCESS_TIME" jdbc-type="integer"/>
</field>
<field name="retention">
<column name="RETENTION" jdbc-type="integer"/>
</field>
<field name="parameters" table="TABLE_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="TBL_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
<field name="viewOriginalText">
<column name="VIEW_ORIGINAL_TEXT" jdbc-type="LONGVARCHAR"/>
</field>
<field name="viewExpandedText">
<column name="VIEW_EXPANDED_TEXT" jdbc-type="LONGVARCHAR"/>
</field>
<field name="tableType">
<column name="TBL_TYPE" length="128" jdbc-type="VARCHAR"/>
</field>
</class>
public class MStorageDescriptor { //存在mysql的SDS表中
private List<MFieldSchema> cols; //表的非分区字段,存在mysql的COLUMNS表中。
private String location; // 表的数据在hdfs中的路径 SDS.LOCATION
private String inputFormat;
private String outputFormat;
private boolean isCompressed = false; //是否压缩
private int numBuckets = 1;
private MSerDeInfo serDeInfo; // serDe信息,存在mysql的SERDES表中。
private List<String> bucketCols;
private List<MOrder> sortCols;
private Map<String, String> parameters; //相关参数定义。
}
<class name="MStorageDescriptor" identity-type="datastore" table="SDS" detachable="true">
<datastore-identity>
<column name="SD_ID"/>
</datastore-identity>
<field name="cols" table="COLUMNS" >
<collection element-type="MFieldSchema"/>
<join>
<primary-key name="COLUMNS_PK">
<column name="COLUMN_NAME"/>
</primary-key>
<column name="SD_ID"/>
</join>
<element>
<embedded>
<field name="name">
<column name="COLUMN_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type">
<column name="TYPE_NAME" length="4000" jdbc-type="VARCHAR" allows-null="false"/>
</field>
</embedded>
</element>
</field>
<field name="location">
<column name="LOCATION" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="inputFormat">
<column name="INPUT_FORMAT" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="outputFormat">
<column name="OUTPUT_FORMAT" length="4000" jdbc-type="VARCHAR"/>
</field>
<field name="isCompressed"/>
<field name="numBuckets">
<column name="NUM_BUCKETS" jdbc-type="integer"/>
</field>
<field name="serDeInfo" dependent="true">
<column name="SERDE_ID"/>
</field>
<field name="bucketCols" table="BUCKETING_COLS">
<collection element-type="java.lang.String"/>
<join>
<column name="SD_ID"/>
</join>
<element column="BUCKET_COL_NAME"/>
</field>
<field name="sortCols" table="SORT_COLS">
<collection element-type="MOrder"/>
<join>
<column name="SD_ID"/>
</join>
<element>
<embedded>
<field name="col">
<column name="COLUMN_NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="order">
<column name="ORDER" jdbc-type="INTEGER" allows-null="false"/>
</field>
</embedded>
</element>
</field>
<field name="parameters" table="SD_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="SD_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
</class>
public class MSerDeInfo { //存在mysql的SERDES表中
private String name; //默认是NULL
private String serializationLib; //使用的serde类,默认是org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
private Map<String, String> parameters;
}
<class name="MSerDeInfo" identity-type="datastore" table="SERDES" detachable="true">
<datastore-identity>
<column name="SERDE_ID"/>
</datastore-identity>
<field name="name">
<column name="NAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="serializationLib">
<column name="SLIB" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
<field name="parameters" table="SERDE_PARAMS">
<map key-type="java.lang.String" value-type="java.lang.String"/>
<join>
<column name="SERDE_ID"/>
</join>
<key>
<column name="PARAM_KEY" length="256" jdbc-type="VARCHAR"/>
</key>
<value>
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
</class>
非分区字段存在:mysql的COLUMNS表中
分区字段存在:mysql的PARTITION_KEYS表中
// Represent a column or a type of a table or object
public class MFieldSchema { // 字段,普通字段或者分区字段
private String name; //字段名
private String type; // 字段类型
private String comment; //字段注释
}
<class name="MFieldSchema" embedded-only="true" table="TYPE_FIELDS" detachable="true">
<field name="name">
<column name="FNAME" length="128" jdbc-type="VARCHAR"/>
</field>
<field name="type" >
<column name="FTYPE" length="4000" jdbc-type="VARCHAR" allows-null="false"/>
</field>
<field name="comment" >
<column name="FCOMMENT" length="4000" jdbc-type="VARCHAR" allows-null="true"/>
</field>
</class>
字段类型,字段注释在hive中是支持中文的,编码格式设成utf8。
写入的数据是utf8,在mysql表中存的字段也要是utf8格式,在终端显示也是需要utf8显示。
很重要的一点是mysql默认的字段编码格式是 latin1,如果MySQL没有进行相关设置或者字段的CHARSET没有改过,那么字段编码就是latin1。
hive-site.xml中的javax.jdo.option.ConnectionURL需要加上characterEncoding=UTF-8
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true</value>
<description>JDBC connect string FOR a JDBC metastore</description>
</property>
mysql> SHOW CREATE TABLE COLUMNS;
| Table | Create Table
-----------------------------------------------------------------------------------------------------------------------------+
| COLUMNS | CREATE TABLE `COLUMNS` (
`SD_ID` bigint(20) NOT NULL,
`COMMENT` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`COLUMN_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`TYPE_NAME` varchar(4000) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`INTEGER_IDX` int(11) NOT NULL,
PRIMARY KEY (`SD_ID`,`COLUMN_NAME`),
KEY `COLUMNS_N49` (`SD_ID`),
CONSTRAINT `COLUMNS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
所以如果mysql中的表的字段没有设置成utf8,那么hive写入的字段名和注释就会变成 ??? 乱码。
中文编码格式可以看:
深入分析 Java 中的中文编码问题
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
发表评论
-
hive rename table name
2013-09-18 14:28 2550hive rename tablename hive re ... -
hive的distribute by如何partition long型的数据
2013-08-20 10:15 2436有用户问:hive的distribute by分桶是怎么分 ... -
hive like vs rlike vs regexp
2013-04-11 18:53 11180like vs rlike vs regexp r ... -
hive sql where条件很简单,但是太多
2012-07-18 15:51 8704insert overwrite table aaaa ... -
insert into时(string->bigint)自动类型转换
2012-06-14 12:30 8249原表src: hive> desc src; ... -
通过复合结构来优化udf的调用
2012-05-11 14:07 1186select split("accba&quo ... -
RegexSerDe
2012-03-14 09:58 1522官方示例在: https://cwiki.apache.or ... -
Hive 的 OutputCommitter
2012-01-30 19:44 1790Hive 的 OutputCommitter publi ... -
hive LATERAL VIEW 行转列
2011-11-09 14:49 5408drop table lateralview; create ... -
hive complex type
2011-11-08 19:56 1328数据: 1,100|3,20|2,70|5,100 建表: ... -
hive转义字符
2011-10-25 16:41 6203CREATE TABLE escape (id STRING, ... -
hive 两个不同类型的columns进行比较
2011-09-19 13:46 3000select case when "ab1234&q ... -
lateral view
2011-09-18 04:04 0lateral view与udtf相关 -
udf 中获得 FileSystem
2011-09-14 10:28 0在udf中获得FileSystem,需要获得知道fs.defa ... -
hive union mapjoin
2011-09-09 16:29 0union union.q union2.q ... -
hive eclipse
2011-09-08 17:42 0eclipse-templates$ vi .classpat ... -
hive join filter
2011-09-07 23:05 0join16.q.out hive.optimize.ppd ... -
hive limit
2011-09-07 21:02 0limit 关键字: input4_limit.q.out ... -
hive convertMapJoin MapJoinProcessor
2011-09-06 21:17 0join25.q join26 ... -
hive hive.merge.mapfiles hive.merge.mapredfiles
2011-09-06 19:14 0HiveConf: HIVEMERGEMAPFILES ...
相关推荐
cloudera manager中添加hive数据库使用mysql的配置的详细步骤
Hive安装讲义(linux_hive windows_mysql) Hive是基于Hadoop的数据仓库工具,用于存储、查询和分析大规模数据。为了实现Hive的安装和配置,需要满足一定的前提条件和环境要求。下面是Hive安装讲义的详细步骤和相关...
同时,腾讯数据湖也支持不同的元数据类型,包括Hive、MySQL等。 在在线目录中,腾讯数据湖使用了业界方案Hive Metastore,为SQL on Hadoop提供通用Schema管理。Hive Metastore可以与计算引擎无缝对接,提供了更好的...
<name>hive.metastore.warehouse.dir <value>/user/hive/warehouse <!-- hive查询时输出列名 --> <name>hive.cli.print.header <value>true <!-- 显示当前数据库名 --> <name>hive.cli.print.current...
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下 如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行) mysql -uroot -p #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址...
├─01.视频 │ │ 02--数据仓库基础理论--场景...│ │ 21--Apache Hive--安装部署--远程模式安装与metastore服务启动.avi │ │ 25--Apache Hive--初体验1--Hive使用起来和MySQL差不多吗?.avi │ │ │
目前Hive将元数据存储在数据库中,如Mysql、Derby中。 四、Hive元数据存储方式 Hive的元数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。 1. 使用Derby数据库存储元...
内部表:Hive中的表和传统数据库中的表在概念上是类似的,Hive的每个表都有自己的存储目录,除了外部表外,所有的表数据都存放在配置在hive-site.xml文件的${hive.metastore.warehouse.dir}/table_name目录下。...
hive远程连接的详细配置,包括远程mysql,远程存储metastore
在hive的安装目录下,进入conf目录,创建...将mysql驱动复制到hive的lib目录里。(这有关上一篇安装MySQL的内容) 解压驱动包 将mysql驱动复制到hive的lib目录里 启动hive(别忘了先启动hdfs和yarn~~) start-dfs.s
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...
`<value>jdbc:mysql://hadp01:3306/hive?createDatabaseIfNotExist=true</value>` `<description>JDBC connect string for a JDBC metastore</description>` `</property>` `<property>` `<name>javax.jdo.option....
内部表和传统数据库中的表在概念上是类似的,Hive的每个表都有自己的存储目录,除了外部表外,所有的表数据都存放在配置在hive-site.xml文件中的 ${hive.metastore.warehouse.dir}/table_name目录下。 Hive的优点...
jdbc:mysql://192.168.224.132:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver
sudo rm -rf /home/hadoop/hive-2.1.1/scripts/metastore/upgrade/mysql 4. 下载Mysql5.5.44 下载Mysql5.5.44,不要下载高版本的Mysql。下载地址:(不需要输入Oracle账号密码)。 5. 解压缩tar文件 使用tar命令...
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...
存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据ETL) 实时数据处理:Kafka + Spark Streaming 数据应用层:MLlib 产生...