如何安装使用Impala
一、Impala简介 Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL。除了像Hive使用相同的统一存储平台,Impala也使用相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)。Impala还提供了一个熟悉的面向批量或实时查询和统一平台。 二、Impala安装
(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 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、命令行功能
set命令参数说明:
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的客户端才能够直接进行正确查询。因此,如果使用impala客户端进行的一些操作修改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
安装Cloudera Impala Cloudera Impala是Cloudera Enterprise Core的开源扩展,用于快速返回查询结果. Impala作为你环境的插件,与其他组件的安装独 ...
- impala记录-安装kudu和impala
1.配置/etc/yum.repos.d clouder-kudu.repo [cloudera-kudu]# Packages for Cloudera's Distribution for kud ...
- cloudera impala编译 安装 配置 启动
无论是采用GDB调试impala或者尝试修改impala源码,前提都是需要本地环境编译impala,这篇文章详细的分享一下impala编译方法以及编译过程遇到的棘手的问题: 前言: impala官方的 ...
- Impala ODBC 安装笔记
Impala在线文档介绍了 Impala ODBC接口安装和配置 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5 ...
- 入门大数据---安装ClouderaManager,CDH和Impala,Hue,oozie等服务
1.要求和支持的版本 (PS:我使用的环境,都用加粗标识了.) 1.1 支持的操作系统版本 操作系统 版本 RHEL/CentOS/OL with RHCK kernel 7.6, 7.5, 7.4, ...
- Impala入门笔记
From:http://tech.uc.cn/?p=817 问题背景: 初步了解Impala的应用 重点测试Impala的查询速度是否真的如传说中的比Hive快3~30倍 写作目的: 了解Impala ...
- IMPALA部署和架构(一)
IMPALA部署和架构(一) 一,概要 因公司业务需求,需要一个查询引擎满足快速查询TB级别的数据,所以我们找到了presto和impala,presto在前面讲过今天只说impala,impala ...
- ambari hdp 集成 impala
1.下载ambari-impala-service VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\ ...
- Impala介绍
Impala介绍 Impala支持的文件格式 Impala可以对Hadoop中大多数格式的文件进行查询.它能通过create table和insert的方式将一部分格式的数据加载到table中,但值得 ...
随机推荐
- Nginx 防止被域名恶意解析的方法
今天太倒霉了,发现通过IP无法访问服务器的80端口很无语,昨天都还好的啊,也没有修改过配置,其他端口又是正常的,防火墙也没问题.于是问了下机房,给了个崩溃的回复说我们的服务器有个域名没有备案被电信多次 ...
- json格式化和查看工具
以前一直以来都觉得xml个可读性要比json的可读性好,后来使用了JSON Viewer这个小工具之后,发现自己错了.之前认为json的可读性差,完全是因为没有很好的查看工具.JSON Viewer这 ...
- CreateMutex 创建一个有名字的互斥量的时候hMutex=CreateMutex(NULL,TRUE,"tickets")报错
编译器报错: 不能将参数 3 从“const char [8]”转换为“LPCWSTR”,怎么改成LPCWSTR类型 更改方法: hMutex=CreateMutex(NULL,TRUE,L" ...
- CentOS 7安装SVN以及高版本SVN
安装 CentOS 7 下yum命令即可方便的完成安装 $ sudo yum install subversion 测试安装是否成功: $ svnserve --version 建立版本库 创建svn ...
- httpclient用法
Http通信方式:HttpURLConnection和HttpClient HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便HttpClient就是一个增强版的 ...
- css3 box-reflect 倒影效果
语法: box-reflect:包括3个值. 1. direction 定义方向,取值包括 above . below . left . right. above: 指定倒影在对象的上边 below: ...
- 【优先队列】-HDU4546比赛难度
比赛难度 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submis ...
- CodeForces 687C The Values You Can Make
$dp$,背包. $f[i][j][s]$表示前$i$个物品,凑出$j$价格的情况下,能否凑出$s$价格,$f[i][j][s]=1$表示能,否则不能. 转移很简单:如果$f[i][j][s]=1$, ...
- excel 常用函数
1.统计整列唯一值的数量 =sumproduct(1/countif(offset(A1,,,COUNTA(A:A)),OFFSET(A1,,,COUNTA(A:A))))
- Unity发布安卓无法读取StreamingAssets文件下数据库的问题
在移动端StreamingAssets下的文件是只读的,但大家可能跟我一样遇到了发布安卓以后放在StreamingAssets下的数据库文件一样读取不了, 但其实这个文件夹其实是可以读取到的,所以我们 ...