自动批量配置n台全分布hadoop负载集群脚本

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: linux

可执行脚本

#!/bin/bash

# Define the software versions and installation directory
jdk_version="jdk-11.0.12"
mysql_version="mysql-8.0.26"
hadoop_version="hadoop-3.3.5"
hive_version="hive-3.1.2"
sqoop_version="sqoop-1.4.7"
zookeeper_version="zookeeper-3.7.0"
install_dir="/opt"

# Function to install JDK
install_jdk() {
    wget https://example.com/$jdk_version.tar.gz
    tar -xzvf $jdk_version.tar.gz
    mv $jdk_version $install_dir
    ln -s $install_dir/$jdk_version /usr/local/$jdk_version
}

# Function to install MySQL
install_mysql() {
    wget https://example.com/$mysql_version.tar.gz
    tar -xzvf $mysql_version.tar.gz
    mv $mysql_version $install_dir
    ln -s $install_dir/$mysql_version /usr/local/$mysql_version
}

# Function to install Hadoop
install_hadoop() {
    wget https://example.com/$hadoop_version.tar.gz
    tar -xzvf $hadoop_version.tar.gz
    mv $hadoop_version $install_dir
    ln -s $install_dir/$hadoop_version /usr/local/$hadoop_version
}

# Function to install Hive
install_hive() {
    wget https://example.com/$hive_version.tar.gz
    tar -xzvf $hive_version.tar.gz
    mv $hive_version $install_dir
    ln -s $install_dir/$hive_version /usr/local/$hive_version
}

# Function to install Sqoop
install_sqoop() {
    wget https://example.com/$sqoop_version.tar.gz
    tar -xzvf $sqoop_version.tar.gz
    mv $sqoop_version $install_dir
    ln -s $install_dir/$sqoop_version /usr/local/$sqoop_version
}

# Function to install Zookeeper
install_zookeeper() {
    wget https://example.com/$zookeeper_version.tar.gz
    tar -xzvf $zookeeper_version.tar.gz
    mv $zookeeper_version $install_dir
    ln -s $install_dir/$zookeeper_version /usr/local/$zookeeper_version
}

# Call the installation functions
install_jdk
install_mysql
install_hadoop
install_hive
install_sqoop
install_zookeeper

# Configuration steps
cd /usr/local/$hadoop_version/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
cp core-site.xml.template core-site.xml
cp hdfs-site.xml.template hdfs-site.xml
cp yarn-site.xml.template yarn-site.xml

cd /usr/local/$hive_version/conf
cp hive-env.sh.template hive-env.sh
cp hive-site.xml.template hive-site.xml

cd /usr/local/$sqoop_version/conf
cp sqoop-env-template.sh sqoop-env.sh
cp sqoop.properties.template sqoop.properties

cd /usr/local/$zookeeper_version/conf
cp zoo_sample.cfg zoo.cfg

echo "
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
" > /usr/local/$hadoop_version/etc/hadoop/core-site.xml

echo "
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
" > /usr/local/$hadoop_version/etc/hadoop/hdfs-site.xml

echo "
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>
" > /usr/local/$hadoop_version/etc/hadoop/mapred-site.xml


# 配置Hadoop yarn-site.xml
echo "
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>2</value>
  </property>
</configuration>
" > /usr/local/$hadoop_version/etc/hadoop/yarn-site.xml

# 配置Hive hive-site.xml
echo "
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost: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>password</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>
" > /usr/local/$hive_version/conf/hive-site.xml

# 配置Sqoop sqoop-env.sh
echo "
export HADOOP_COMMON_HOME=/usr/local/$hadoop_version
export HADOOP_MAPRED_HOME=/usr/local/$hadoop_version
export HIVE_HOME=/usr/local/$hive_version
export ZOOKEEPER_HOME=/usr/local/$zookeeper_version
" > /usr/local/$sqoop_version/conf/sqoop-env.sh

# 配置Zookeeper zoo.cfg
echo "
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
" > /usr/local/$zookeeper_version/conf/zoo.cfg

将以上脚本同时分发给n台服务器并运行

#!/bin/bash

# Define the script file and IP address file
script_file="install.sh"
ip_file="ip_addresses.txt"

# Read the IP addresses from the file and execute the script on each server
while IFS= read -r ip_address
do
    echo "Running script on $ip_address"
    scp $script_file $ip_address:~/   # Transfer the script file to the server
    ssh $ip_address "bash ~/$(basename $script_file)"   # Execute the script on the server
done < "$ip_file"
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
1月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
52 3
Hadoop集群配置https实战案例
|
13天前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
1月前
|
机器学习/深度学习 分布式计算 安全
Hadoop集群常见报错汇总
这篇博客总结了Hadoop集群中可能遇到的各种常见错误,包括Kerberos认证问题、配置错误、权限问题等,并为每个问题提供了详细的错误复现、原因分析以及相应的解决方案。
55 1
Hadoop集群常见报错汇总
|
1月前
|
资源调度 分布式计算 运维
Hadoop集群资源管理篇-资源调度器
详细介绍了Hadoop集群资源管理中的资源调度器,包括资源分配的概念、大数据运维工程师如何管理集群工作负载、资源调度器的背景、Hadoop提供的FIFO、容量调度器和公平调度器三种资源调度器的概述以及它们之间的对比。
84 4
|
1月前
|
分布式计算 监控 Hadoop
监控Hadoop集群实战篇
介绍了监控Hadoop集群的方法,包括监控Linux服务器、Hadoop指标、使用Ganglia监控Hadoop集群、Hadoop日志记录、通过Hadoop的Web UI进行监控以及其他Hadoop组件的监控,并提供了相关监控工具和资源的推荐阅读链接。
52 2
|
2月前
|
XML 分布式计算 监控
详细指南:在Hadoop中配置Oozie作业
【8月更文挑战第31天】
40 0
|
2月前
|
存储 分布式计算 负载均衡
|
10天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
40 11
|
2月前
|
存储 分布式计算 Hadoop
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
119 0