實操用Hive分析大數據事半功倍
- 2019 年 10 月 6 日
- 筆記
一般我們分析大數據,也許會想到Spark、Storm,但前提得會JAVA等程式語言,不然拿到數據也無法做分析。而Hive而解決了這個問題,只需要會Sql語言即可做mapreduce的大數據分析任務。今天我們創建測試數據用Hive進行mapreduce的實際分析。

一、先安裝好Hive、Mysql環境
1、在昨天hdfs的基礎上,安裝Hive、Mysql。
2、因Hive依賴於Mysql存儲元數據、依賴於Hdfs存儲cell數據,在Hive中配置好Mysql的帳號、密碼。
3、在Mysql中創建Hive資料庫,新建Mysql的資料庫帳號、密碼。
二、創建測試數據
1、創建file測試數據
cd /usr/local/hadoop
mkdir input
echo "hello world" >file1.txt
echo "hello hadoop" >file2.txt
2、進入hive,將file導入到hive數據表中
hive> create table docs(line string); //創建僅有一個列元素的表
hive> load data local input '/usr/local/hadoop/input' overwrite into table docs; //將input目錄下的file1、file2倒入hive docs表格中。
用select * from docs證實數據倒入成功。

三、創建測試分析任務
1、用sql語句進行word count的分析處理。
create table word_count as select word,count(1) as count from (select explode(split(line,' ')) as word from docs) w group by word order by word;
2、檢查mapreduce任務
檢查mapreduce進程,上面的語句啟動了mapreduce任務。

3、檢查結果
用select * from word_count,發現word count的任務成功完成。

四、小結
1、hive依賴於mysql存元數據,依賴於hdfs存儲資料庫文件,是一個廉價的數據倉庫。
2、hive用sql語句創建mapreduce任務,適用於非實時的數據分析處理。