❶ 怎樣刪除hive和hbase映射表
虛擬機的速度本身就非常慢, 還有就是hive的用法也很重要,不是隨便寫寫就可以的 ,同樣一種查詢方法 ,寫法不一樣 演算法和時間也都會不同
❷ hive中怎樣刪除分區
准備好環境,小編這邊環境已經有了,就不講解如何搭建環境,畢竟搭建一套大數據需要一段時間的。
准備一個分區表
show partitions 表名
方法1:使用hive自帶sql語法進行刪除
alter table 表名 drop partition (etl_dt=20161118);
再次查看20161118分區還在不在,如果分區不在了,說明該分區已經被刪除,數據也已被清空。
show partitions 表名;
方法2:採用hdfs命令進行清空
這個表還剩下一個分區,咱們把這個分區也清空。
先使用hdfs查看該表實際分區以及數據目錄在哪
hdfs dfs -ls /user/hive/warehouse/tbdata.db/表名小寫/
或者
hadoop fs -ls /user/hive/warehouse/tbdata.db/表名小寫/
兩個命令效果一樣
使用hdfs命令刪除該分區20161124目錄
hdfs dfs -rm -r -f /user/hive/warehouse/tbdata.db/表名小寫/etl_dt=20161124
最後在查看沒有分區目錄了
最查看進hive命令行查看此表是否還有數據
❸ hive中怎麼退出所連接的資料庫
1、hive 命令行模式,直接輸入/hive/bin/hive的執行程序,或者輸入 hive --service cli
用於linux平台命令行查詢,查詢語句基本跟mysql查詢語句類似
2、 hive web界面的 (埠號9999) 啟動方式
hive –service hwi &
用於通過瀏覽器來訪問hive,感覺沒多大用途
❹ 在hive中怎樣刪除一張有數據的管理表,包括刪除數據
Hive的數據管理:
(1)元數據存儲
Hive 將元數據存儲在 RDBMS 中,有三種模式可以連接到資料庫:
Single User Mode:此模式連接到一個 In-memory 的資料庫 Derby,一般用於 Unit Test。
Multi User Mode:通過網路連接到一個資料庫中,這是最常用的模式。
Remote Server Mode:用於非 Java 客戶端訪問元資料庫,在伺服器端啟動一個 MetaStoreServer,客戶端則利用 Thrift 協議通過 MetaStoreServer來訪問元資料庫。
(2)數據存儲
首先,Hive 沒有專門的數據存儲格式,也沒有為數據建立索引,用戶可以非常自由地組織 Hive 中的表,只需要在創建表的時候告訴 Hive 數據中的列分隔符和行分隔符,它就可以解析數據了。
其次,Hive 中所有的數據都存儲在 HDFS 中,Hive 中包含4種數據模型:Table、External Table、Partition、Bucket。
Hive 中的 Table 和資料庫中的 Table 在概念上是類似的,每一個 Table 在 Hive 中都有一個相應的目錄來存儲數據。例如,一個表 pvs,它在 HDFS 中的路徑為:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的數據倉庫的目錄,所有的 Table 數據(不包括 External Table)都保存在這個目錄中。
Partition 對應於資料庫中Partition 列的密集索引,但是 Hive 中 Partition 的組織方式與資料庫中的很不相同。在 Hive 中,表中的一個 Partition 對應於表下的一個目錄,所有的 Partition 數據都存儲在對應的目錄中。例如:pvs 表中包含 ds 和 city 兩個 Partition,則對應於 ds = 20090801, city = US 的 HDFS 子目錄為:/wh/pvs/ds=20090801/city=US;對應於 ds = 20090801, city = CA 的 HDFS 子目錄為:/wh/pvs/ds=20090801/city=CA。
Buckets 對指定列計算 hash,根據 hash 值切分數據,目的是為了便於並行,每一個 Buckets對應一個文件。將 user 列分散至 32 個Bucket上,首先對 user 列的值計算 hash,比如,對應 hash 值為 0 的 HDFS 目錄為:/wh/pvs/ds=20090801/city=US/part-00000;對應hash 值為 20 的 HDFS 目錄為:/wh/pvs/ds=20090801/city=US/part-00020。
External Table 指向已經在 HDFS 中存在的數據,可以創建 Partition。它和 Table 在元數據的組織結構上是相同的,而在實際數據的存儲上則有較大的差異。
在Table 的創建過程和數據載入過程(這兩個過程可以在同一個語句中完成)中,實際數據會被移動到數據倉庫目錄中。之後對數據的訪問將會直接在數據倉庫的目錄中完成。刪除表時,表中的數據和元數據將會被同時刪除。
External Table 只有一個過程,因為載入數據和創建表是同時完成的。實際數據是存儲在 Location 後面指定的 HDFS 路徑中的,它並不會移動到數據倉庫目錄中。
(3)數據交換
數據交換主要分為以下幾個部分
❺ hive中怎麼刪除表中的部分數據
Hive的數據管理:
(1)元數據存儲
Hive 將元數據存儲在 RDBMS 中,有三種模式可以連接到資料庫:
Single User Mode:此模式連接到一個 In-memory 的資料庫 Derby,一般用於 Unit Test。
Multi User Mode:通過網路連接到一個資料庫中,這是最常用的模式。
Remote Server Mode:用於非 Java 客戶端訪問元資料庫,在伺服器端啟動一個 MetaStoreServer,客戶端則利用 Thrift 協議通過 MetaStoreServer來訪問元資料庫。
(2)數據存儲
首先,Hive 沒有專門的數據存儲格式,也沒有為數據建立索引,用戶可以非常自由地組織 Hive 中的表,只需要在創建表的時候告訴 Hive 數據中的列分隔符和行分隔符,它就可以解析數據了。
其次,Hive 中所有的數據都存儲在 HDFS 中,Hive 中包含4種數據模型:Table、External Table、Partition、Bucket。
Hive 中的 Table 和資料庫中的 Table 在概念上是類似的,每一個 Table 在 Hive 中都有一個相應的目錄來存儲數據。例如,一個表 pvs,它在 HDFS 中的路徑為:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的數據倉庫的目錄,所有的 Table 數據(不包括 External Table)都保存在這個目錄中。
Partition 對應於資料庫中Partition 列的密集索引,但是 Hive 中 Partition 的組織方式與資料庫中的很不相同。在 Hive 中,表中的一個 Partition 對應於表下的一個目錄,所有的 Partition 數據都存儲在對應的目錄中。例如:pvs 表中包含 ds 和 city 兩個 Partition,則對應於 ds = 20090801, city = US 的 HDFS 子目錄為:/wh/pvs/ds=20090801/city=US;對應於 ds = 20090801, city = CA 的 HDFS 子目錄為:/wh/pvs/ds=20090801/city=CA。
Buckets 對指定列計算 hash,根據 hash 值切分數據,目的是為了便於並行,每一個 Buckets對應一個文件。將 user 列分散至 32 個Bucket上,首先對 user 列的值計算 hash,比如,對應 hash 值為 0 的 HDFS 目錄為:/wh/pvs/ds=20090801/city=US/part-00000;對應hash 值為 20 的 HDFS 目錄為:/wh/pvs/ds=20090801/city=US/part-00020。
External Table 指向已經在 HDFS 中存在的數據,可以創建 Partition。它和 Table 在元數據的組織結構上是相同的,而在實際數據的存儲上則有較大的差異。
在Table 的創建過程和數據載入過程(這兩個過程可以在同一個語句中完成)中,實際數據會被移動到數據倉庫目錄中。之後對數據的訪問將會直接在數據倉庫的目錄中完成。刪除表時,表中的數據和元數據將會被同時刪除。
External Table 只有一個過程,因為載入數據和創建表是同時完成的。實際數據是存儲在 Location 後面指定的 HDFS 路徑中的,它並不會移動到數據倉庫目錄中。
(3)數據交換
數據交換主要分為以下幾個部分
用戶介面:包括客戶端、Web界面和資料庫介面。
元數據存儲:通常是存儲在關系資料庫中的,如MySQL、Derby等。
解釋器、編譯器、優化器、執行器。
Hadoop:用 HDFS進行存儲,利用 MapRece 進行計算。
用戶介面主要有三個:客戶端、資料庫介面和Web界面,其中最常用的是客戶端。Client 是 Hive 的客戶端,當啟動 Client 模式時,用戶會想要連接Hive Server,這時需要指出 Hive Server 所在的節點,並且在該節點啟動 Hive Server。Web界面是通過瀏覽器訪問 Hive的。
Hive 將元數據存儲在資料庫中,如 MySQL、Derby中。Hive 中的元數據包括表的名字、表的列和分區及其屬性、表的屬性(是否為外部表等)、表數據所在的目錄等。
解釋器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化到查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,並在隨後由 MapRece調用執行。
Hive 的數據存儲在 HDFS 中,大部分的查詢由 MapRece 完成(包含 * 的查詢不會生成 MapRedcue 任務,比如 select * from tbl)。
以上從Hadoop的分布式文件系統HDFS、分布式資料庫HBase和數據倉庫工具Hive入手介紹了Hadoop的數據管理,它們都通過自己的數據定義、體系結構實現了數據從宏觀到微觀的立體化管理,完成了Hadoop平台上大規模的數據存儲和任務處理
❻ 如何徹底刪除hive以及配置好的環境變數
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
搜索博文/帖子/用戶
登錄
奇子君
關注
hive 設置環境變數的方法總結 原創
2020-02-19 14:02:47
奇子君
碼齡10年
關注
Hive提供三種可以改變環境變數的方法:
1.配置文件:修改${HIVE_HOME}/conf/hive-site.xml配置文件;
在Hive中,所有的默認配置都在${HIVE_HOME}/conf/hive-default.xml文件中,如果需要對默認的配置進行修改,可以創建一個hive-site.xml文件,放在${HIVE_HOME}/conf目錄下。裡面可以對一些配置進行個性化設定。在hive-site.xml的格式如下:
絕大多少配置都是在xml文件裡面配置的,這里做的配置都全局用戶都生效。用戶自定義配置會覆蓋默認配置。另外,Hive也會讀入Hadoop的配置,因為Hive是作為Hadoop的客戶端啟動的,Hive的配置會覆蓋Hadoop的配置。
2. 命令行參數:在啟動Hive cli的時候進行配置,可以在命令行添加-hiveconf param=value來設定參數,例如:
hive --hiveconf maprece.job.queuename=queue
在Hive中所有MapRece作業都提交到隊列queue中。這一設定對本次啟動的會話有效,下次啟動需要重新配置。
3. 參數申明:在已經進入cli時進行參數聲明,可以在HQL中使用SET關鍵字設定參數,例如:
hive> set maprece.job.queuename=queue;
這種配置也是對本次啟動的會話有效,下次啟動需要重新配置。
上述三種設定方式的優先順序依次遞增。即參數聲明覆蓋命令行參數,命令行參數覆蓋配置文件設定。
❼ Hive分區表怎麼刪除一個新添加的欄位
聲明接受任意屬性,我們希望在一個表中修改以下語法。
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
Rename To… 語句
下面是查詢重命名表,把 employee 修改為 emp。
hive> ALTER TABLE employee RENAME TO emp;
JDBC 程序
在JDBC程序重命名表如下。
import java.sql.SQLException;import java.sql.Connection;import java.sql.ResultSet; import java.sql.Statement;import java.sql.DriverManager;public class HiveAlterRenameTo {
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
// Register driver and create driver instance
Class.forName(driverName);
// get connection
Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", "");
// create statement
Statement stmt = con.createStatement();
// execute statement
stmt.executeQuery("ALTER TABLE employee RENAME TO emp;");
System.out.println("Table Renamed Successfully");
con.close();
}}
將該程序保存在一個名為HiveAlterRenameTo.java文件。使用下面的命令來編譯和執行這個程序。
$ javac HiveAlterRenameTo.java
$ java HiveAlterRenameTo
輸出
Table renamed successfully.
❽ hive.log可以刪嗎
可以。在hive中刪除只會刪除MySQL元數據hdfs上的原始數據不會刪除內部表外部表轉換。