分布式部署(JDK1.8+Hadoop3.2+Spark2.4+Ubuntu16.04)

2024-03-06 02:18

本文主要是介绍分布式部署(JDK1.8+Hadoop3.2+Spark2.4+Ubuntu16.04),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次分布式Spark环境部署采用JDK1.8、Hadoop3.2、Spark2.4的套装,一个Master,两个Slaves

1. 修改hosts文件,设置Master、Slaves1、Slaves2节点的IP地址。

2. SSH免登录设置

    #ssh-keygen -t rsa

 一直回车,后将文件分别拷贝到Master,Slaves1,Slaves2中

 #ssh-copy-id Master#ssh-copy-id Slaves1#ssh-copy-id Slaves2

3. 安装JDK

 3.1 解压jdk安装包

   # tar -zvxf jdk-8u201-linux-x64.tar.gz

3.2 更改名字,并且发送到/usr/local目录下

  # mv jdk1.8.0_201 /usr/local/java

3.3 修改/etc/profile文件,添加jdk的环境变量

  # vim /etc/profile

  添加以下代码到底部

  #JAVAexport JAVA_HOME=/usr/local/javaexport PATH=$PATH:$JAVA_HOME/bin

 保存后退出,且应用

  #source /etc/profile

3.4 检查jdk 环境是否设置成功

  # java -version

4 . 安装Hadoop

4.1解压hadoop-3.2.0.tar.gz

  # tar -zvxf hadoop-3.2.0.tar.gz

4.2 更改名字,并且发送到/usr/local目录下

  # mv hadoop-3.2.0 /usr/local/hadoop

4.3 修改/etc/profile文件,添加jdk的环境变量

  # vim /etc/profile

  添加以下代码到底部

#HADOOP
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 保存后退出,且应用

  #source /etc/profile

4.4 检查hadoop 环境是否设置成功

  # hadoop version

5. 配置Hadoop

集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。

5.1 设置Workers

将Master、Slaves1、Slaves2设置进去
 

MasterSlaves1Slaves2

5.2 设置core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://Master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property>
</configuration>

5.3 设置hdfs-site.xml

<configuration><property><name>dfs.namenode.secondary.http-address</name><value>Master:50090</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property>
</configuration>

5.4 设置mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>Master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>Master:19888</value></property>
</configuration>

5.5 设置yarn-site.xml

<configuration><property><name>yarn.resourcemanager.hostname</name><value>Master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

5.6 配置start-dfs.sh、start-yarn.sh、stop-dfs.sh、stop-yarn.sh

以上四个文件所在目录为/usr/local/hadoop/sbin

在start-dfs.sh、stop-dfs.sh开始第一行加上

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在start-yarn.sh、stop-yarn.sh开始第一行加上

YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

配置好后,将 Master 上的 /usr/local/Hadoop 文件夹复制到各个Slaves节点上。

scp -r /usr/local/hadoop root@Slaves1:/usr/local
scp -r /usr/local/hadoop root@Slaves2:/usr/localscp /etc/profile root@Slaves1:/etc/    #copy配置文件到各个Slaves
scp /etc/profile root@Slaves2:/etc/

在各个Slaves上应用从Master复制过去的profile文件

source /etc/profile

5.6 检查Hadoop是否安装成功

hadoop version

           如图

6 安装Spark

 6.1 解压Spark安装包

   # tar -zvxf spark-2.4.1-bin-without-hadoop.tgz

6.2 更改名字,并且发送到/usr/local目录下

mv spark-2.4.1-bin-without-hadoop /usr/local/spark

6.3 配置spark-env.sh

文件存在的目录为/usr/local/spark/conf

#复制一份模板
cp spark-env.sh.template spark-env.sh

在spark-env.sh中加入以下代码

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

有了上面的配置信息以后,Spark就可以把数据存储到Hadoop分布式文件系统HDFS中,也可以从HDFS中读取数据。如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据。
配置完成后就可以直接使用,不需要像Hadoop运行启动命令。

根据以上步骤即可完成整个Spark环境的安装部署

参考链接:

Hadoop2.6.0集群安装配置教程

http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/

Spark2.1.0配置教程

http://dblab.xmu.edu.cn/blog/1307-2/

这篇关于分布式部署(JDK1.8+Hadoop3.2+Spark2.4+Ubuntu16.04)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778562

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5