分布式部署(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

相关文章

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过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部署