E-MapReduce集群脚本-包年包月集群修改软件环境的利器

集群,特别是包年报月集群,在使用过程中,可能会有新的安装第三方软件,修改集群运行环境的需求。例如Presto组件想增加udf、支持更多类型的插件,安装第三方软件,安装操作系统软件包,等等。由于包年包月集群不能直接释放了新建,所以需要一种引导操作的功能在集群使用中执行安装脚本。

E-MapReduce控制台1.5.0版本提供了集群脚本的功能,可以在集群创建好后批量选择节点,运行您指定的脚本,以实现个性化的需求。

集群脚本类似引导操作,您可以在集群创建好后安装很多目前集群尚未支持的软件到您的集群上,例如:

  • 使用 yum 安装已经提供的软件。
  • 直接下载公网上的一些公开的软件。
  • 读取 OSS 中您的自有数据。
  • 安装并运行一个服务,例如 Flink 或者 Impala,但需要编写的脚本会复杂些。

强烈建议您先用单个节点进行集群脚本的测试,测试都正确以后再在整个集群上操作。

如何使用

  1. 集群状态是空闲或者运行中的集群可以运行集群脚本,集群列表页面点击对应集群的查看详情按钮
  2. 左侧菜单单击集群脚本,即会进入该集群的集群脚本执行界面,右侧是已经执行过的集群脚本列表。
  3. 单击右上角创建并执行,进入创建界面。
  4. 填写创建界面上的配置项,选择执行的节点,点击执行,完成添加并执行操作。
  5. 集群脚本列表可以看到新创建的集群脚本,点击刷新可以更新集群脚本的状态。
  6. 点击查看详情可以看到脚本在各个节点上的运行情况,点击刷新可以更新脚本在各个节点上的运行状态。

只有空闲或者运行中的可用集群才能使用集群脚本功能。集群脚本适用于长期存在的集群,对按需创建的临时集群,应使用引导操作来完成集群初始化工作。

集群脚本会在您指定的节点上下载oss上的脚本并运行,根据返回值是否为0判断执行成功还是失败。如果运行状态是失败,您可以登录到各个节点上查看运行日志,运行日志记录在每个节点的/var/log/cluster-scripts/clusterScriptId目录下。如果集群配置了oss日志目录,运行日志也会上传到osslogpath/clusterId/ip/cluster-scripts/clusterScriptId目录下方便查看。

默认会使用 root 账户执行您指定的脚本,您可以在脚本中使用 su hadoop 切换到 Hadoop 账户。

集群脚本可能在部分节点上运行成功,部分节点上运行失败,例如节点重启导致的脚本运行失败。您可以在解决异常问题后,单独指定失败的节点再次运行。当集群扩容后,您也可以指定扩容的节点单独运行集群脚本。

1个集群同一时间只能运行一个集群脚本,如果有正在运行的集群脚本,无法提交执行新的集群脚本。每个集群最多保留10个集群脚本记录,超过10个需要将之前的记录删除才能创建新的集群脚本。

脚本的例子

类似引导操作的脚本,您可以在脚本中指定从 OSS 下载需要的文件,下面的例子会将 oss://yourbucket/myfile.tar.gz 这个文件下载到本地,并解压到 /yourdir 目录下:

#!/bin/bash
osscmd --id=<yourid> --key=<yourkey> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourbucket>/<myfile>.tar.gz ./<myfile>.tar.gz
mkdir -p /<yourdir>
tar -zxvf <myfile>.tar.gz -C /<yourdir>

osscmd 已预安装在节点上,可以直接调用来下载文件。

注意:OSS 地址 host 有内网地址、外网地址和 VPC 网络地址之分。如果用经典网络,需要指定内网地址,杭州是 oss-cn-hangzhou-internal.aliyuncs.com。如果用 VPC 网络,要指定 VPC 内网可访问的域名,杭州是 vpc100-oss-cn-hangzhou.aliyuncs.com。

脚本也可以通过 yum 安装额外的系统软件包,下面的例子会安装 ld-linux.so.2:

#!/bin/bash
yum install -y ld-linux.so.2
时间: 2024-08-01 21:29:32

E-MapReduce集群脚本-包年包月集群修改软件环境的利器的相关文章

用集群脚本功能让2.0.0及之前版本的包月集群presto支持读取oss数据

参照 集群脚本功能介绍,本文介绍如何用集群脚本功能让2.0.0及之前版本的包月集群presto支持读取oss数据. 准备脚本 下载 脚本,放在您的oss合适的目录里. 运行脚本 集群列表页面点击对应集群的查看详情按钮 左侧菜单单击集群脚本,进入该集群的集群脚本执行界面 单击右上角创建并执行,进入创建界面. 选择刚才的脚本,设置名字,执行的节点默认,点击执行,完成添加并执行操作. 集群脚本列表可以看到新创建的集群脚本,点击刷新可以更新集群脚本的状态. 等待集群脚本完成 验证 hive建表 下文举了

用集群脚本功能安装大象医生优化你的大数据作业

dr-elephant是linkedin开源的大数据作业诊断优化工具,可以读取作业的日志信息,给出可视化的问题诊断和优化建议. 本文介绍如何在emr集群上安装大象医生,并提供一个优化hive参数的完整示例.大象诊断的详情文档可以看官方文档,后续本博客也会发表一些使用经验.注意:目前大象医生还不支持spark2,社区正在开发,敬请期待. 安装大象医生 集群脚本功能介绍 参照 集群脚本功能介绍 准备脚本 下载 脚本,放在您的oss合适的目录里. 运行脚本 本文用的示例集群是EMR3.4.2版本,3节

请问java高手,spring如何解析oracle返回的数据包,当记录集嵌套记录集时,如何解析呢

问题描述 请问java高手,spring如何解析oracle返回的数据包,当记录集嵌套记录集时,如何解析呢 以下存储过程,返回的记录集的字段又包含记录集,resultlist的属性Property是个记录集,在这种情况下如何解析所有信息呢?type PropertyList is table of Property index by binary_integer;---PropertyList对象,表Property的记录FUNCTION FUNC_Wechat_ClaimSearchList(

java利用Ant脚本生成war包全过程_java

使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:PATH增加:E:\apache-ant-1.8.4\bin. 3.检查ant是否配置完成.运行->cmd输入:ant -version.查看是否打印ant的版本号. 打包的实质生成jar包的实质 1.编译工程src文件夹下的java文件,生成相应的class文件. 2.将所有的class文件集合成j

使用mina是出现断包丢包

问题描述 使用mina是出现断包丢包 在使用mina进行socket通信发送接送文件类型报文时出现丢包情况,也不是每次都是,只是在测试期间断断续续出现过那么几次,抓包处理时显示正常文件长度,但是解析时内容丢失了. 解决方案 我也出现相同问题了, 请高手解决啊,,,,,,

一键创建包年包月ECS实例

在之前的博客中我们介绍了如何通过资源编排服务(ROS)创建 按量付费 的ECS, RDS等资源.今天这篇文章将介绍怎样通过资源编排服务(ROS)创建 包年包月 类型的资源. 目前我们开放了 ECS 和 RDS 两种资源的包年包月资源,详细的属性配置请参考 ALIYUN::ECS::PrepayInstance 和 ALIYUN::RDS::PrepayDBInstance.更多的包年包月类型资源我们将陆续开放,敬请关注. 下面我们通过示例介绍一下,如何使用ROS的Python SDK来创建包年包

socket-C# Socket 粘包 半包 问题请教

问题描述 C# Socket 粘包 半包 问题请教 初学C#的Socket,求各位大侠指教个解决Socket粘包半包的方法. 我查阅了一些资料知道处理逻辑. 1,发送的消息都由包头+包体组成,包头解释包体长度 2,接收方定义个缓存区 3,判断接收的信息长度 4,先接收个包头 5,按照包头取包体 但是感觉好多逻辑不知道具体用代码怎么实现,请大侠指教. 伪代码也行,最最反应不过来的就是这个缓冲区怎么构建?? 它肯定得各种操作索引吧? 解决方案 http://www.cnblogs.com/solq/

hadoop 2.x 集群外机器通过webhdfs访问集群内文件,怎么实现?需要DNS吗?

问题描述 hadoop2.x集群外机器通过webhdfs访问集群内文件,用IP地址直接访问http://namenode(IP):50070/webhdfs/v1/test/xxx.txt?op=open,访问这个会重定向到某一个节点上例如:datanode1上.请问集群外的机器通过IP地址是否可以通过webhdfs访问hadoop集群内文件?这是不是本来就不可行的?因为有安全问题.如果要在集群外客户端通过web访问的话,有什么解决方案?目前有一种比较笨的办法,在客户端hosts文件中添加集群内

CentOS redis集群部署 开启防火墙无法访问集群

问题描述 CentOS redis集群部署 开启防火墙无法访问集群 CentOS redis集群部署 开启防火墙无法访问集群 我现在是单机部署的一个伪集群,通过命令 redis-trib.rb check ip:端口 可以正常检测集群状态, 一旦我将iptables 防火墙 启动,就无法检测了~~这是为啥啊~ 还有一个问题 我用tomcat集群+redis 做session共享,也是一样,开启防火墙,就无法连接redis服务器 只要关闭防火墙,就一切正常~~ iptables 文件没问题,难道是