欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Impala的特點有哪些

本篇內(nèi)容主要講解“Impala的特點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Impala的特點有哪些”吧!

創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為灌南企業(yè)提供專業(yè)的網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,灌南網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

Impala 是參照google 的新三篇論文Dremel(大批量數(shù)據(jù)查詢工具)的開源實現(xiàn),功能類似shark(依賴于hive)和Drill(apache),impala 是clouder 公司主導開發(fā)并開源,基于hive 并使用內(nèi)存進行計算,兼顧數(shù)據(jù)倉庫,具有實時,批處理,多并發(fā)等優(yōu)點。是使用cdh 的首選PB 級大數(shù)據(jù)實時查詢分析引擎。(Impala 依賴cdh 是完全沒有問題的,官網(wǎng)說可以單獨運行,但是他單獨運行會出現(xiàn)好多的問題)

Impala與Shark、sparkSQL、Drill等的簡單比較
Impala的特點有哪些

  • Impala起步較早,目前能夠商用的為數(shù)不多的大數(shù)據(jù)查詢引擎之一;

  • CDH5不支持sparkSQL;

  • Drill起步晚,尚不成熟;

  • shark功能和架構(gòu)上同Impala相似,該項目已經(jīng)停止開發(fā)。

Impala特點

  • 基于內(nèi)存進行計算,能夠?qū)B級數(shù)據(jù)進行交互式實時查詢/分析;

  • 無需轉(zhuǎn)換為MR,直接讀取HDFS數(shù)據(jù)

  • C++編寫,LLVM統(tǒng)一編譯運行

  • 兼容HiveSQL

  • 具有數(shù)據(jù)倉庫的特性,可對hive數(shù)據(jù)直接做數(shù)據(jù)分析

  • 支持Data Local

  • 支持列式存儲

  • 支持JDBC/ODBC遠程訪問

  • 支持sql92標準,并具有自己的解析器和優(yōu)化器Impala的特點有哪些

    Impala的特點有哪些

    Impala核心組件

    對于impala 來講,是沒有主節(jié)點的,而要理解主節(jié)點,impala statestore 和catalog server兩個角色,就具備集群調(diào)節(jié)的功能,根據(jù)以上的特點,對impala 進行配置優(yōu)化配置impala 內(nèi)存,每一個deamon 都需要配置內(nèi)存,因為真正做查詢工作的就是deamon 所在的節(jié)點,所以impala 的總內(nèi)存,就是所有deamon 節(jié)點的內(nèi)存之和;如果要在哪臺機器上面匯總,就需要在那一臺機器上的內(nèi)存調(diào)大一些;我們了解到的,真正提供查詢的是deamon,那么我們連接哪一臺呢?Impala,你可以連接其中deamon 任何一個都行,可以根據(jù)自己的需求來,(1)當你查詢的量相對大的時候,你就連接內(nèi)存大的機器,(2)當每臺機器都適合查詢的情況下也可以隨機找一臺機器,自己寫一個輪詢或者權(quán)重算法;解決高并發(fā)問題

    • Statestore Daemon

      • 負責收集分布在集群中各個impalad 進程的資源信息,各節(jié)點健康狀況、同步節(jié)點信息.
        負責query 的調(diào)度.(并非絕對,倘若他存在,那就幫忙,若不存在,那就不用他)
        對于一個正常運轉(zhuǎn)的集群,并不是一個關(guān)鍵進程.

    • Catalog Daemon(1.2 版本之后才加入)

      • 把impala表的metadata分發(fā)到各個impalad 中,說他是基于hive 的,所以就需要metadata數(shù)據(jù)分到impalad 中,以前沒有此進程,就是手動來進行同步的。雖然之后加入了,但是也沒有那么智能,并不是保證所有的數(shù)據(jù)都能同步,比如你插入一些數(shù)據(jù),他可以把數(shù)據(jù)發(fā)到其他節(jié)點,但是比如創(chuàng)建表ddl 語句,建議去手動做一下。接收來自statestore 的所有請求,當impala deamon節(jié)點插入或者查詢數(shù)據(jù)時候(數(shù)據(jù)改變的時候),他把自己的操作結(jié)果匯報給state deamon,然后state store 請求catelog deamon,告知重新更新元數(shù)據(jù)信息給impalad 中,所以catalog deamon 與statedeamon 放到一臺機器上,而且不建議在此機器上再去安裝impala deamon 進程,避免造成提供查詢造成集群管理出問題

    • Impala Daemon(主要來提供查詢)

      • 主要接收查詢請求,接收client、hue、jdbc 或者odbc 請求、query 執(zhí)行并返回給中心協(xié)調(diào)節(jié)點(對應(yīng)的服務(wù)實例是impalad)子節(jié)點上的守護進程,負責向statestore 保持通信,匯報工作Impala的特點有哪些

        • Client(shell,jdbc,odbc)發(fā)送請求到impalad 進程上,發(fā)送節(jié)點可以是隨機的,impalad 之間,也有相互通信

        • Statestore 和catelog 劃到同一節(jié)點,目的就是這兩個進程在協(xié)調(diào)工作時候,避免因網(wǎng)絡(luò)問題造成失敗

        • Hive metastore 是比較重要的,此時statestore 和catelog 通信,將數(shù)據(jù)同步到其他節(jié)點

        • Impalad 最好與hdfsDataNode 在同一節(jié)點,這樣能更快速的查詢計算,然后返回結(jié)果即可(理想狀態(tài)的就是數(shù)據(jù)本地化)

          • Query planner(查詢解析器)

          • ii. Query coordinator(中心協(xié)調(diào)節(jié)點)

          • Query executor(查詢執(zhí)行器)

          • 將我們的字符串sql 語句解釋成為執(zhí)行計劃,

          • 由這個組件來指定來查詢的主節(jié)點(頭),指定好之后通知其他節(jié)點我的主節(jié)點作用,待你們查詢完成之后的結(jié)果,返回給頭節(jié)點

          • 而做查詢工作的是就是executor

          • Impalad 里面包含三個組件

        impala 外部shell

        • -h(--help)幫助-------查看所有命令的幫助文檔

        • -r(--refresh_after_connect)刷新所有元數(shù)據(jù)(當hive 創(chuàng)建數(shù)據(jù)的時候,你需要刷新到,才能看到hive 元數(shù)據(jù)的改變)整體刷新*---全量刷新,萬不得已才能用;不建議定時去刷新hive 源數(shù)據(jù),數(shù)據(jù)量太大時候,一個刷新,很有可能會掛掉;創(chuàng)建hive 表,然后刷新。

        • -B(--delimited)去格式化輸出* 大量數(shù)據(jù)加入格式化,性能受到影響

          • --output_delimiter=character 指定分隔符與其他命令整合

          • --print_header 打印列名(去格式化,但是顯示列名字)

        • -v 查看對應(yīng)版本(會有坑)

          • Impala 的查詢會以最新版本為準,如果版本不一致,會造成查詢結(jié)果失敗

          • mpala-shell 與impala 的版本查看,必須版本一致

        • -f 執(zhí)行查詢文件*

          select name,count(name) as name_count from person group by name--創(chuàng)建包含該sql的文件

           

          • --query_file 指定查詢文件(建議sql 語句寫到一行,因為shell 會讀取文件一行一行的命令)

          • Impala-shell --query_file=xxx

        • -i 連接到對應(yīng)的impalad

          • --impalad 指定impalad 去執(zhí)行任務(wù)

          • --fe_port 指定備用端口(通常不用去指定)

        • -o 保存執(zhí)行結(jié)果到文件***

          • --output_file 指定輸出文件名

        • 組合應(yīng)用:

          impala-shell -B --Print_header -f test.sss -o result.txt
          Impala-shell -B -f test.xxx -o result.txt

          非重要的shell

          • Impala-shell --user root

          • Impala-shell -d database(database 指定數(shù)據(jù)庫名稱)

          • --quiet 不顯示多余信息

            impala-shell -q "select * from impala.rstest limit 5">

             

          • --user 指定用戶執(zhí)行shell 命令

          • --ssl 通過ssl 驗證方式方式執(zhí)行

          • --ca_cert 指定第三方用戶證書

          • --config_file 臨時指定配置文件

          • -u 執(zhí)行某一用戶運行impala-shell

          • -p 顯示執(zhí)行計劃

          • -q 不進入impala-shell 執(zhí)行查詢

          • -c 忽略錯誤語句繼續(xù)執(zhí)行

          • -d 指定進入某一個數(shù)據(jù)庫

          • mpala-shell 命令用法:

        Impala-shell(內(nèi)部shell)

        • 幫助選項

          • help

        • 連接到某個impalad 實例

          • connect <hostname>

        • 刷新某個表元數(shù)據(jù)

          • *refresh <tablename> //屬于增量刷新

        • 刷新元數(shù)據(jù)庫

          • *invalidate metadata //全量刷新,性能消耗較大

        • 顯示一個查詢的執(zhí)行計劃及各步驟信息

          • *explain <sql> //可以設(shè)置set explain_level 四個級別0開始,一般用2級別即可,查看執(zhí)行計劃等詳細信息

        • 不退出impala-shell 執(zhí)行操作系統(tǒng)命令

          • shell <shell>

          • shell ls

        • 顯示查詢底層信息(底層執(zhí)行計劃,用于性能優(yōu)化)

          • *profile //在查詢完成之后執(zhí)行

        • 執(zhí)行計劃存儲下來分析

          impala-shell -q "select name from person" -p >> impalalog.123

        • 查看StateStore(監(jiān)控管理)

          • – http://cdh2:25020/

             

        • 查看Catalog(監(jiān)控管理)

          • – http://cdh3:25010/

             

        Impala 存儲與分區(qū)

        • 需要注意的是impala 除了全部支持hive 的文件類型,自己還支持parquet 這樣的文件類型,當然了,這個類型并不是impala 自己獨有的,比如spark sql,shark sql 都支持這樣的類型;Rcfile 本身快一些,但是不如text 才做起來更方便Impala的特點有哪些

        • 壓縮方式

        • 添加分區(qū)方式

          --1、partitioned by 創(chuàng)建表時,添加該字段指定分區(qū)列表
          --2、使用alter table 進行分區(qū)的添加和刪除操作
          ? create table t_person(id int, name string, age int) partitioned by (type string);
          ? alter table t_person add partition (type='man');
          ? alter table t_person drop partition (type='man');
          ? alter table t_person drop partition (sex='man',type='boss');

        • 分區(qū)內(nèi)添加數(shù)據(jù)

          insert into t_person partition (type='boss') values (1,'zhangsan',18),(2,'lisi',23)
          
          insert into t_person partition (type='coder') values
          (3,'wangwu',22),(4,'zhaoliu’,28),(5,'tianqi',24)

        • 查詢指定分區(qū)數(shù)據(jù)

          select id,name from t_person where type='coder'

           

        impala-SQL、JDBC、性能優(yōu)化

        • 加載數(shù)據(jù):

          • insert 語句:插入數(shù)據(jù)時每條數(shù)據(jù)產(chǎn)生一個數(shù)據(jù)文件,不建議用此方式加載批量數(shù)據(jù)

          • load data 方式:在進行批量插入時使用這種方式比較合適

          • 來自中間表:此種方式使用于從一個小文件較多的大表中讀取文件并寫入新的表生產(chǎn)少量的數(shù)據(jù)文件。也可以通過此種方式進行格式轉(zhuǎn)換。

        • 空值處理:

        • impala 將“\n”表示為NULL,在結(jié)合sqoop 使用是注意做相應(yīng)的空字段過濾,也可以使用以下方式進行處理:

          alter table name set tblproperties (“serialization.null.format”=“null”)

           

        • 配置:

          – impala.driver=org.apache.hive.jdbc.HiveDriver
          – impala.url=jdbc:hive2://node2:21050/;auth=noSasl
          – impala.username=
          – impala.password=

           

        • 盡量使用PreparedStatement執(zhí)行SQL語句:

          • 性能上PreparedStatement要好于Statement

          • Statement存在查詢不出數(shù)據(jù)的情況

        • 執(zhí)行計劃

        • – 查詢sql執(zhí)行之前,先對該sql做一個分析,列出需要完成這一項查詢的
          詳細方案(命令:explain sql、profile)Impala的特點有哪些

        總結(jié):

        1、SQL優(yōu)化,使用之前調(diào)用執(zhí)行計劃
        2、選擇合適的文件格式進行存儲
        3、避免產(chǎn)生很多小文件(如果有其他程序產(chǎn)生的小文件,可以使用中間
        表)
        4、使用合適的分區(qū)技術(shù),根據(jù)分區(qū)粒度測算
        5、使用compute stats進行表信息搜集
        6、網(wǎng)絡(luò)io的優(yōu)化:
            a.避免把整個數(shù)據(jù)發(fā)送到客戶端
            b.盡可能的做條件過濾
            c.使用limit字句
            d.輸出文件時,避免使用美化輸出
        7、使用profile輸出底層信息計劃,在做相應(yīng)環(huán)境優(yōu)化

        Impala SQL VS HiveQL

        • 支持數(shù)據(jù)類型

          • INT

          • TINYINT

          • SMALLINT

          • BIGINT

          • BOOLEAN

          • CHAR

          • VARCHAR

          • STRING

          • FLOAT

          • DOUBLE

          • REAL

          • DECIMAL

          • TIMESTAMP

        • CDH5.5版本以后才支持一下類型

          • ARRAY

          • MAP

          • STRUCT

          • Complex

        • 此外,Impala不支持HiveQL以下特性:

          • covar_pop, covar_samp, corr, percentile,percentile_approx, histogram_numeric, collect_set

          • Impala僅支持:AVG,COUNT,MAX,MIN,SUM

          • – 多Distinct查詢

          • – HDF、UDAF

          • – 可擴展機制,例如:TRANSFORM、自定義文件格式、自定義SerDes

          • – XML、JSON函數(shù)

          • – 某些聚合函數(shù):

        Impala SQL(和Hive類似)

        • 視圖

          • 不能向impala的視圖進行插入操作

          • insert 表可以來自視圖

          • – 創(chuàng)建視圖:create view v1 as select count(id) as total from tab_3 ;

          • – 查詢視圖:select * from v1;

          • – 查看視圖定義:describe formatted v1

        到此,相信大家對“Impala的特點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

        網(wǎng)站欄目:Impala的特點有哪些
        標題鏈接:http://chinadenli.net/article18/ihcigp.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、移動網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、外貿(mào)建站

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站