Impala入门 01 水深无声 2022-02-25 13:20 320阅读 0赞 # 1. 什么是Impala # * Cloudera公司开源提供的一款sql on hadoop的软件。号称是当前大数据领域大查询最快的一款sql on hadoop的工具 **impala能够兼容hive,具有实时批处理等特点,提供高并发** # 2. Impala与hive之间的关系 # * impala与hive是紧耦合的,使用impala之前必须安装好hive数据仓库 * impala的优点以及缺点: 优点:计算速度很快,提供近乎实时的查询响应 缺点:内存消耗大。官方推荐,每个impala的节点,内存最少128Gb # 3. Impala的基本结构 # * impala-state-store:主节点,状态存储区,主要用于存储sql执行的中间结果的保存 * impala-catalog:主节点,元数据管理区。impala会读取hive当中的元数据信息,读取回来保存到自己的catalogg里面去 * impala-server:从节点,主要就是执行我们的查询的sql语句。官方建议所有的impala-server与datanode安装在一起。可以使用hdfs的短路读取的特性 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 1] # 4. 通过本地yum源进行安装Impala # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 2] ## 4.1 Impala的安装环境准备 ## 需要提前安装好hadoop,hive,这二个框架,并且hive需要在所有的impala安装的节点上面都要有,因为impala需要引用hive的依赖包,hadoop的框架需要支持C程序访问接口,查看下图,如果有该路径下有这么些文件,就证明支持C接口 ![在这里插入图片描述][20190402090302145.png] ## 4.2 下载impala的所有依赖包 ## 由于impala没有提供tar包供我们进行安装,只提供了rpm包,所以我们在安装impala的时候,需要使用rpm包来进行安装,rpm包只有cloudera公司提供了,所以我们去cloudera公司网站进行下载rpm包即可,但是另外一个问题,impala的rpm包依赖非常多的其他的rpm包,可以一个个的将依赖找出来,也可以将所有的rpm包下载下来,制作成我们本地yum源来进行安装。**我们这里就选择制作我们本地的yum源来进行安装**,所以首先我们需要下载到所有的rpm包,下载地址如下 [http://archive.cloudera.com/cdh5/repo-as-tarball/5.14.0/cdh5.14.0-centos6.tar.gz][http_archive.cloudera.com_cdh5_repo-as-tarball_5.14.0_cdh5.14.0-centos6.tar.gz] 下载好了之后,保留下,留作备用 ## 4.3 挂载磁盘 ## 由于我们下载的tar包非常大,大概5个G,解压之后也最少需要5个G的空间,而我们的虚拟机磁盘有限,不够用了,所以我们可以为我们的虚拟机挂载一块磁盘,专门用于存储我们的tar包 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 3] * 虚拟机关机新增磁盘 在我们的虚拟机关机的状态下,在VMware当中新增一块磁盘 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 4] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 5] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 6] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 7] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 8] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 9] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 10] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 11] * 开机之后进行磁盘挂载 分区,格式化,挂载新磁盘 磁盘挂载 df -lh fdisk -l 开始分区 fdisk /dev/sdb 这个命令执行后依次输 n p 1 回车 回车 w fdisk -l 格式化我们的分区 mkfs -t ext4 -c /dev/sdb1 格式化我们的分区 mkdir /data02 将我们的分区挂载到/data02目录下 mount -t ext4 /dev/sdb1 /data02 df -lh 将我们的挂载磁盘设置开机启动,避免开机之后挂载的磁盘就没了 echo "/dev/sdb1 /data02 ext4 defaults 0 0" >> /etc/fstab ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 12] **挂载完成之后,记得重新启动node03机器上面的mysql服务,datanode服务,nodemanager服务,zookeeper服务 启动mysql的服务命令:/etc/init.d/mysqld start** ## 4.4 上传压缩包并解压 ## 将我们5个G的压缩文件上传/data02目录下,并进行解压 cd /data02/ tar -zxvf cdh5.14.0-centos6.tar.gz ![在这里插入图片描述][20190402091336464.png] ## 4.5 制作本地yum源 ## 镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的下载地址 这里我们选用第三台机器作为镜像源的服务端 **node03机器上执行以下命令** yum -y install httpd service httpd start cd /etc/yum.repos.d vim localimp.repo [localimp] name=localimp baseurl=http://node03/cdh5.14.0/ gpgcheck=0 enabled=1 **创建apache httpd的读取链接** ln -s /data02/cdh/5.14.0 /var/www/html/cdh5.14.0 **页面访问本地yum源,出现这个界面表示本地yum源制作成功** ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 13] **将制作好的localimp配置文件发放到所有需要安装impala的节点上去** cd /etc/yum.repos.d/ scp localimp.repo node02:$PWD scp localimp.repo node01:$PWD ## 4.6 开始安装impala ## * 安装规划 ![在这里插入图片描述][20190402091647889.png] * 主节点node03执行以下命令进行安装 yum install impala -y yum install impala-server -y yum install impala-state-store -y yum install impala-catalog -y yum install impala-shell -y * 从节点node01与node02安装以下服务 yum install impala-server -y ## 4.7 所有节点配置impala ## * 修改hive-site.xml node03机器修改hive-site.xml内容如下 hive-site.xml配置 vim /export/servers/hive-1.1.0-cdh5.14.0/conf/hive-site.xml <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>node03.hadoop.com</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://node03.hadoop.com:9083</value> </property> <property> <name>hive.metastore.client.socket.timeout</name> <value>3600</value> </property> </configuration> * 将hive的安装包发送到node02与node01机器上 **在node03机器上面执行** cd /export/servers/ scp -r hive-1.1.0-cdh5.14.0/ node02:$PWD scp -r hive-1.1.0-cdh5.14.0/ node01:$PWD * node03启动hive的metastore服务 启动hive的metastore服务 node03机器启动hive的metastore服务 cd /export/servers/hive-1.1.0-cdh5.14.0 nohup bin/hive --service metastore & nohup bin/hive -- service hiveserver2 & **注意:一定要保证mysql的服务正常启动,否则metastore的服务不能够启动** * 所有hadoop节点修改hdfs-site.xml添加以下内容 所有节点创建文件夹 mkdir -p /var/run/hdfs-sockets 修改所有节点的hdfs-site.xml添加以下配置,修改完之后重启hdfs集群生效 vim /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml <property> <name>dfs.client.read.shortcircuit</name> <value>true</value> </property> <property> <name>dfs.domain.socket.path</name> <value>/var/run/hdfs-sockets/dn</value> </property> <property> <name>dfs.client.file-block-storage-locations.timeout.millis</name> <value>10000</value> </property> <property> <name>dfs.datanode.hdfs-blocks-metadata.enabled</name> <value>true</value> </property> 注意:root用户不需要这一步操作了,实际工作当中普通用户需要这一步操作 创建文件夹 /var/run/hadoop-hdfs/ 给这个文件夹赋予权限,例如如果我们用的是普通用户,那就直接赋予普通用户的权限 例如: chown -R hadoop:hadoop /var/run/hdfs-sockets/ 因为我这里直接用的root用户,所以不需要赋权限了 * 重启hdfs node01服务器上面执行以下命令 cd /export/servers/hadoop-2.6.0-cdh5.14.0/ sbin/stop-dfs.sh sbin/start-dfs.sh * 创建hadoop与hive的配置文件的连接 impala的配置目录为 /etc/impala/conf 这个路径下面需要把core-site.xml,hdfs-site.xml以及hive-site.xml拷贝到这里来,但是我们这里使用软连接的方式会更好 所有节点执行以下命令创建链接到impala配置目录下来 ln -s /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml /etc/impala/conf/core-site.xml ln -s /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml /etc/impala/conf/hdfs-site.xml ln -s /export/servers/hive-1.1.0-cdh5.14.0/conf/hive-site.xml /etc/impala/conf/hive-site.xml * 修改impala的配置文件 **所有节点修改impala默认配置** 所有节点更改impala默认配置文件以及添加mysql的连接驱动包 vim /etc/default/impala IMPALA_CATALOG_SERVICE_HOST=node03 IMPALA_STATE_STORE_HOST=node03 所有节点创建mysql的驱动包的软连接 ln -s /export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 14] **所有节点修改bigtop的java路径** 修改bigtop的java\_home路径 vim /etc/default/bigtop-utils export JAVA_HOME=/export/servers/jdk1.8.0_141 ![在这里插入图片描述][20190402203810405.png] * 启动impala服务 启动impala服务 主节点node03启动以下三个服务进程 service impala-state-store start service impala-catalog start service impala-server start 从节点启动node01与node02启动impala-server service impala-server start 查看impala进程是否存在 ps -ef | grep impala 注意:启动之后所有关于impala的日志默认都在/var/log/impala 这个路径下,node03机器上面应该有三个进程,node02与node01机器上面只有一个进程,如果进程个数不对,去对应目录下查看报错日志 浏览器页面访问: 访问impalad的管理界面 [http://node03:25000/][http_node03_25000] 访问statestored的管理界面 [http://node03:25010/][http_node03_25010] # 5. Impala的使用 # ## 5.1 启动 ## node03的hive需要启动hiveserver 2 以及 metastore的服务 bin/hive --service hiveserver2 bin/hive --serivce metastore ## 5.2 impala 的shell的使用: ## * 外部shell命令: 查看impala的版本: impala-shell -v -V 查看impala的帮助文档 impala-shell -h 通过 -i连接到某一台impala-server服务器 刷新我们hive的所有的元数据信息 impala-shell -r 通过 -f 执行我们impala执行sql脚本 类似于hive的 -f impala-shell -f impala.sql 通过-q 来指定我么impala直接执行sql脚本 类似于hive的 -e impala-shell -q "select * from myhive.student"; * 内部的shell命令: 进入到impala-shell内部之后的一些可以执行的参数 1. refesh dbname.tabname 主要是用于帮助我们刷新hive当中的某一张表发生变化,比如hive当中一张表分区数添加,可以用这个命令。增量的刷新。如果hive当中新建的数据库表,这个命令刷不到 2. invalidate metadata 全量的刷新,将hive当中所有的元数据信息,全部刷新过来保存到catalog里面去。性能消耗比较大,一般不要轻易使用,只有hive当中新建数据库或者新建数据库表的时候,才有可能用到 3. impala当中直接创建的数据库或者数据库表,impala当中都可以直接 看得到,但是hive当中创建的数据库以及数据库表必须刷新之后,impala才能看得到。 因为impala自己创建的数据库以及数据库表,直接将元数据信息保存到catalog里面去了 * 以后完全可以使用impala代替掉我们的hive [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70]: /images/20220225/a3da531ff3654993b09e1dd70a00111e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 1]: /images/20220225/c97c31b8a2bf4190bfb3cf71e6be926d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 2]: /images/20220225/2e72623d9f8b4eedbffb76478980986f.png [20190402090302145.png]: /images/20220225/f1253f3e22584ce09f195ed47e88ff7d.png [http_archive.cloudera.com_cdh5_repo-as-tarball_5.14.0_cdh5.14.0-centos6.tar.gz]: http://archive.cloudera.com/cdh5/repo-as-tarball/5.14.0/cdh5.14.0-centos6.tar.gz [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 3]: /images/20220225/020737b11f1c4508ad6215fe9d47772b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 4]: /images/20220225/9dea01ddbf0a4fddb6c5233e39ac4b5d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 5]: /images/20220225/1baac9bc59494c4b9b282503a7995c38.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 6]: /images/20220225/8ff8858cc72a453bbfbe9db0b8c6810e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 7]: /images/20220225/9ddef4b2fc4a4939bea9295ba3ec2c53.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 8]: /images/20220225/767a367b73224171957ff60e7936dae3.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 9]: /images/20220225/55e6d4149e0041fa95f5fe64976a6dcc.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 10]: /images/20220225/1b345601a26f43839b54f0850d326843.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 11]: /images/20220225/06706a90030244399d32241fa919e978.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 12]: /images/20220225/757dc64491aa482fa5b324480d8f5e2c.png [20190402091336464.png]: /images/20220225/09252454e3ee4636aef076ee54f11691.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 13]: /images/20220225/9e5ff864d22d427c9ff7e96e4c2a8ebd.png [20190402091647889.png]: /images/20220225/5b4b8d2d5db34979ab6a15c13e335835.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 14]: /images/20220225/be6335c39df345e68d6584afa467977b.png [20190402203810405.png]: /images/20220225/0218642d383e46d19765cebb468b39eb.png [http_node03_25000]: http://node03:25000/ [http_node03_25010]: http://node03:25010/
还没有评论,来说两句吧...