Impala 安装

article/2025/9/21 6:57:51

1、集群准备

1.1、安装Hadoop,Hive

  • Impala的安装需要提前装好Hadoop,Hive这两个框架
  • hive需要在所有的Impala安装的节点上面都要有,因为Impala需要引用Hive的依赖包
  • hadoop的框架需要支持C程序访问接口,查看下图,如果有该路径有.so结尾文件,就证明支持C接口。

HDFS:impala数据存储在hdfs

Hive:impala直接使用Hive元数据管理数据

1.2、准备Impala的所有依赖包

        Cloudera公司对于Impala的安装只提供了rpm包没有提供tar包;所以我们选择使用Cloudera的rpm包进行Impala的安装,但是另外一个问题,Impala的rpm包依赖非常多的其他的rpm包,我们可以一个个的将依赖找出来,但是这种方式实在是浪费时间。

        Linux系统中对于rpm包的依赖管理提供了一个非常好的管理工具叫做Yum,类似于Java工程中的包管理工具Maven,Maven可以自动搜寻指定Jar所需的其它依赖并自动下载来。Yum同理可以非常方便的让我们进行rpm包的安装无需关系当前rpm所需的依赖。但是与Maven下载其它依赖需要到中央仓库一样 Yum下载依赖所需的源也是在放置在国外服务器并且其中没有安装Impala所需要的rpm包,所以默认的这种Yum源可能下载依赖失败。所以我们可以自己指定Yum去哪里下载所需依赖。

        rpm方式安装:需要自己管理rpm包的依赖关系;非常麻烦;解决依赖关系使用yum;默认Yum源是没有 Impala的rpm安装包,所以我们自己准备好所有的Impala安装所需的rpm包,制作Yum本地源,配置 Yum命令去到我们准备的Yun源中下载Impala的rpm包进行安装。

Yum命令默认源

本地Yum源方式 

具体制作步骤 

        Yum源是Centos当中下载软件rpm包的地址,因此通过制作本地Yum源并指定Yum命令使用本地Yum 源,为了使Yum命令(本机,跨网络节点)可以通过网络访问到本地源,我们使用Httpd这种静态资源服务器来开放我们下载所有的rpm包。

(1)Linux121安装Httpd服务器

#yum方式安装httpd服务器

yum install httpd -y

#启动httpd服务器

systemctl start httpd

#验证httpd工作是否正常,默认端口是80,可以省略

http://linux121

(2) 新建一个测试页面

httpd默认存放页面路径

/var/www/html/

新建一个页面test.html

<html><div style="font-size:100px">this is a new page!!</div>
</html>

访问

http://linux121/test.html

注:后续可以把下载的rpm包解压放置到此处便可以供yum访问

(3)下载Impala安装所需rpm包

Impala所需安装包需要到Cloudera提供地址下载

http://archive.cloudera.com/cdh5/repo-as-tarball/5.7.6/cdh5.7.6- centos7.tar.gz

注意:该tar.gz包是包含了Cloudera所提供的几乎所有rpm包,但是为了方便我们不再去梳理其中 依赖关系,全部下载来,整个文件件比较大,有3.8G。选择一个磁盘空间够的节点,后续还要把压缩包解压所以磁盘空间要剩余10G以上。

相关资料:链接:https://pan.baidu.com/s/1Uz2hr61Zodhs9TH79W7-uA?pwd=af0k

移动该安装包到/opt/lagou/software 

# 解压缩

tar -zxvf cdh5.7.6-centos7.tar.gz

(4)使用Httpd盛放依赖包

# 创建软链接到/var/www/html下

ln -s /opt/lagou/software/cdh/5.7.6 /var/www/html/cdh57

# 验证

http://linux121/cdh57/

如果提示403 forbidden 

vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

修改之后要记得重启机器!!之前修改过可以不用修改!! 

(5)修改Yum源配置文件

cd /etc/yum.repos.d
#创建一个新的配置⽂件
vim local.repo
#添加如下内容
[local]
name=local
baseurl=http://linux121/cdh57/
gpgcheck=0
enabled=1
  • name:对于当前源的描述
  • baseurl:访问当前源的地址信息
  • gpgcheck: 1 0,gpg校验
  • enabled:1/0,是否使用当前源

(6)分发local.repo文件到其它节点(三台机器都要修改)

2、安装Impala

2.1、集群规划

服务名称linux121linux122linux123
impala-catalogd不安装不安装安装
impala-statestored不安装不安装安装
impala-server安装安装安装

Impala角色

  • impala-server:这个进程是Impala真正工作的进程,官方建议把impala-server安装在datanode节点, 更靠近数据(短路读取),进程名impalad
  • impala-statestored:健康监控角色,主要监控impala-server,impala-server出现异常时告知给其它 impala-server;进程名叫做statestored
  • impala-catalogd :管理和维护元数据(Hive),impala更新操作;把impala-server更新的元数据通知给其它impala-server,进程名catalogd

官方建议statestore与catalog安装在同一节点上!!

2.2、具体安装步骤

Linux123

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

Linux121与Linux122

yum install impala-server -y

yum install impala-shell -y

配置Impala

(1)修改hive-site.xml

vim hive-site.xml

<!--指定metastore地址,之前添加过可以不用添加 -->
<property><name>hive.metastore.uris</name><value>thrift://linux121:9083,thrift://linux123:9083</value>
</property>
<property><name>hive.metastore.client.socket.timeout</name><value>3600</value>
</property>

(2)分发Hive安装包到集群节点

rsync -r /opt/lagou/servers/hive-2.3.7/ linux122:/opt/lagou/servers/

rsync -r /opt/lagou/servers/hive-2.3.7/ linux121:/opt/lagou/servers/

(3)Linux123启动metastore服务

nohup hive --service metastore &

(4)启动hiveserver2服务

nohup hive --service hiveserver2 &

(5)修改HDFS集群hdfs-site.xml

配置HDFS集群的短路读取

什么是短路读取?

        在HDFS中通过DataNode来读取数据。但是,当客户端向DataNode请求读取文件时,DataNode 就会从磁盘读取该文件并通过TCP socket将数据发送到客户端。所谓“短路”是指Client客户端直接读取文件。很明显,这种情况只在客户端与数据放在同一地点(译者注:同一主机)时才有可能发生。短路读对于许多应用程序会带来重大的性能提升。

短路读取:就是Client与DataNode属于同⼀节点,⽆需再经过⽹络传输数据,直接本地读取。

要配置短路本地读,需要验证本机Hadoop是否有libhadoop.so;

# 进入下目录:

/opt/lagou/servers/hadoop-2.9.2/lib/native

短路读取配置步骤 

(1)创建短路读取本地中转站

# 所有节点创建一下目录

mkdir -p /var/lib/hadoop-hdfs

(2)修改hdfs-site.xml

<!--添加如下内容 -->
<!--打开短路读取开关 -->
<!-- 打开短路读取配置-->
<property><name>dfs.client.read.shortcircuit</name><value>true</value>
</property>
<!--这是⼀个UNIX域套接字的路径,将⽤于DataNode和本地HDFS客户机之间的通信 -->
<property><name>dfs.domain.socket.path</name><value>/var/lib/hadoop-hdfs/dn_socket</value>
</property>
<!--block存储元数据信息开发开关 -->
<property><name>dfs.datanode.hdfs-blocks-metadata.enabled</name><value>true</value>
</property>
<property><name>dfs.client.file-block-storage-locations.timeout</name><value>30000</value>
</property>

注:分发到集群其它节点。重启Hadoop集群。

#停止集群

stop-dfs.sh

start-dfs.sh

#启动集群

start-dfs.sh

start-yarn.sh

(5)Impala具体配置

引用HDFS,Hive配置

        使用Yum方式安装impala默认的Impala配置文件目录为 /etc/impala/conf,Impala的使用要依赖 Hadoop,Hive框架,所以需要把Hdfs,Hive的配置文件告知Impala。

执行以下命令把Hdfs,Hive的配置文件软链接到/etc/impala/conf下

ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /etc/impala/conf/core-site.xmlln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /etc/impala/conf/hdfs-site.xmlln -s /opt/lagou/servers/hive-2.3.7/conf/hive-site.xml /etc/impala/conf/hive-site.xml

注:所有节点都要执行此命令!

Impala自身配置

所有节点更改Impala默认配置⽂件以及添加mysql的驱动包

vim /etc/default/impala

<!--更新如下内容 -->
IMPALA_CATALOG_SERVICE_HOST=linux123
IMPALA_STATE_STORE_HOST=linux123

所有节点创建mysql的驱动包的软链接

#创建节点

mkdir -p /usr/share/java

ln -s /opt/lagou/servers/hive-2.3.7/lib/mysql-connector-java-5.1.46.jar  /usr/share/java/mysql-connector-java.jar

修改bigtop的java_home路径 

vim /etc/default/bigtop-utils

# 添加下面内容

export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231

注意:Apache Bigtop 是一个针对基础设施工程师和数据科学家的开源项目,旨在全面打包、测试 和配置领先的开源大数据组件/项目。Impala项目中使用到了此软件。 

启动Impala

# linux123启动如下角色

service impala-state-store start

service impala-catalog start

service impala-server start

# 其余节点启动如下角色

service impala-server start

验证Impala启动结果

ps -ef | grep impala

浏览器Web界面验证

访问impalad的管理界面

http://linux123:25000/

访问statestored的管理界面

http://linux123:25010/

Impalad管理界面

Statestore管理界面

注意:启动之后所有关于Impala的日志默认都在/var/log/impala 这个路径下,Linux123机器上面应该有三个进程,Linux121与Linux122机器上面只有一个进程,如果进程个数不对,去对应目录下查看报错日志。

消除Impala影响

        由于使用Yum命令安装Impala,我们选择使用yum自动进行Impala依赖的安装和处理,所以本次安装默认会把Impala依赖的所有框架都会安装,比如Hadoop,Hive,Mysql等,为了保证我们自己安装的Hadoop等使用正常我们需要删除掉Impala默认安装的其它框架。

[root@linux122 conf]# which hadoop
/usr/bin/hadoop
[root@linux122 conf]# which hive
/usr/bin/hive
#使⽤which命令 查找hadoop,hive等会发现,命令⽂件是/usr/bin/hadoop ⽽⾮我们⾃⼰安装的路径,需要把这些删除掉,所有节点都要执⾏
rm -rf /usr/bin/hadoop
rm -rf /usr/bin/hdfs
rm -rf /usr/bin/hive
rm -rf /usr/bin/beeline
rm -rf /usr/bin/hiveserver2#重新⽣效环境变量
source /etc/profile

jps 时出现没有名字的进程或者process information unavailable

解决方式 

rm -rf /tmp/hsperfdata_*


http://chatgpt.dhexx.cn/article/cByTaWKV.shtml

相关文章

impala详解

0 简介 Impala是Cloudera公司主导开发的新型查询系统&#xff0c;它提供SQL语义&#xff0c;能查询存储在Hadoop的HDFS和**HBase**中的PB级大数据。已有的Hive系统虽然也提供了SQL语义&#xff0c;但由于Hive底层执行使用的是MapReduce引擎&#xff0c;仍然是一个批处理过程&a…

Impala基础知识

概述 Impala是由Cloudera公司开发的新型查询系统&#xff0c;参照Dremel系统进行设计的。提供SQL语义&#xff0c;能查询存储在Hadoop的HDFS和HBase上的PB级大数据&#xff0c;在性能上比Hive高出3~30倍。 基于Hive的大数据实时分析查询引擎&#xff0c;其运行需要依赖于Hive…

大数据之 impala教程

一、什么是Impala&#xff1f; Impala是用于处理存储在Hadoop集群中的大量数据的MPP&#xff08;大规模并行处理&#xff09;SQL查询引擎。 它是一个用C 和Java编写的开源软件。 与其他Hadoop的SQL引擎相比&#xff0c;它提供了高性能和低延迟。 换句话说&#xff0c;Impala是…

impala入门(一篇就够了)

文章目录 01 引言02 impala概述2.1 简介2.2 架构2.2.1 Impalad&#xff08;守护进程&#xff09;2.2.2 Statestore&#xff08;存储状态&#xff09;2.2.3 metadata&#xff08;元数据&#xff09;/metastore&#xff08;元存储&#xff09; 03 impala 安装04 impala 接口05 im…

大数据——Impala工具使用

目录 一、Impala概述 二、Impala优点 三、Impala和Hive 3.1 Impala和Hive的关系 3.2 Impala和Hive的区别 五、Impala查询过程 六、Impala安装 七、impala-shell命令 八、数据库语句 数据库命令 数据表命令 视图操作 Impala数据导入 刷新Impala数据 九、Java API 一…

近端策略优化算法PPO

本文介绍近端策略优化算法&#xff08;Proximal Policy Optimization&#xff09;也就是PPO。 文章目录 前言一、on-policy和off-policy1.1 on-policy和off-policy的概念1.2 Importance Sampling的概念 二、TRPO、PPO算法2.1 Trust Region Algorithms2.2 Stochastic Gradient A…

【强化学习】PPO算法求解倒立摆问题 + Pytorch代码实战

文章目录 一、倒立摆问题介绍二、PPO算法简介三、详细资料四、Python代码实战4.1 运行前配置4.2 主要代码4.3 运行结果展示4.4 关于可视化的设置 一、倒立摆问题介绍 Agent 必须在两个动作之间做出决定 - 向左或向右移动推车 - 以使连接到它的杆保持直立。 二、PPO算法简介 …

强化学习之PPO

阅读本文前先了解TRPO算法有助于理解&#xff0c;我对此也写过博客&#xff1a;https://blog.csdn.net/tianjuewudi/article/details/120191097 参考李宏毅老师的视频&#xff1a;https://www.bilibili.com/video/BV1Wv411h7kN?p80 PPO&#xff0c;全名Proximal Policy Opti…

【强化学习】PPO:从On-policy到Off-policy(PPO/TRPO/PPO-Penalty/PPO-Clip)

目录 一、为什么要从On- Policy到Off-Policy&#xff1f;二、如何从On- Policy到Off-Policy&#xff1f;三、如何使 p θ ( a t ∣ s t ) p_\theta(a_t|s_t) pθ​(at​∣st​)和 p θ ′ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ′​(at​∣st​)不相差太多&#xff1f;3.1 PP…

如何理解PPO算法的核心操作clip

回顾 传统的策略梯度算法以下式作为策略网络的损失&#xff1a; g ^ E ^ t [ ∇ θ log ⁡ π θ ( a t ∣ s t ) A ^ t ] \hat{g}\hat{\mathbb{E}}_{t}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) \hat{A}_{t}\right] g^​E^t​[∇θ​logπθ​…

强化学习PPO从理论到代码详解(2)---PPO1和PPO2

在线或离线学习 上一节我们了解了什么是策略梯度&#xff0c;本节开始讲PPO理论之前&#xff0c;我们先提出一个概念&#xff0c;什么在线学习&#xff0c;什么离线学习。 On-policy: Then agent learned and the agent interacting with Environment is the same Off-policy…

强化学习PPO代码讲解

阅读本文前对PPO的基本原理要有概念性的了解&#xff0c;本文基于我的上一篇文章&#xff1a;强化学习之PPO 当然&#xff0c;查看代码对于算法的理解直观重要&#xff0c;这使得你的知识不止停留在概念的层面&#xff0c;而是深入到应用层面。 代码采用了简单易懂的强化学习…

PPO算法(附pytorch代码)

这里写目录标题 一、PPO算法&#xff08;1&#xff09;简介&#xff08;2&#xff09;On-policy&#xff1f;&#xff08;3&#xff09;GAE &#xff08;Generalized Advantage Estimation) 三、代码代码解析&#xff1a; 一、PPO算法 &#xff08;1&#xff09;简介 PPO算法…

论文笔记之PPO

15年OpenAI发表了TRPO算法&#xff0c;一直策略单调提升的算法&#xff1b;17年DeepMind基于TRPO发表了一篇Distributed-PPO&#xff0c;紧接着OpenAI发表了这篇PPO。可以说TRPO是PPO的前身&#xff0c;PPO在TRPO的基础上进行改进&#xff0c;使得算法可读性更高&#xff0c;实…

PPO实战学习总结

PPO used in go-bigger 前段时间一直在学习ppo算法&#xff0c;写了 一点总结&#xff0c;记录一下自己对ppo算法的一些理解与RL实战时候容易遇到的一些问题。代码地址如下&#xff0c;需要的可以自取&#xff1a; https://github.com/FLBa9762/PPO_used_in_Gobigger.git一般…

PPO算法

在线学习和离线学习 在线学习:和环境互动的Agent以及和要学习的Agent是同一个&#xff0c; 同一个Agent&#xff0c;一边和环境做互动&#xff0c;一边在学习。离线学习: 和环境互动及的Agent以和要学习的Agent不是同一个&#xff0c;学习的Agent通过看别人完来学习。 利用新的…

PPO2代码 pytorch框架

PPO2代码玩gym库的Pendulum环境 2022-8-02更新 我发现这篇文章浏览量惨淡啊。 咋滴&#xff0c;是不相信的我代码能用是吗&#xff1f; 所以&#xff0c;我给出reward的收敛曲线图&#xff1a; 开玩笑&#xff0c;出来混&#xff0c;我能卖你生瓜码子吗&#xff1f; ———…

PPO实战

哈哈初学&#xff0c;复现龙龙老师的实例&#xff01; state&#xff1a;是平衡小车上的杆子&#xff0c;观测状态由 4 个连续的参数组成&#xff1a;推车位置 [-2.4&#xff0c;2.4]&#xff0c;车速 [-∞&#xff0c;∞]&#xff0c;杆子角度 [&#xff5e;-41.8&#xff0c…

PyTorch实现PPO代码

原理&#xff1a;Proximal Policy Optimization近端策略优化&#xff08;PPO&#xff09; 视频&#xff1a;Proximal Policy Optimization (PPO) is Easy With PyTorch | Full PPO Tutorial 代码来自github&#xff1a; Youtube-Code-Repository EasyRL 网站&#xff1a;Neural…

优化PPO

优化PPO 介绍core implementation details1.Vectorized architecture 量化结构Orthogonal Initialization of Weights and Constant Initialization of biases 算法权重的初始化以及恒定偏差的初始化The Adam Optimizer’s Epsilon Parameter Adam优化器的ε参数Adam Learning …