hive 安裝文件

2021-09-17 22:10:04 字數 3604 閱讀 5009

hive是半個資料庫,真正資料是儲存在hdfs中,元資料(表結構)存在derby[mysql]裡,它會把hql語句(類sql)翻譯成mapreduce(hive1.x),spark....(hive2.x),(hive2.x不提倡使用mapreduce,但還可以做測試)

hive的查詢效率取決於底層的計算引擎~

hive應用場景:靜態資料分析,資料不會頻繁變化,不需要實時響應結果。

hive的限制:不支援行級的處理(插入,刪除),只能插入,刪除一張表。不支援事物。

vim /etc/profile

# 檔案中新增

export hadoop_home=/usr/local/hadoop

export hive_home=/usr/local/hive

export path=$path:$hadoop_home/bin:$hadoop_home/sbin

export path=$path:$hive_home/bin

# 存檔退出後執行,使配置立馬生效

source /etc/profile

檢查配置是否生效:

echo $hive_home

# 若輸出hive的安裝目錄,則說明配置生效

hive

# 若出現內容則說明path配置生效,沒生效會提示找不到命令(報錯是因為hive沒有安裝完,正常)

cd /usr/local/src/hive/conf

cp hive-default.xml.template hive-site.xml

# 修改 為false,預設是true。(原因不明)

hive.metastore.schema.verification

#建立目錄,用來替換$ 注意有多處,都需要替換,見下圖

mkdir /usr/local/src/hive/tmp

# 用當前登入使用者替換$,見下圖

正常生產環境中,hive的表結構和元資料是儲存在mysql、oracle、postgresql等資料庫中的,但是我們只是用hive做測試,則只需要初始化hive自帶的測試資料庫derby即可。命令如下(hive安裝路徑下執行)

# 如果mysql,就把最後的資料庫改為mysql

schematool -initschema -dbtype derby

# 注意此命令會在當前目錄下建立metastore_db,所以每次執行命令一定要在同一路徑下執行

# 之後,hive安裝路徑下會出現metastore_db資料夾(derby資料庫)

# 如果hive出現什麼錯誤,則可以把metastore_db資料夾刪除,然後重新初始化

hive

# 注意:需在之前啟動hadoop集群,hive是依賴hadoop的

hive> show databases;

# 使用預設資料庫

hive> use default;

hive> show tables;

hive> create table wordcount (line string);

hive> desc wordcount;

# hive的臨時檔案

hive> dfs -ls /tmp/hive/root;

# hive的真實資料

hive> dfs -ls /user/hive/warehouse/wordcount;

# 載入資料,hdfs的根目錄下的input.txt檔案,覆蓋到hive表wordcount中

hive> load data inpath '/input.txt' overwrite into table wordcount;

# 注意:真正的資料並沒有寫入到hive中,而是與hdfs中的資料建立了一種對映,我們就可以通過表,去訪問檔案了

hive> select * from wordcount;

# 將line欄位按空格分隔為陣列

hive> select split(line, ' ') from wordcount;

# 將陣列拆分為新的單獨字段

hive> select explode(split(line, ' ')) as word from wordcount;

# 將上個命令的結果當成新錶然後group by

hive> select word,count(1) from (select explode(split(line, ' ')) as word from wordcount)w group by word;

# hql會把此命令翻譯為mapreduce的job

2、日誌檔案格式化為1,2,3,6列用逗號分隔的sougou.dic檔案

3、把sougou.dic檔案放到hdfs中

[root@sunsk01 src]# hadoop fs -mkdir /sougou/

[root@sunsk01 src]# hadoop fs -put sougou.dic /sougou/

4、建表,對映到sougou.dic檔案上

hive> create table sgr (qtime string, qid string, qword string, url string) row format delimited fields terminated by ',';

# 建立一張hive表,該行記錄字段之間用逗號分隔。

hive> load data inpath '/sougou/' overwrite into table sgr;

# 檢測對映是否成功

hive> select count(1) from sgr;

5、查詢熱搜榜

hive> select keyword,count(1) c from (select qword as keyword from sgr) kw group by keyword order by c desc limit 10;

# 結果:

# ok

# [汶川**原因] 335

# [哄搶救災物資] 308

# [**莎朗斯通] 110

# [印尼排華是怎麼回事] 77

# [朝鮮能不能打敗南韓] 60

# [楊丞琳辱華慘痛下場] 48

# [印尼殘害女華人+] 47

# [xiao77] 34

# [gay] 31

# [97sese] 30

# time taken: 66.374 seconds, fetched: 10 row(s)

# emmm... 知道大家都在搜狗搜什麼了。。。

hive hql文件 HIVE說明文件

sql 查詢功能,可以將sql 語句轉換為 mapreduce 任務進行執行,通過自己的 sql去查詢分析需要的內容,這套 sql簡稱 hive sql,使不熟悉 mapreduce 的使用者很 方便的利用 sql語言查詢,彙總,分析資料。hive 適用性 它與關係型資料庫的 sql略有不同,但支援...

mysql安裝文件 mysql安裝文件

linux下使用yum安裝mysql 安裝的mysql版本為mysql55 mysql server.x86 64 1 安裝 檢視有沒有安裝過 yum list installed mysql rpm qa grep mysql 檢視有沒有安裝包 yum list mysql 安裝mysql客戶端 ...

Hive安裝手冊

一 安裝準備 2 jdk版本 jdk 6u20 linux i586.bin 3 作業系統 linux s132 2.6.9 78.8axs2smp 1 smp tue dec 16 02 42 55 est 2008 x86 64 x86 64 x86 64 gnu linux 4 預設前提是安裝...