使用Oracle作為元數據的數據庫時,Oracle只能有一個LongVarchar,所以建表會報錯,Hive給出的建議是修改hive-metastore-0.13.0.jar中的package.jdo文件。
將VIEW_ORIGINAL_TEXT、VIEW_EXPANDED_TEXT的jdbc-type改為CLOB
將VIEW_ORIGINAL_TEXT、VIEW_EXPANDED_TEXT的jdbc-type改為CLOB
2018-08-14
如果使用Oracle作為元數據的數據庫:
hive-site.xml改為:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:oracle:thin:@IP:Port/Service_Name</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
hive-site.xml改為:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:oracle:thin:@IP:Port/Service_Name</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
2018-08-14
外部表指向已經在 HDFS 中存在數據的文件,可以創建 Partition。它和內部表在元數據的組織上是相同的,而數據的存儲則有較大的差異。
內部表的創建過程和數據加載過程(這兩個過程可以在同一個語句中完成),在加載數據的過程中,實際數據會被移動到數據倉庫目錄中;之后對數據的訪問將會直接在數據倉庫目錄中完成。刪除表時,表中的數據和元數據將會被同時刪除。
而外部表只有一個過程,加載數據和創建表同時完成,實際數據是存儲在 LOCATION 后面指定的 HDFS 路徑中,實際數并不會移動到數據倉庫目錄中。
當刪除一個外部表時,僅刪除元數據,表中的數據不會真正被刪除。
內部表的創建過程和數據加載過程(這兩個過程可以在同一個語句中完成),在加載數據的過程中,實際數據會被移動到數據倉庫目錄中;之后對數據的訪問將會直接在數據倉庫目錄中完成。刪除表時,表中的數據和元數據將會被同時刪除。
而外部表只有一個過程,加載數據和創建表同時完成,實際數據是存儲在 LOCATION 后面指定的 HDFS 路徑中,實際數并不會移動到數據倉庫目錄中。
當刪除一個外部表時,僅刪除元數據,表中的數據不會真正被刪除。
2018-08-13
常見的 Hive CLI 命令:
- 清屏:Ctrl + L 或者 !clear;
- 查看數據倉庫中的數據庫:show databases;
- 查看數據倉庫中的表:show tables;
- 查看表結構:`desc tb_name;`或`describe tb_name;`
- 查看建表語句:`show create table tb_name;`
- 查看數據倉庫中的內置函數:`show functions;`
- 查看 HDFS 上的文件:`dfs -ls hdfs_dir;`
- 執行 Linux 操作系統的命令:`!命令;`
- 執行 SQL 腳本:`source SQL文件`
- 清屏:Ctrl + L 或者 !clear;
- 查看數據倉庫中的數據庫:show databases;
- 查看數據倉庫中的表:show tables;
- 查看表結構:`desc tb_name;`或`describe tb_name;`
- 查看建表語句:`show create table tb_name;`
- 查看數據倉庫中的內置函數:`show functions;`
- 查看 HDFS 上的文件:`dfs -ls hdfs_dir;`
- 執行 Linux 操作系統的命令:`!命令;`
- 執行 SQL 腳本:`source SQL文件`
2018-08-13
Hive 中的數據存儲在 Hadoop HDFS 中,Hive 中的表和數據其實就是 HDFS 中的目錄和文件:
- 在 Hive 中創建一張表就會自動在 HDFS 中創建一個文件夾
- 在該表中保存數據也就相當于在這個文件夾下面存儲文件。
- 可以在 hive-site.xml 中指定數據倉庫的目錄:hive.metastore.warehouse.dir
- 在 Hive 中創建一張表就會自動在 HDFS 中創建一個文件夾
- 在該表中保存數據也就相當于在這個文件夾下面存儲文件。
- 可以在 hive-site.xml 中指定數據倉庫的目錄:hive.metastore.warehouse.dir
2018-08-09
hive已經安裝了,以及xml配置好了,但是運行hive,mysql里沒有創建表,
原因
之前初始化保存元數據的默認數據庫為derby
現在運行初始化Hive在mysql里的腳本 $HIVE_HOME/scripts
schematool -initSchema -dbType mysql
原因
之前初始化保存元數據的默認數據庫為derby
現在運行初始化Hive在mysql里的腳本 $HIVE_HOME/scripts
schematool -initSchema -dbType mysql
2018-07-12
https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.11.tar.gz
2018-07-12
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive</value>
</property>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive</value>
</property>
2018-07-12
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
2018-07-12