阿里云和腾讯云搭建Hadoop、Spark集群

本文详细介绍了如何在阿里云和腾讯云上配置Hadoop和Spark集群,包括集群规划、基础环境设置、JDK、Hadoop、Scala、Spark的安装以及SSH免密登录等步骤。在CentOS7环境下,确保服务器间互通并开放相关端口,通过配置文件调整参数以满足集群需求。最后验证集群启动和运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  1. Linux操作系统为CentOS7 ,与CentOS6以及Ubuntu命令有稍许不同;
  2. 在创建hadoop用户之后,所有的操作都是使用hadoop用户去操作。当然可以使用root以及其他用户去操作,但非root操作注意权限问题
  3. jdk需要1.8以上,安装的Spark和Hadoop需注意他们的版本依赖关系,可以去官网查看;
  4. 安装包
    jdk1.8.0_201+hadoop-2.6.5+scala-2.11.12+spark-2.3.1-bin-hadoop2.6
    https://download.youkuaiyun.com/download/qq_41153405/11505092 ;
  5. 用到两台服务器,一台阿里云,一台腾讯云。下面文件配置中涉及到的端口都要打开(不管有没有关闭系统防火墙)。
  6. 本集群仅为测试,所以没有配置NTP,有需要请自行百度。
    PS:搭集群过程中遇到很多坑,也借鉴了很多博客,望指正。

基础环境配置

1.集群规划

两台服务器,以阿里云服务器为主,阿里云的服务器跑一个NameNode和一个DataNode,腾讯云的服务器跑一个DataNode。

2.IP和系统映射

在/etc/hosts所有节点都增加IP和服务器名称的映射关系,且2个节点可以相互ping通。
阿里云服务器的公网IP为a11.b11.c11.d11,内网IP为a12.b12.c12.d12;腾讯云服务器的公网IP为a21.b21.c21.d21,内网IP为a22.b22.c22.d22。
在阿里云服务器中,编辑/etc/hosts文件:
a12.b12.c12.d12 hadoop1
a21.b21.c21.d21 hadoop2
在腾讯云服务器中,编辑/etc/hosts文件:
a11.b11.c11.d11 hadoop1
a22.b22.c22.d22 hadoop2
两个服务器公网可以ping通!!!

3.关闭所有节点的防火墙

两个服务器的防火墙默认都是开启的,若是 CentOS 7,需通过如下命令关闭(防火墙服务改成了 firewall):
sudo systemctl stop firewalld.service # 关闭firewall
sudo systemctl disable firewalld.service # 禁止firewall开机启动
注:阿里云和腾讯云的服务器采用了防火墙+安全组的安全防御模式,所以单单关闭防火墙没有用,Hadoop和Spark配置文件中涉及到的端口都要在安全组中开放才可以。

4.修改主机名

查看当前主机名:hostname
修改/etc/sysconfig/network文件:vi /etc/sysconfig/network
最后添加一行:HOSTNAME=主机名
如果是 CentOS 7 操作系统,可以使用命令:hostnamectl set-hostname 主机名
重启服务器:shutdown -r now
重启服务器后自动生效。
参考网址:https://www.cnblogs.com/huhyoung/p/9656263.html

5.添加用户hadoop及权限

添加用户hadoop及密码

[root@hadoop1 /]# useradd hadoop
useradd: user 'hadoop' already exists
[root@hadoop1 /]# passwd hadoop

给hadoop用户增加管理员权限

[root@hadoop1 ~]# visudo

找到 root ALL=(ALL) ALL 这行(应该在第98行,可以先按一下键盘上的 ESC 键,然后输入 :98 (按一下冒号,接着输入98,再按回车键),可以直接跳到第98行 ),然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL (当中的间隔为tab)
hadoop用户权限

6.SSH免密登录

用hadoop用户执行以下指令:

  • cd ~ //切换到用户home目录下
  • ls -al //查看home目录下有无隐藏文件夹**.ssh**。如果没有创建一个.ssh。注意.ssh目录的权限是700(drwx------),如果不是,修改一下(chmod 700 .ssh)
  • cd .ssh //进入 .ssh目录下
  • ssh-keygen -t rsa //输入该命令,连续回车,会在.ssh目录下生成私钥id_rsa和公钥id_rsa.pub
  • ssh-copy-id hadoop1 //该命令把生成的公钥文件的内容追加到hadoop1的authorized_keys 文件中,注意authorized_keys的文件权限是600。这步完成后,就可以ssh hadoop1免密登录自己了
  • ssh-copy-id hadoop2 //该命令把生成的公钥文件的内容追加到hadoop2的authorized_keys 文件中,hadoop1可以免密登录hadoop2
  • 按照上面步骤配置一下hadoop2,实现hadoop2免密登录hadoop1

安装JDK

JDK路径:/home/java/jdk
解压安装包,重命名为jdk

# sudo tar -zvxf jdk-8u201-linux-x64.tar.gz
# sudo mv jdk1.8.0_201 jdk

将解压后的jdk目录拷贝到hadoop2

scp -r /home/java/jdk root@hadoop2:/home/java

注:用hadoop用户操作命令,如果java目录是hadoop用户组hadoop用户的,不需要sudo;若java属于root则需要sudo。注意文件权限问题!!!

配置环境变量(hadoop1和hadoop2两个节点都要配置)

# sudo vim /etc/profile

在/etc/profile文件尾添加:

export JAVA_HOME=/home/java/jdk
export PATH=:$PATH:$JAVA_HOME/bin

保存退出,使配置文件生效

source /etc/profile

验证
jdk

安装Hadoop

路径:/home/hadoop/app/hadoop
解压安装包,重命名为hadoop

# tar -zvxf hadoop-2.6.5.tar.gz
# mv hadoop-2.6.5 hadoop

进入/home/hadoop/app/hadoop/etc/hadoop目录下,修改配置文件(hadoop1操作)
1.配置slaves
把两个服务器节点放到slaves文件中。
在这里插入图片描述
2.配置hadoop-env .sh
在hadoop-env.sh文件中修改JAVA_HOME路径。
在这里插入图片描述
3.配置core-site.xml
在core-site.xml文件中添加以下内容:

 		<property>
                <name
### 设计与实现基于云平台的大数据架构网盘系统的方案 #### 1. 架构概述 为了满足企业对于高效、稳定、安全的数据管理需求,设计了一个基于云计算技术的大数据架构网盘系统。该系统不仅实现了数据的集中存储高效处理,还提供了实时数据分析功能以及直观易懂的结果展示方式[^1]。 #### 2. 技术选型 针对此项目的技术栈选择如下: - **云服务平台**:采用主流公有云服务商提供的PaaS层服务作为底层支撑框架,如阿里云腾讯云等。这些平台通常集成了多种必要的组件,包括但不限于数据库、中间件、容器编排工具等[^2]。 - **分布式文件系统**:考虑到海量非结构化数据的特点,在云端搭建Hadoop HDFS集群来负责大规模静态资源(文档、图片等)的安全可靠保存;同时引入对象存储OSS用于动态内容分发加速访问速度并降低成本开销。 - **计算引擎**:Spark Streaming被用来执行流式ETL作业流程,而Flink则更适合于低延迟场景下的复杂事件处理逻辑编写。两者均能很好地兼容现有生态体系内的其他开源软件包,便于后续扩展维护工作开展。 - **元数据管理调度器**:Airflow是一个非常流行的Python库,它允许定义复杂的依赖关系图并通过图形界面监控任务进度状态变化情况。配合Hive Metastore一起使用可以有效提高整体工作效率减少人为错误发生几率。 ```python from airflow import DAG from datetime import timedelta, datetime from airflow.providers.apache.spark.operators.spark_submit import SparkSubmitOperator default_args = { 'owner': 'airflow', 'depends_on_past': False, 'email_on_failure': False, 'email_on_retry': False, 'retries': 1, 'retry_delay': timedelta(minutes=5), } with DAG( dag_id='example_spark_operator', default_args=default_args, schedule_interval=None, start_date=datetime(2023, 9, 1), tags=['spark'], ) as dag: spark_job = SparkSubmitOperator( task_id="run_example", application="/path/to/your/spark/application.py", # 需要替换为实际路径 conn_id="spark_default" ) ``` #### 3. 安全保障措施 在整个生命周期内始终贯彻“预防为主”的原则,采取多层次防护策略确保敏感信息安全无虞。具体做法涉及身份验证机制强化、传输加密协议选用HTTPS/TLS版本号不低于1.2标准规定的要求、定期备份重要资料防止意外丢失风险等方面考虑周到细致入微之处不胜枚举。 #### 4. 数据治理能力增强 通过建立完善的企业级元模型管理体系促进跨部门间协作交流更加顺畅自然;借助机器学习算法挖掘潜在商业价值所在点位进而指导精准营销活动策划实施过程稳步推进不断优化改进直至达到预期目标为止。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值