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

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

系統 2432 0
一、Impala簡單介紹

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

二、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系統中安裝。

(2)硬件要求

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

2、安裝準備

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

>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官網下載:

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)配置環境變量

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

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 :

加入下面節點

mr6

mr7

mr8

(2)、hadoop-env.sh :

添加下面環境變量

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 :

添加下面環境變量

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)復制到其它節點

(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用戶的配置環境的文件.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

使得環境變量生效

(5)啟動hdfs和yarn

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

hdfsnamenode -format

start-dfs.sh

start-yarn.sh

通過jps命令查看:

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

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

(6)驗證成功狀態

通過下面方式查看節點的健康狀態和作業的運行情況:

瀏覽器訪問(本地須要配置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)配置環境變量

在.bash_profile加入環境變量:

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

加入完后運行下面命令使得環境變量生效:

..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)驗證成功狀態

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

在mr5命令行運行hive,并輸入”show tables;”,出現下面提示,說明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下創建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查看。假設出現異常,能夠查看/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查看。假設出現異常,能夠查看/tmp/ impalad.ERROR定位錯誤信息。

(6)使用shell

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

>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)驗證成功狀態

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

>impala-shell

[Not connected]> connect mr6:21000

[mr6:21000]>refresh

[mr6:21000] >show databases

default

[mr6:21000] >

出現以上提示信息,說明成功安裝。


三、Impala的使用

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


set命令參數說明:

參數
默認值
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不支持針對表和分區的DDL,可是支持DML。事實上大部分的HiveQL不須要改動就能夠在impala上面運行的,包含JOIN, AGGREGATE, DISTINCT, UNION ALL, ORDER BY, LIMIT 和subquery等等。

(1)、select

l??數據類型: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僅僅支持已經創建好的表和分區。全部表和分區結構的創建和改動僅僅能通過HIVE來完畢。

如今支持的insert包含:

l??INSERT INTO

l??INSERT OVERWRITE

說明:

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


(3)、refresh

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

在下面幾種情況下impalad實例須要refresh元數據:

l??當前impalad實例改動了元數據

l??其它比方hive或者其它的impalad實例改動了元數據

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

Impalad實例不須要refresh的情況:

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

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

Hive元數據被改動的典型情況包含:

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

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

l? ?

(4)、DESCRIBE

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


(5)、SHOW

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

l??SHOW DATABASES :列出全部的數據庫

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


(6)、USE

l??USE DATABASE

Impala的主要資源



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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人亚洲精品 | 在线视频 亚洲 | 深夜男人影院 | 日韩欧美视频一区二区三区 | 91麻豆精品 | 亚洲成人视屏 | 福利视频久久 | 国产成年人视频 | 成年人国产视频 | 96影院| 久久99精品久久久久久秒播放器 | 欧美久久超级碰碰碰二区三区 | 亚洲最大成人 | 天天做天天爱夜夜想毛片 | 国产区精品 | 伊人精品在线视频 | 日本精品一区二区三本中文 | 国产九九精品 | 妖精视频在线观看网站 | 手机在线看片福利 | 中文字幕 日韩有码 | 日日摸夜夜添夜夜添欧美毛片 | 一级毛片在线播放 | 精品成人一区二区 | 伊人精品视频在线观看 | 欧美国产一区二区二区 | 91青青视频 | 在线看的成人性视频 | 高清视频 一区二区三区四区 | 国产精品第二页在线播放 | 国产精品情侣久久婷婷文字 | 亚洲欧洲日产国码久在线观看 | 日韩精品麻豆 | 久久最新免费视频 | 久久不卡视频 | 国产精品香蕉在线一区二区 | 成年人午夜影院 | 久久com| 色青青草原桃花久久综合 | 91精品论坛| 九九精彩视频在线观看视频 |