亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Cloudera impala簡單介紹及安裝具體解釋

系統(tǒng) 2835 0
一、Impala簡單介紹

Cloudera Impala對你存儲在Apache Hadoop在HDFS,HBase的數(shù)據(jù)提供直接查詢互動的SQL。除了像Hive使用同樣的統(tǒng)一存儲平臺,Impala也使用同樣的元數(shù)據(jù),SQL語法(Hive SQL),ODBC驅動程序和用戶界面(Hue Beeswax)。Impala還提供了一個熟悉的面向批量或實時查詢和統(tǒng)一平臺。

二、Impala安裝
1.安裝要求
(1)軟件要求

  • ??Red Hat Enterprise Linux (RHEL)/CentOS 6.2 (64-bit)
  • ??CDH 4.1.0 or later
  • ??Hive
  • ??MySQL

注意:Impala不支持在Debian/Ubuntu, SuSE, RHEL/CentOS 5.7系統(tǒng)中安裝。

(2)硬件要求

在Join查詢過程中須要將數(shù)據(jù)集載入內存中進行計算,因此對安裝Impalad的內存要求較高。

2、安裝準備

(1)操作系統(tǒng)版本號查看

>more/etc/issue

CentOSrelease 6.2 (Final)

Kernel \ron an \m

(2)機器準備

10.28.169.112mr5

10.28.169.113mr6

10.28.169.114mr7

10.28.169.115mr8

各機器安裝角色

mr5:NameNode、ResourceManager、SecondaryNameNode、Hive、impala-state-store

mr6、mr7、mr8:DataNode、NodeManager、impalad

(3)用戶準備

在各個機器上新建用戶hadoop,并打通ssh

(4)軟件準備

到cloudera官網(wǎng)下載:

Hadoop:

hadoop-2.0.0-cdh4.1.2.tar.gz

hive:

hive-0.9.0-cdh4.1.2.tar.gz

impala:

impala-0.3-1.p0.366.el6.x86_64.rpm

impala-debuginfo-0.3-1.p0.366.el6.x86_64.rpm

impala-server-0.3-1.p0.366.el6.x86_64.rpm

impala-shell-0.3-1.p0.366.el6.x86_64.rpm

impala依賴包下載:

bigtop-utils-0.4( http://beta.cloudera.com/impala/redhat/6/x86_64/impala/0/RPMS/noarch/ )

其它依賴包下載地址: http://mirror.bit.edu.cn/centos/6.3/os/x86_64/Packages/

4、hadoop-2.0.0-cdh4.1.2安裝

(1)安裝包準備

hadoop用戶登錄到mr5機器,將hadoop-2.0.0-cdh4.1.2.tar.gz上傳到/home/hadoop/文件夾下并解壓:

? ? tar zxvf hadoop-2.0.0-cdh4.1.2.tar.gz

(2)配置環(huán)境變量

改動mr5機器hadoop用戶主文件夾/home/hadoop/下的.bash_profile環(huán)境變量:

exportJAVA_HOME=/usr/jdk1.6.0_30

exportJAVA_BIN=${JAVA_HOME}/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export??JAVA_OPTS="-Djava.library.path=/usr/local/lib-server -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Djava.awt.headless=true-Dsun.net.client.defaultReadTimeout=600

00-Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300-Dsun.net.inetaddr.ttl=300"

exportHADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.1.2

exportHADOOP_PREFIX=$HADOOP_HOME

exportHADOOP_MAPRED_HOME=${HADOOP_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_HOME}

exportHADOOP_YARN_HOME=${HADOOP_HOME}

export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

exportJAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS

exportHADOOP_LIB=${HADOOP_HOME}/lib

exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

(3)改動配置文件

在機器mr5上hadoop用戶登錄改動hadoop的配置文件(配置文件文件夾:hadoop-2.0.0-cdh4.1.2/etc/hadoop)

(1)、slaves :

加入下面節(jié)點

mr6

mr7

mr8

(2)、hadoop-env.sh :

添加下面環(huán)境變量

exportJAVA_HOME=/usr/jdk1.6.0_30

exportHADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.1.2

exportHADOOP_PREFIX=${HADOOP_HOME}

export HADOOP_MAPRED_HOME=${HADOOP_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_HOME}

exportHADOOP_YARN_HOME=${HADOOP_HOME}

exportPATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

exportJAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS

exportHADOOP_LIB=${HADOOP_HOME}/lib

exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

(3)、core-site.xml :

??fs.default.name

??hdfs://mr5:9000

??The name of the defaultfile system.Either the literal string "local" or a host:port forNDFS.

??true

io.native.lib.available

??true

??hadoop.tmp.dir

??/home/hadoop/tmp

??A base for other temporarydirectories.

(4)、hdfs-site.xml :

dfs.namenode.name.dir

??file:/home/hadoop/dfsdata/name

??Determines where on thelocal filesystem the DFS name node should store the name table.If this is acomma-delimited list of directories,then name table is replicated in all of thedirectories,for redundancy.

??true

dfs.datanode.data.dir

file:/home/hadoop/dfsdata/data

??Determines where on thelocal filesystem an DFS data node should store its blocks.If this is acomma-delimited list of directories,then data will be stored in all nameddirectories,typically on different devices.Directories that do not exist areignored.

??

??true

??dfs.replication

??3

??dfs.permission

??false

(5)、mapred-site.xml:

mapreduce.framework.name

??yarn

mapreduce.job.tracker

??hdfs://mr5:9001

??true

mapreduce.task.io.sort.mb

??512

mapreduce.task.io.sort.factor

??100

mapreduce.reduce.shuffle.parallelcopies

??50

??mapreduce.cluster.temp.dir

file:/home/hadoop/mapreddata/system

??true

mapreduce.cluster.local.dir

file:/home/hadoop/mapreddata/local

??true

(6)、yarn-env.sh :

添加下面環(huán)境變量

exportJAVA_HOME=/usr/jdk1.6.0_30

exportHADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.1.2

exportHADOOP_PREFIX=${HADOOP_HOME}

exportHADOOP_MAPRED_HOME=${HADOOP_HOME}

exportHADOOP_COMMON_HOME=${HADOOP_HOME}

exportHADOOP_HDFS_HOME=${HADOOP_HOME}

exportHADOOP_YARN_HOME=${HADOOP_HOME}

exportPATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

exportJAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS

exportHADOOP_LIB=${HADOOP_HOME}/lib

exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

(7)、yarn-site.xml:


yarn.resourcemanager.address

mr5:8080

yarn.resourcemanager.scheduler.address

mr5:8081

yarn.resourcemanager.resource-tracker.address

mr5:8082

yarn.nodemanager.aux-services

mapreduce.shuffle

yarn.nodemanager.aux-services.mapreduce.shuffle.class

org.apache.hadoop.mapred.ShuffleHandler

yarn.nodemanager.local-dirs

file:/home/hadoop/nmdata/local

thelocal directories used by the nodemanager

yarn.nodemanager.log-dirs

file:/home/hadoop/nmdata/log

thedirectories used by Nodemanagers as log directories

(4)復制到其它節(jié)點

(1)、在mr5上配置完第2步和第3步后,壓縮hadoop-2.0.0-cdh4.1.2

rm hadoop-2.0.0-cdh4.1.2.tar.gz

tar??zcvf hadoop-2.0.0-cdh4.1.2.tar.gz??hadoop-2.0.0-cdh4.1.2

然后將hadoop-2.0.0-cdh4.1.2.tar.gz遠程復制到mr6、mr7、mr8機器上

scp/home/hadoop/hadoop-2.0.0-cdh4.1.2.tar.gz hadoop@mr6:/home/hadoop/

scp/home/hadoop/hadoop-2.0.0-cdh4.1.2.tar.gz hadoop@mr7:/home/hadoop/

scp/home/hadoop/hadoop-2.0.0-cdh4.1.2.tar.gz hadoop@mr8:/home/hadoop/

(2)、將mr5機器上hadoop用戶的配置環(huán)境的文件.bash_profile遠程復制到mr6、mr7、mr8機器上

scp/home/hadoop/.bash_profile hadoop@mr6:/home/hadoop/

scp/home/hadoop/.bash_profile hadoop@mr7:/home/hadoop/

scp/home/hadoop/.bash_profile hadoop@mr8:/home/hadoop/

拷貝完畢后,在mr5、mr6、mr7、mr8機器的/home/hadoop/文件夾下運行

source.bash_profile

使得環(huán)境變量生效

(5)啟動hdfs和yarn

以上步驟都運行完畢后,用hadoop用戶登錄到mr5機器依次運行:

hdfsnamenode -format

start-dfs.sh

start-yarn.sh

通過jps命令查看:

mr5成功啟動了NameNode、ResourceManager、SecondaryNameNode進程;

mr6、mr7、mr8成功啟動了DataNode、NodeManager進程。

(6)驗證成功狀態(tài)

通過下面方式查看節(jié)點的健康狀態(tài)和作業(yè)的運行情況:

瀏覽器訪問(本地須要配置hosts)

http://mr5:50070/dfshealth.jsp

http://mr5:8088/cluster

5、hive-0.9.0-cdh4.1.2安裝

(1)安裝包準備

使用hadoop用戶上傳hive-0.9.0-cdh4.1.2到mr5機器的/home/hadoop/文件夾下并解壓:

? ???tar zxvf hive-0.9.0-cdh4.1.2

(2)配置環(huán)境變量

在.bash_profile加入環(huán)境變量:

exportHIVE_HOME=/home/hadoop/hive-0.9.0-cdh4.1.2

exportPATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${HIVE_HOME}/bin

exportHIVE_CONF_DIR=$HIVE_HOME/conf

exportHIVE_LIB=$HIVE_HOME/lib

加入完后運行下面命令使得環(huán)境變量生效:

..bash_profile

(3)改動配置文件

改動hive配置文件(配置文件文件夾:hive-0.9.0-cdh4.1.2/conf/)

在hive-0.9.0-cdh4.1.2/conf/文件夾下新建hive-site.xml文件,并加入下面配置信息:

? ?? ?

? ?? ?? ?? ?? ?hive.metastore.local

? ?? ?? ?? ?? ?true

? ?? ?

? ?? ?? ?? ?? ?javax.jdo.option.ConnectionURL

? ?? ?? ?? ?? ?jdbc:mysql://10.28.169.61:3306/hive_impala?createDatabaseIfNotExist=true

? ?? ?

? ?? ?? ?? ?? ?javax.jdo.option.ConnectionDriverName

? ?? ?? ?? ?? ?com.mysql.jdbc.Driver

? ?? ?

? ?? ?

? ?? ?? ?? ?? ? javax.jdo.option.ConnectionUserName

? ?? ?? ?? ?? ? hadoop

? ?? ?

? ?? ?? ?? ?? ? javax.jdo.option.ConnectionPassword

? ?? ?? ?? ?? ?123456

? ?

? ?? ?? ?? ?? ? hive.security.authorization.enabled

? ?? ?? ?? ?? ? false

? ?? ?

? ?? ?? ?? ?? ? hive.security.authorization.createtable.owner.grants

? ?? ?? ?? ?? ? ALL

? ?? ?

? ?? ?? ?? ?? ? hive.querylog.location

? ?? ?? ?? ?? ? ${user.home}/hive-logs/querylog

? ?? ?

(4)驗證成功狀態(tài)

完畢以上步驟之后,驗證hive安裝是否成功

在mr5命令行運行hive,并輸入”show tables;”,出現(xiàn)下面提示,說明hive成功安裝:

>hive

hive>show tables;

OK

Time taken:18.952 seconds

hive>

6、impala安裝

說明:

(1)、下面1、2、3、4步是在root用戶分別在mr5、mr6、mr7、mr8下運行

(2)、下面第5步是在hadoop用戶下運行

(1)安裝依賴包:

安裝mysql-connector-java:

? ? yum install mysql-connector-java

安裝bigtop

rpm -ivh bigtop-utils-0.4+300-1.cdh4.0.1.p0.1.el6.noarch.rpm

安裝libevent

rpm -ivhlibevent-1.4.13-4.el6.x86_64.rpm

如存在其它須要安裝的依賴包,能夠到下面鏈接:

http://mirror.bit.edu.cn/centos/6.3/os/x86_64/Packages/ 進行下載。

(2)安裝impala的rpm,分別運行

rpm -ivh impala-0.3-1.p0.366.el6.x86_64.rpm

rpm -ivh impala-server-0.3-1.p0.366.el6.x86_64.rpm

rpm -ivh impala-debuginfo-0.3-1.p0.366.el6.x86_64.rpm

rpm -ivh impala-shell-0.3-1.p0.366.el6.x86_64.rpm

(3)找到impala的安裝文件夾

完畢第1步和第2步后,通過下面命令:

find / -name impala

輸出:

/usr/lib/debug/usr/lib/impala

/usr/lib/impala

/var/run/impala

/var/log/impala

/var/lib/alternatives/impala

/etc/default/impala

/etc/alternatives/impala

找到impala的安裝文件夾:/usr/lib/impala

(4)配置Impala

在Impala安裝目錄/usr/lib/impala下創(chuàng)建conf,將hadoop中的conf目錄下的core-site.xml、hdfs-site.xml、hive中的conf目錄下的hive-site.xml拷貝到當中。

在core-site.xml文件里加入例如以下內容:

dfs.client.read.shortcircuit

true

dfs.client.read.shortcircuit.skip.checksum

false

在hadoop和impala的hdfs-site.xml文件里加入例如以下內容并重新啟動hadoop和impala:

? ?? ?? ?? ?

dfs.datanode.data.dir.perm

755

dfs.block.local-path-access.user

hadoop

dfs.datanode.hdfs-blocks-metadata.enabled

true

(5)啟動服務

(1)、在mr5啟動Impala state store,命令例如以下:

>GLOG_v=1 nohup statestored-state_store_port=24000 &? ?? ?? ?? ?? ?? ?? ?

假設statestore正常啟動,能夠在/tmp/statestored.INFO查看。假設出現(xiàn)異常,能夠查看/tmp/statestored.ERROR定位錯誤信息。

(2)、在mr6、mr7、mr8啟動Impalad,命令例如以下:

mr6:

>GLOG_v=1 nohup impalad -state_store_host=mr5-nn=mr5 -nn_port=9000 -hostname=mr6 -ipaddress=10.28.169.113 &

mr7:? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?

>GLOG_v=1 nohup impalad -state_store_host=mr5-nn=mr5 -nn_port=9000 -hostname=mr7 -ipaddress=10.28.169.114 &

mr8:? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?

>GLOG_v=1 nohup impalad -state_store_host=mr5-nn=mr5 -nn_port=9000 -hostname=mr8 -ipaddress=10.28.169.115 &? ?? ?

? ?? ? 假設impalad正常啟動,能夠在/tmp/impalad.INFO查看。假設出現(xiàn)異常,能夠查看/tmp/ impalad.ERROR定位錯誤信息。

(6)使用shell

使用impala-shell啟動Impala Shell,分別連接各Impalad主機(mr6、mr7、mr8),刷新元數(shù)據(jù),之后就能夠運行shell命令。相關的命令例如以下(能夠在隨意節(jié)點運行):

>impala-shell

[Not connected]> connect mr6:21000

[mr6:21000] >refresh

[mr6:21000]>connectmr7:21000

[mr7:21000]>refresh

[mr7:21000]>connectmr8:21000

[mr8:21000]>refresh

(7)驗證成功狀態(tài)

使用impala-shell啟動Impala Shell,分別連接各Impalad主機,刷新元數(shù)據(jù),之后就能夠運行shell命令。相關的命令例如以下(能夠在隨意節(jié)點運行):

>impala-shell

[Not connected]> connect mr6:21000

[mr6:21000]>refresh

[mr6:21000] >show databases

default

[mr6:21000] >

出現(xiàn)以上提示信息,說明成功安裝。


三、Impala的使用

1、命令行功能
命令
描寫敘述
備注
connect 連接Impala節(jié)點 connect mr8:21000
describe 查看表結構 describe tab1
explain 解析SQL語句 explain select * from tab..
help 幫助命令,查看命令的說明 help connect
insert 插入數(shù)據(jù)命令 insert overwrite
insert into
quit 退出命令 ?
refresh 刷新源數(shù)據(jù)庫 ?
select 查詢語句命令 ?
set 設置impala查詢選項 ?
shell 運行本地linux命令 ?
show 查看表和數(shù)據(jù)庫命令 ?
use 選擇使用數(shù)據(jù)庫 ?
version 查看Impala版本號 ?


set命令參數(shù)說明:

參數(shù)
默認值
PARTITION_AGG false
NUM_SCANNER_THREADS 0
MAX_IO_BUFFERS 0
MAX_SCAN_RANGE_LENGTH 0
NUM_NODES 0
DISABLE_CODEGEN false
MAX_ERRORS 0
ABORT_ON_ERROR false
BATCH_SIZE 0
ALLOW_UNSUPPORTED_FORMATS false

2、當前支持的語言元素

Impala的查詢語言是基于Hive的HiveQL,眼下impala不支持針對表和分區(qū)的DDL,可是支持DML。事實上大部分的HiveQL不須要改動就能夠在impala上面運行的,包含JOIN, AGGREGATE, DISTINCT, UNION ALL, ORDER BY, LIMIT 和subquery等等。

(1)、select

l??數(shù)據(jù)類型:boolean, tinyint, smallint, int, bigint, float, double, timestamp, string

l??DISTINCT

l??FROM 子句支持子查詢.

l??WHERE, GROUP BY, HAVING

l??ORDER BY,可是須要和limit一起使用

l??JOINS: Left、 right、 semi、 full and outer

l??UNION ALL

l??LIMIT

l??External tables

l??關系運算符:>、<、=等

l??算術運算符:加法、減法等

l??邏輯boolean操作符:and、or、not,可是impala不支持相應的&&、||、!

l??COUNT, SUM, CAST, LIKE, IN, BETWEEN, 和COALESCE


說明:

l??Join的時候大表一定要放在左邊

l??Join subsequent tables according to which table has the mostselective filter. Joining the

table with the most selective filterresults in the fewest number of rows are being returned.


(2)、insert

當前版本號的impala,insert僅僅支持已經(jīng)創(chuàng)建好的表和分區(qū)。全部表和分區(qū)結構的創(chuàng)建和改動僅僅能通過HIVE來完畢。

如今支持的insert包含:

l??INSERT INTO

l??INSERT OVERWRITE

說明:

Insert命令可能會導致Hive的元數(shù)據(jù)發(fā)送改變,所以在使用impala運行查詢時最好先運行一下refresh命令刷新一下hive元數(shù)據(jù)。


(3)、refresh

為了準確地響應查詢,impala必需要知道當前Hive中數(shù)據(jù)庫的全部元數(shù)據(jù),這樣impala的client才可以直接進行正確查詢。因此,假設使用impalaclient進行的一些操作改動hive的元數(shù)據(jù)后,最好impala的每個節(jié)點都又一次refresh,保證元數(shù)據(jù)是最新的。可是并非所以的impala操作都需要refresh元數(shù)據(jù)。

在下面幾種情況下impalad實例須要refresh元數(shù)據(jù):

l??當前impalad實例改動了元數(shù)據(jù)

l??其它比方hive或者其它的impalad實例改動了元數(shù)據(jù)

l??通過impala-shell命令行或者ODBC驅動程序連接impala進行的操作導致數(shù)據(jù)庫發(fā)生改變

Impalad實例不須要refresh的情況:

l??當集群中僅僅有一個impalad實例的時候,即使這個實例改動了元數(shù)據(jù),該impalad實例會自己主動更新自己的數(shù)據(jù)庫元數(shù)據(jù)信息。這樣的情況下是不須要refresh的。

l??假設被改動元數(shù)據(jù)的數(shù)據(jù)庫是一個后臺數(shù)據(jù)庫,也即impalad實例不須要連接該數(shù)據(jù)庫以獲得元數(shù)據(jù)的數(shù)據(jù)庫,這樣的情況下也是不須要refresh的。

Hive元數(shù)據(jù)被改動的典型情況包含:

l??通過Hive進行了ALTER,CREATE, DROP 或 INSERT操作

l??通過impalad進行了INSERT操作

l? ?

(4)、DESCRIBE

l??DESCRIBE tableName:列出表的結構信息


(5)、SHOW

l??SHOW TABLES :列出全部的表

l??SHOW DATABASES :列出全部的數(shù)據(jù)庫

l??SHOW SCHEMAS :列出全部的schema


(6)、USE

l??USE DATABASE

Impala的主要資源



Cloudera impala簡單介紹及安裝具體解釋


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 不卡免费在线视频 | 97久久精品国产成人影院 | 国产尤物福利视频在线观看 | 在线观看国产福利 | 亚洲第一区第二区 | 国产色婷婷视频在线观看 | 狼人久久尹人香蕉尹人 | 久草最新在线 | 久久精品久噜噜噜久久 | 欧美午夜视频一区二区三区 | se94se在线看片secom | 亚洲一区亚洲二区 | 久久6免费视频 | 国四虎影永久 | 看美女毛片 | 福利入口在线观看 | 成人激情视频在线 | 一a一片一级一片啪啪 | 2021最新国产成人精品视频 | 亚洲高清中文字幕综合网 | 国产一区免费在线观看 | 天天综合天天做 | 日韩黄色网 | 91手机视频在线 | 精久久 | 国产在线五月综合婷婷 | 99这里有精品视频 | 日本在线观看成人小视频 | 国产高清国产精品国产k | 成人18网址在线观看 | 91在线视频免费91 | 国产精品爱久久久久久久小 | 五月开心六月伊人色婷婷 | 欧美一级a俄罗斯毛片 | 国产在线91区精品 | 久久国产成人福利播放 | 美女又xx又xx免费 | 国产日本三级 | 国产一区二区在线免费观看 | 欧美乱一级在线观看 | 天天操夜夜操天天操 |