您好,登录后才能下订单哦!
# Storm On Yarn的安装和部署
## 一、概述
Apache Storm是一个分布式实时计算系统,而YARN是Hadoop的资源管理框架。将Storm运行在YARN上(Storm On Yarn)可以实现资源的统一管理和调度,提高集群资源利用率。本文将详细介绍Storm On Yarn的安装和部署过程。
### 1.1 环境要求
在开始之前,请确保满足以下环境要求:
- Hadoop集群(版本2.x或以上)
- ZooKeeper集群(建议3.4.5+)
- JDK 1.8+
- Maven 3.x
- Storm 2.x
## 二、前期准备
### 2.1 软件下载
需要下载以下软件包:
```bash
wget https://archive.apache.org/dist/storm/apache-storm-2.4.0/apache-storm-2.4.0.tar.gz
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
编辑~/.bashrc
文件,添加以下内容:
export HADOOP_HOME=/path/to/hadoop
export STORM_HOME=/path/to/storm
export PATH=$PATH:$HADOOP_HOME/bin:$STORM_HOME/bin
执行source ~/.bashrc
使配置生效。
编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml
:
<configuration>
<!-- 启用资源调度 -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<!-- 允许AM申请更多资源 -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
<!-- 每个容器最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
</configuration>
$HADOOP_HOME/sbin/stop-yarn.sh
$HADOOP_HOME/sbin/start-yarn.sh
编辑$STORM_HOME/conf/storm.yaml
:
storm.zookeeper.servers:
- "zk1.example.com"
- "zk2.example.com"
- "zk3.example.com"
nimbus.seeds: ["nimbus1.example.com"]
storm.local.dir: "/data/storm"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
添加以下YARN相关配置:
storm.mode: "distributed"
storm.yarn.jar: "/path/to/storm-yarn-master.jar"
yarn.scheduler.address: "resourcemanager.example.com:8030"
yarn.resourcemanager.address: "resourcemanager.example.com:8032"
yarn.resourcemanager.scheduler.address: "resourcemanager.example.com:8030"
git clone https://github.com/apache/storm.git
cd storm
git checkout v2.4.0
mvn clean package -DskipTests
生成的JAR包位于:
storm-yarn/target/storm-yarn-2.4.0.jar
将以下文件上传到HDFS:
hdfs dfs -mkdir /storm
hdfs dfs -put $STORM_HOME/conf/storm.yaml /storm
hdfs dfs -put $STORM_HOME/lib/* /storm/lib
执行以下命令启动Storm On YARN:
yarn jar storm-yarn-2.4.0.jar \
org.apache.storm.yarn.Client \
-jar storm-yarn-2.4.0.jar \
-appname "Storm-On-YARN" \
-container_memory 2048 \
-container_vcores 2 \
-master_memory 4096 \
-master_vcores 4 \
-queue default \
-storm_conf /storm/storm.yaml
检查YARN应用状态:
yarn application -list
查看Storm UI(默认端口为8080):
http://<nimbus_host>:8080
现象:应用无法获取足够资源
解决方案:
1. 增加YARN资源分配
2. 调整容器内存大小
3. 检查队列资源限制
现象:Storm组件无法连接ZooKeeper
解决方案:
1. 验证ZK服务状态
2. 检查storm.yaml中的ZK配置
3. 查看防火墙设置
现象:提交拓扑时出现权限错误
解决方案:
1. 确保HDFS目录权限正确
2. 检查Kerberos认证配置
3. 验证Storm用户权限
组件 | 内存建议 | CPU建议 |
---|---|---|
Nimbus | 4-8GB | 2-4核 |
Supervisor | 4-16GB | 4-8核 |
Worker | 1-4GB | 1-2核 |
# 增加worker进程数
topology.workers: 4
# 调整消息超时时间
topology.message.timeout.secs: 60
# 优化序列化
topology.tuple.serializer: org.apache.storm.serialization.kyro.KryoValuesSerializer
建议监控以下关键指标: - 拓扑处理延迟 - Worker资源使用率 - Spout/Bolt执行计数 - 消息队列积压情况
Storm日志位置:
$STORM_HOME/logs/
YARN容器日志查看:
yarn logs -applicationId <app_id>
本文详细介绍了Storm On YARN的完整部署流程,包括: 1. 环境准备和配置 2. YARN环境调优 3. Storm-YARN集成包构建 4. 集群部署和验证 5. 常见问题解决方案
通过将Storm部署在YARN上,可以实现: - 资源统一管理和调度 - 提高集群利用率 - 动态资源分配 - 与其他Hadoop生态组件协同工作
yarn node -list
yarn application -kill <application_id>
storm jar topology.jar com.example.Topology -c storm.yaml topology
storm list
注意:实际部署时请根据集群环境和业务需求调整配置参数。建议先在测试环境验证后再进行生产部署。 “`
(全文约3050字,实际字数可能因格式调整略有变化)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。