spark_hadoop集群搭建自动化脚本

2023-11-18

#!/bin/bash
#############################################################
#############脚本使用说明####################################
#1、使用脚本前需要弄好服务器的基础环境#######################
#2、在hadoop的每个节点需要手动创建如下目录:/data/hdfs/tmp###
#3、修改下面的配置参数#######################################
#4、脚本执行完备后需要收到格式化namenode#####################
#5、格式化指令:hdfs namenode -format########################
#############################################################
#定义参数变量
#主节点域名
master_dns='slave-3'
#从节点1域名,2NN的配置地址
slave_1='slave-4'
#所有从节点信息
slaves=(slave-4 slave-5)
#java安装路径
java_home='/opt/java/jdk1.8.0_144'
#hadoop版本信息
hadoop_version='hadoop-2.8.1'
#hadoop数据存储路径
hadoop_data_path='/data/hdfs/tmp'
#hadoop安装包存储路径
hadoop_install_package='/opt/package/'$hadoop_version'.tar.gz'
#hdfs副本数量
dfs_replication='2'
#spark版本信息
spark_version='spark-3.0.2-bin-hadoop2.7'
#spark安装包存储路径
spark_install_package='/opt/package/'$spark_version'.tgz'
###########################################
##############安装hadoop###################
###########################################
echo $(date) 'info: 开始安装大数据基础环境...'
echo $(date) 'info: 校验java版本...'
java -version
echo $(date) 'info: 创建hadoop数据存储路径...'
mkdir -p $hadoop_data_path
echo $(date) 'info: 解压hadoop安装包...'
tar -zxvf $hadoop_install_package -C /opt
#配置hadoop环境变量
echo $(date) 'info: 配置hadoop环境变量..'
echo 'export HADOOP_HOME=/opt/'$hadoop_version>>/etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>>/etc/profile
source /etc/profile
#配置hadoop中hadoop-env.sh配置
echo $(date) 'info: 配置hadoop...'
echo 'export JAVA_HOME='$java_home>>/opt/$hadoop_version/etc/hadoop/hadoop-env.sh
#配置hadoop中core-site.xml 指定hdfs老大
sed -i '19a\\t</property>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<name>fs.defaultFS</name>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<value>hdfs://'$master_dns':9000</value>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<property>' /opt/$hadoop_version/etc/hadoop/core-site.xml
#指定hadoop运行时产生的文件存储目录
sed -i '19a\\t</property>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<name>hadoop.tmp.dir</name>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<value>'$hadoop_data_path'</value>' /opt/$hadoop_version/etc/hadoop/core-site.xml
sed -i '19a\\t<property>' /opt/$hadoop_version/etc/hadoop/core-site.xml
#配置hadoop中hdfs-site.xml 指定hdfs副本数量
sed -i '19a\\t</property>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<name>dfs.replication</name>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<value>'$dfs_replication'</value>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<property>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
#指定2NN地址
sed -i '19a\\t</property>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<name>dfs.namenode.secondary.http-address</name>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<value>'$slave_1':9001</value>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
sed -i '19a\\t<property>' /opt/$hadoop_version/etc/hadoop/hdfs-site.xml
#配置hadoop中mapred-site.xml
cp /opt/$hadoop_version/etc/hadoop/mapred-site.xml.template /opt/$hadoop_version/etc/hadoop/mapred-site.xml
sed -i '19a\\t</property>' /opt/$hadoop_version/etc/hadoop/mapred-site.xml
sed -i '19a\\t<name>mapreduce.framework.name</name>' /opt/$hadoop_version/etc/hadoop/mapred-site.xml
sed -i '19a\\t<value>yarn</value>' /opt/$hadoop_version/etc/hadoop/mapred-site.xml
sed -i '19a\\t<property>' /opt/$hadoop_version/etc/hadoop/mapred-site.xml
#配置yarn-site.xml 指定RM地址
sed -i '15a\\t</property>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<name>yarn.resourcemanager.hostname</name>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<value>'$master_dns'</value>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<property>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
#指定MapReduce程序可以运行在yarn上
sed -i '15a\\t</property>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<name>yarn.nodemanager.aux-services</name>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<value>mapreduce_shuffle</value>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
sed -i '15a\\t<property>' /opt/$hadoop_version/etc/hadoop/yarn-site.xml
#配置slaves
sed -i '1d' /opt/$hadoop_version/etc/hadoop/slaves
for slave in ${slaves[@]};
do
  echo $slave>>/opt/$hadoop_version/etc/hadoop/slaves
done
#发送配置好的hadoop到其余节点
if [[ ${#slaves[@]} -gt 1 ]]; then
    for slave in ${slaves[@]};
do
  scp -r /opt/$hadoop_version/ @$slave:/opt/
  scp -r /etc/profile @$slave:/etc/
done
fi
#刷新环境变量
source /etc/profile
echo $(date) 'info: 配置hadoop完成!!!'
###########################################
############安装spark######################
###########################################
echo $(date) 'info: 开始安装spark...'
tar -zxvf $spark_install_package -C /opt
echo $(date) 'info: 开始配置spark'
#配置spark环境变量
echo 'export SPARK_HOME=/opt/'$spark_version>>/etc/profile
echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin'>>/etc/profile
#配置spark-env.sh
cp /opt/$spark_version/conf/spark-env.sh.template /opt/$spark_version/conf/spark-env.sh
echo 'export HADOOP_CONF_DIR=/opt/'$hadoop_version'/etc/hadoop'>>/opt/$spark_version/conf/spark-env.sh
echo 'export SPARK_MASTER_PORT=7077'>>/opt/$spark_version/conf/spark-env.sh
echo 'export SPARK_MASTER_IP='$master_dns>>/opt/$spark_version/conf/spark-env.sh
echo 'export JAVA_HOME='$java_home>>/opt/$spark_version/conf/spark-env.sh
#配置slaves
cp /opt/$spark_version/conf/slaves.template /opt/$spark_version/conf/slaves
sed -i '$d' /opt/$spark_version/conf/slaves
for slave in ${slaves[@]};
do
  echo $slave>>/opt/$spark_version/conf/slaves
done
#将spark下发其余节点
if [[ ${#slaves[@]} -gt 1 ]]; then
    for slave in ${slaves[@]};
do
  scp -r /opt/$spark_version/ @$slave:/opt/
  scp -r /etc/profile @$slave:/etc/
done
fi
echo $(date) 'info: 配置spark完成!!!'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spark_hadoop集群搭建自动化脚本 的相关文章

  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 处理 oozie 工作流程中的循环

    我有一个 oozie 用例 用于检查输入数据可用性并根据数据可用性触发 MapReduce 作业 所以我编写了一个 shell 脚本来检查输入数据 并在 oozie 中为其创建了一个 ssh 操作 输入数据检查的重试次数和重试间隔应该是可配
  • Apache hadoop 版本 2.0 与 0.23

    Hadoop 的版本和发行版太多 让我很困惑 我有几个问题 Apache Hadoop 1 x 是从 0 20 205 开始的 Apache Hadoop 2 0 是从 0 22 还是 0 23 开始 根据这个blogpost http b
  • 如何按行扩展数组值!!使用 Hive SQL

    我有一个有 4 列的表 其中一列 项目 类型是 ARRAY 其他是字符串 ID items name loc id1 item1 item2 item3 item4 item5 Mike CT id2 item3 item7 item4 i
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 当我将文件存储在 HDFS 中时,它们会被复制吗?

    我是 Hadoop 新手 当我使用以下方式存储 Excel 文件时hadoop fs putcommoad 它存储在HDFS中 复制因子为3 我的问题是 是否需要3份并分别存储到3个节点中 这是 HDFS 工作的漫画 https docs
  • 更改 Hadoop 中的数据节点数量

    如何改变数据节点的数量 即禁用和启用某些数据节点来测试可扩展性 说得更清楚一点 我有4个数据节点 我想一一实验1 2 3 4个数据节点的性能 是否可以只更新名称节点中的从属文件 临时停用节点的正确方法 创建一个 排除文件 这列出了您想要删除
  • 在蜂巢中出现错误

    当我连接到 ireport 时 如果说在 hive shell 中显示表 则会出现此错误 元数据错误 java lang RuntimeException 无法实例化 org apache hadoop hive metastore Hiv
  • 使用 org.apache.hadoop/* 依赖项离线编译 sbt 时遇到的问题

    使用依赖于 org apache hadoop 包的 sbt 进行离线编译时遇到很多麻烦 一个简单的build sbt name Test version 1 0 scalaVersion 2 10 4 libraryDependencie
  • 覆盖hadoop中的log4j.properties

    如何覆盖hadoop中的默认log4j properties 如果我设置 hadoop root logger WARN console 它不会在控制台上打印日志 而我想要的是它不应该在日志文件中打印 INFO 我在 jar 中添加了一个
  • 如何有效地将数据从 Kafka 移动到 Impala 表?

    以下是当前流程的步骤 Flafka http blog cloudera com blog 2014 11 flafka apache flume meets apache kafka for event processing 将日志写入
  • sqoop 通过 oozie 导出失败

    我正在尝试将数据导出到mysql from hdfs通过sqoop 我可以通过 shell 运行 sqoop 并且它工作正常 但是当我通过调用oozie 它出现以下错误并失败 我还包括了罐子 没有描述性日志 sqoop脚本 export c
  • Protobuf RPC 在 Hadoop 2.2.0 单节点服务器上不可用?

    我正在尝试在按照本教程安装的本地单节点集群上运行 hadoop 2 2 0 mapreduce 作业 http codesfusion blogspot co at 2013 10 setup hadoop 2x 220 on ubuntu
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • Hadoop 超立方体

    嘿 我正在启动一个基于 hadoop 的超立方体 具有灵活的维度数 有人知道这方面现有的方法吗 我刚刚发现PigOLAP草图 http wiki apache org pig PigOLAPSketch 但没有代码可以使用它 另一种方法是Z
  • 通过Oozie命令行指定多个过滤条件

    我正在尝试通过命令行搜索一些特定的 oozie 作业 我使用以下语法进行相同的操作 oozie jobs filter status RUNNING status KILLED 但是 该命令仅返回正在运行的作业 而不是已杀死的作业 需要帮助
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • 如何在hadoop mapreduce/yarn中设置VCORES?

    以下是我的配置 mapred site xml map mb 4096 opts Xmx3072m reduce mb 8192 opts Xmx6144m yarn site xml resource memory mb 40GB min
  • Hadoop 减速器数量配置选项优先级

    以下3个设置reduce数量的选项的优先级是什么 换句话说 如果三者都设置了 会考虑哪一个呢 Option1 setNumReduceTasks 2 within the application code Option2 D mapredu
  • 从机上的 DiskErrorException - Hadoop 多节点

    我正在尝试处理来自 hadoop 的 XML 文件 在对 XML 文件调用字数统计作业时出现以下错误 13 07 25 12 39 57 INFO mapred JobClient Task Id attempt 201307251234

随机推荐

  • C#如何写入二进制文件

    我们在程序运行过程中有时需要将一些数据以二进制的形式记录到文本中 相比普通的文本记录方式 二进制的记录需要先将原始数据转换为byte 格式 再通过二进制文件流进行记录 下面小编就来介绍一下C 中二进制文件的详细记录过程 工具 原料 Micr
  • ElasticSearch添加mapping

    1 创建索引 创建索引 param indexName public static void createIndex String indexName 插入前删除 以免报错 boolean flag client admin indices
  • Qml中信号的发送与接收信号槽函数的使用

    在Qt C 中 发送信号的函数和对应的槽函数在参数顺序 类型方面必须保持一致 此外 要让一个信号发射后进入相应的槽函数 必须用connect进行连接 这样 信号和槽才能连接起来 在QML中 发送信号和接受信号的槽 用起来比Qt C 还更方便
  • 【转载】DC的逻辑综合与优化

    转载 IC learner 博客园 作者 IC learner 对进行时序路径 工作环境 设计规则等进行约束完成之后 DC就可以进行综合 优化时序了 DC的优化步骤将在下面进行讲解 然而 当普通模式下不能进行优化的 就需要我们进行编写脚本来
  • JavaWeb学习笔记-02-Tomcat&Servlet&Thymeleaf

    1 Tomcat下载及使用 1 1 下载 官方网站 https tomcat apache org 1 2 使用 下载后解压 bin 可执行文件目录 conf 配置文件目录 lib 存放库目录 logs 日志文件目录 websapp 项目部
  • C++两个类的头文件相互包含

    C 中头文件相互包含的几点问题 一 类嵌套的疑问 C 头文件重复包含实在是一个令人头痛的问题 前一段时间在做一个简单的数据结构演示程序的时候 不只一次的遇到这种问题 假设我们有两个类A和B 分别定义在各自的有文件A h和B h中 但是在A中
  • 英特尔cpu发布时间表_英特尔延长CPU发布周期:摩尔定律终结

    据外媒报道 英特尔最近在公司文档中废止了 嘀嗒 的芯片发展周期 第三代Skylake架构处理器 Kaby Lake CPU将在今年第三季度发布 彻底打破了 制程 架构 的钟摆节奏 英特尔延长CPU发布周期 图片来自新浪 英特尔表示 从下一代
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 根据IDEA完成的简单学生成绩管理系统

    根据IDEA完成的简单学生成绩管理系统 要求 输入选项 当选择录入成绩的时候来输入各个学生的成绩 直到输入 1 结束输入成绩 最后输出输入了几名学生的成绩 然后循环到主界面 输入其他的选项 来查询学生成绩的平均分 最高分 最低分 然后退出系
  • mysqlbinlog delete恢复成insert

    不小心把数据删掉了 首先要拿到binlog文件 执行以下命令行 usr local mysql bin mysqlbinlog base64 output decode rows start datetime 2023 05 19 09 0
  • 树莓派传感器篇

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 玩树莓派其中方向之一 控制各种传感器 先搞明白各种传感器的参数及使用方式 树莓派GPIO各个引脚的用处及含义 这里要着重说明一点的是 千万不要把3 3V以上的电压链接到树莓
  • OpenSSL中文手册之PEM库详解

    版权声明 本文根据DragonKing牛 E Mail wzhah 263 NET发布在https openssl 126 com的系列文章整理修改而成 这个网站已经不能访问了 我自己所做的工作主要是针对新的1 0 2版本进行验证 修改错别
  • 十八.欧几里得算法

    欧几里得算法 unsigned int Gcd unsigned int M unsigned int N unsigned int Rem while N gt 0 Rem M N M N N Rem return M 此算法用来计算最大
  • Vue实现动画的几种方式

    vue内置组件transition 元素出现和消失都呈现动画
  • For循环结构的使用

    一 四个要素 初始化条件 循环条件 gt 是boolean类型 循环体 迭代条件 二 for循环的结构 for 执行过程 1 2 3 4 2 3 4 2 遍历100以内的偶数 输出所有偶数和 int sum 0 记录所有偶数的和 int c
  • FTP服务器版本信息可被获取(CVE-1999-0614)(建议修改源代码或者配置文件改变缺省banner信息。)

    漏洞扫描报告 1 测试查看 默认端口21 telnet localhost 21 下图所示即为漏洞信息描述的 可获取版本号 2 修改 vsftpd conf 配置文件 etc vsftpd vsftpd conf 找到 ftpd banne
  • linux 怎样停定时任务,linux停用cron定时执行任务的方法

    linux下用cron定时执行任务的方法 名称 crontab 使用权限 所有使用者 使用方式 crontab file u user 用指定的文件替代目前的crontab crontab u user 用标准输入替代目前的crontab
  • C++泛型编程

    C 泛型编程 1 泛型编程 1 1 模板 1 2 函数模板 1 2 1 语法 1 2 2 使用函数模板方式 1 2 3 普通函数和函数模板的区别 1 2 4 普通函数与函数模板的调用规则 1 2 5 模板的局限性 1 3 类模板 1 3 1
  • findBug 错误修改指南

    FindBugs错误修改指南 1 EC UNRELATED TYPES Bug Call to equals comparing different types Pattern id EC UNRELATED TYPES type EC c
  • spark_hadoop集群搭建自动化脚本

    bin bash 脚本使用说明 1 使用脚本前需要弄好服务器的基础环境 2 在hadoop的每个节点需要手动创建如下目录 data hdfs tmp 3 修改下面的配置参数 4 脚本执行完备后需要收到格式化namenode