• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Hive的離線數(shù)據(jù)處理方法

      2022-03-13 23:14:11亢華愛
      現(xiàn)代商貿(mào)工業(yè) 2022年5期

      亢華愛

      摘 要:Hive是一種建立在Hadoop上的數(shù)據(jù)倉庫基礎構(gòu)架。Hive系統(tǒng)結(jié)構(gòu)中的解析器,可以將用戶編寫的HiveQL語句進行解析,解析出相應的MapReduce程序,本文使用Hive對某網(wǎng)站用戶評論數(shù)據(jù)進行分析,快速實現(xiàn)MapReduce統(tǒng)計任務。

      關(guān)鍵詞:Hive;HQL;MapReduce

      中圖分類號:TB 文獻標識碼:A doi:10.19311/j.cnki.1672-3198.2022.05.077

      1 Hive的概述

      Hive起源于Facebook,F(xiàn)acebook公司有著大量的日志數(shù)據(jù),面對這樣海量的結(jié)構(gòu)化數(shù)據(jù), Facebook開發(fā)團隊想到設計一種使用SQL語言就能夠?qū)θ罩緮?shù)據(jù)查詢分析的工具,這樣只需要懂SQL語言,就能夠勝任大數(shù)據(jù)分析方面的工作,大大節(jié)省開發(fā)人員的學習成本,Hive就這樣應運而生了。Hive 是Hadoop生態(tài)系統(tǒng)中的一個數(shù)據(jù)倉庫技術(shù)。大量數(shù)據(jù)存儲在HDFS中,Hive能夠?qū)⑦@些的數(shù)據(jù)進行數(shù)據(jù)加載、提取和轉(zhuǎn)換。

      在Hadoop生態(tài)系統(tǒng)結(jié)構(gòu)中,Hive這個數(shù)據(jù)倉庫技術(shù)占有非常重要的地位,Hive能夠?qū)⒁粋€個結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張張數(shù)據(jù)庫表。Hive完成的映射關(guān)系包括,SQL中的表、字段映射為HDFS中的目錄、文件。Hive實現(xiàn)這種映射依靠的是Hive解析器,Hive解析器能夠?qū)⒂脩舻腟Ql語句解析成相應的MapReduce程序??傊?,Hive借助Hadoop的MapReduce程序完成計算;借助Hadoop的HDFS進行數(shù)據(jù)存儲;依靠MySql進行元數(shù)據(jù)的存儲。

      Hive具有完整的SQL查詢功能,用戶可以使用類似SQL的語言進行數(shù)據(jù)查詢,對于熟悉MapReduce的程序員,也可以開發(fā)用戶自定義的mapper程序和 reducer程序來處理復雜的分析工作。雖然Hive具有類SQL的查詢語句HQL,能夠完成數(shù)據(jù)查詢功能,但從體系結(jié)構(gòu)、功能等方面來看,它都不是數(shù)據(jù)庫。

      使用Hive的過程中,用戶只需要熟悉SQL語言就可以完成大數(shù)據(jù)分析工作,這樣就可以讓一些不擅長基于Java的開發(fā),編程基礎一般,不熟悉MapReduce開發(fā)的用戶,能夠在HDFS大規(guī)模數(shù)據(jù)集上利用SQL語言進行查詢、匯總、分析數(shù)據(jù)。

      1 Hive的優(yōu)點及系統(tǒng)架構(gòu)

      Hive使用廣泛,它具有如下優(yōu)點。

      (1) Hive支持標準的SQL語法,省去了用戶編寫MapReduce程序的過程,完成相同的業(yè)務邏輯Hive只需要寫短短幾行Sql命令就可以完成需要的功能,大大減少了公司的開發(fā)成本。

      (2)由于Hive的操作接口采用了類似于SQL的語法,這樣就提供了快速開發(fā)的便利,容易學習、容易使用。避免去編寫大量的MapReduce程序,減小開發(fā)人員的時間和學習成本。

      (3)Hive是為大數(shù)據(jù)批量處理而生的,Hive的出現(xiàn)也解決傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在大數(shù)據(jù)處理上的瓶頸。

      Hive的優(yōu)勢和它的系統(tǒng)架構(gòu)是分不開的,hive的體系結(jié)構(gòu)包括:

      (1)用戶接口:用戶接口包括shell終端命令行;JDBC/ODBC ;WebUI。

      (2)Hive解析器:Hive解析器的核心功能就是根據(jù)用戶編寫的Sql語法匹配出相應的MapReduce模板,形成對應的MapReduce job進行執(zhí)行。

      (3)Hive元數(shù)據(jù)庫(MetaStore):Hive將表中的元數(shù)據(jù)信息存儲在數(shù)據(jù)庫中, Hive中的元數(shù)據(jù)信息包括表的名字、表的列和分區(qū)、表的屬性、表的數(shù)據(jù)所在的目錄等。實際工作中配置中使用Mysql存儲元數(shù)據(jù)信息。Hive中的解析器在運行的時候會讀取元數(shù)據(jù)庫MetaStore中的相關(guān)信息。

      (4)Hadoop:Hive這個數(shù)據(jù)倉庫的數(shù)據(jù)是存儲在Hadoop的HDFS中,業(yè)務實際分析計算是利用Hadoop的MapReduce完成的。

      2 HQL基本應用

      Hive定義了一套自己的SQL,簡稱HQL,它與關(guān)系型數(shù)據(jù)庫的SQL略有不同,但支持了絕大多數(shù)的語句如:DDL、DML以及常見的聚合函數(shù)、連接查詢、條件查詢。

      (1)DDL操作(數(shù)據(jù)定義語言)包括:Create、Alter、Show、Drop等。

      create database-創(chuàng)建新數(shù)據(jù)庫

      alter database -修改數(shù)據(jù)庫

      drop database -刪除數(shù)據(jù)庫

      create table -創(chuàng)建新表

      alter table -變更(改變)數(shù)據(jù)庫表

      drop table -刪除表

      create index -創(chuàng)建索引(搜索鍵)

      drop index -刪除索引

      show table -查看表

      (2)DML操作(數(shù)據(jù)操作語言)包括:Load 、Insert、Update、Delete、Merge。

      load data -加載數(shù)據(jù),包括insert into - 插入數(shù)據(jù)和insert overwrite - 覆蓋數(shù)據(jù)

      update table -更新表

      delete from table where id = 1;表示刪除表中ID等于1的數(shù)據(jù)(delete在Hive 0.14開始可用,并且只能在支持ACID的表上執(zhí)行)。

      merge合并語句(MERGE在Hive 2.2開始可用,并且只能在支持ACID的表上執(zhí)行)。

      3 基于Hive完成離線數(shù)據(jù)分析

      我們分析的數(shù)據(jù)來源是某商品的用戶評論數(shù)據(jù),該數(shù)據(jù)以文件的形式存儲在hdfs中,啟動Hadoop和Hive之后,在Hive中創(chuàng)建一個數(shù)據(jù)庫和數(shù)據(jù)表,將清洗后的數(shù)據(jù)文件導入該表中,用戶只需要依據(jù)實際的業(yè)務需要編寫HQL語句,接下來Hive框架會把HQL語句解析成相應的MapReduce程序,借助MapReduce計算框架運行job,便可以獲得期望的分析結(jié)果。

      具體操作過程如下:

      (1)在hive中創(chuàng)建commentdata數(shù)據(jù)倉庫,并切換到commentdata下。

      create database commentdata;

      use commentdata;

      (2)在hive中創(chuàng)建一張表,用于存放清洗后的數(shù)據(jù),表名為comment,Hive創(chuàng)建comment內(nèi)部表的語句如下:

      create table comment(

      productid string,

      commentcount int,

      goodcount int,

      generalcount int,

      poorcount int,

      goodrateshow float,

      generalrateshow float,

      poorrateshow float,

      guid string,

      content string,

      creationtime string,

      score int,

      nickname string,

      userlevelname string,

      userclientshow string,

      ismobile string,

      days int

      )row format delimited fields terminated by \\t';

      (3)表設計好以后,在Hive端使用load命令,將清洗后的數(shù)據(jù)文件part-r-00000導入Hive表中。

      (4)編寫HQL語句,分析用戶使用移動端購買還是PC端購買,及移動端和PC端的用戶比例。

      (5)編寫HQL語句,分析用戶評論周期,分析收到貨后,用戶一般多久進行評論。

      (6)編寫HQL語句,分析會員級別,用來判斷購買此商品的用戶級別。

      4 結(jié)論

      Hive核心功能是一個SQL解析引擎,能夠?qū)⒂脩艟帉懙腟QL語句轉(zhuǎn)化為對應的MapReduce程序,Hive本身并不存儲和計算數(shù)據(jù),它依賴Hadoop的HDFS完成大數(shù)據(jù)的存儲,依賴MapReduce進行計算,并且借助MySql來存儲元數(shù)據(jù)。

      參考文獻

      [1]林子雨.大數(shù)據(jù)技術(shù)原理與應用[M].北京:人民郵電出版社,2017.

      [2]蔣煥亮.基于Hive的日志倉庫構(gòu)建研究[J].計算機時代,2016,(11).

      [3]王康,陳海光,李東靜,等.基于Hive的性能優(yōu)化研究[J].上海師范大學學報,2017,(8).

      3003500338205

      密云县| 昌江| 大悟县| 花莲市| 宁津县| 贡嘎县| 绥化市| 灯塔市| 华坪县| 靖安县| 门头沟区| 嘉荫县| 亳州市| 十堰市| 理塘县| 洱源县| 班玛县| 石嘴山市| 徐水县| 榆社县| 安康市| 昭苏县| 伊吾县| 南雄市| 鲁山县| 腾冲县| 黔江区| 台前县| 海安县| 大洼县| 桑植县| 泗洪县| 化德县| 中西区| 桃源县| 内黄县| 武乡县| 大理市| 邓州市| 镇沅| 隆安县|