阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 18.04下搭建单机Hadoop和Spark集群环境

638次阅读
没有评论

共计 7174 个字符,预计需要花费 18 分钟才能阅读完成。

Hadoop 在整个大数据技术体系中占有至关重要的地位,是大数据技术的基础和敲门砖,对 Hadoop 基础知识的掌握程度会在一定程度决定在大数据技术的道路上能走多远。

最近想要学习 Spark,首先需要搭建 Spark 的环境,Spark 的依赖环境比较多,需要 Java JDK、Hadoop 的支持。我们就分步骤依次介绍各个依赖的安装和配置。新安装了一个 Linux Ubuntu 18.04 系统,想在此系统上进行环境搭建,详细记录一下过程。

访问 Spark 的官网,阅读 Spark 的安装过程,发现 Spark 需要使用到 hadoop,Java JDK 等,当然官网也提供了 Hadoop free 的版本。本文还是从安装 Java JDK 开始,逐步完成 Spark 的单机安装。

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

1、Java JDK8 的安装

前往 Oracle 官网下载 JDK8,选择适合自己操作系统的版本,此处选择 Linux 64

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

下载之后的包放到某个目录下,此处放在 /opt/java 目录

linuxidc@linuxidc:~/www.linuxidc.com$ sudo cp /home/linuxidc/www.linuxidc.com/jdk-8u231-linux-x64.tar.gz /opt/java/
[sudo] linuxidc 的密码:
linuxidc@linuxidc:~/www.linuxidc.com$ cd /opt/java/
linuxidc@linuxidc:/opt/java$ ls
jdk-8u231-linux-x64.tar.gz

使用命令:tar -zxvf jdk-8u231-linux-x64.tar.gz 解压缩

linuxidc@linuxidc:/opt/java$ sudo tar -zxf jdk-8u231-linux-x64.tar.gz
linuxidc@linuxidc:/opt/java$ ls
jdk1.8.0_231  jdk-8u231-linux-x64.tar.gz

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

修改配置文件 /etc/profile,使用命令:sudo nano /etc/profile

linuxidc@linuxidc:/opt/java$ sudo nano /etc/profile

在文件末尾增加以下内容(具体路径依据环境而定):

export JAVA_HOME=/opt/java/jdk1.8.0_231
export JRE_HOME=/opt/java/jdk1.8.0_231/jre
export PATH=${JAVA_HOME}/bin:$PATH

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

保存退出,在终端界面使用命令:source /etc/profile 使配置文件生效。

linuxidc@linuxidc:/opt/java$ source /etc/profile

使用 java -version 验证安装是否成功,以下回显表明安装成功了。

linuxidc@linuxidc:/opt/java$ java -version
java version “1.8.0_231”
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
linuxidc@linuxidc:/opt/java$

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

2、安装 Hadoop

前往官网 https://hadoop.apache.org/releases.html 下载 hadoop,此处选择版本 2.7.7

http://www.apache.org/dist/hadoop/core/hadoop-2.7.7/hadoop-2.7.7.tar.gz

hadoop 需要 ssh 免密登陆等功能,因此先安装 ssh。

使用命令:

linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt-get install ssh

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt-get install rsync

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

将下载的包放到某个目录下,此处放在 /opt/hadoop

linuxidc@linuxidc:~/www.linuxidc.com$ sudo cp /home/linuxidc/www.linuxidc.com/hadoop-2.7.7.tar.gz /opt/hadoop/

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

使用命令:tar -zxvf hadoop-2.7.7.tar.gz 进行解压缩

此处选择伪分布式的安装方式(Pseudo-Distributed)

修改解压后的目录下的子目录文件 etc/hadoop/hadoop-env.sh,将 JAVA_HOME 路径修改为本机 JAVA_HOME 的路径,如下图:

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

配置 Hadoop 的环境变量

使用命令:

linuxidc@linuxidc:/opt/hadoop/hadoop-2.7.7/etc/hadoop$ sudo nano /etc/profile

添加以下内容:

export HADOOP_HOME=/opt/hadoop/hadoop-2.7.7

修改 PATH 变量,添加 hadoop 的 bin 目录进去

export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

修改解压后的目录下的子目录文件 etc/hadoop/core-site.xml

linuxidc@linuxidc:/opt/hadoop/hadoop-2.7.7/etc/hadoop$ sudo nano core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

如下图:

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

修改解压后的目录下的子目录文件 etc/hadoop/hdfs-site.xml

linuxidc@linuxidc:/opt/hadoop/hadoop-2.7.7/etc/hadoop$ sudo nano hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

如下图:

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

设置免密登陆

linuxidc@linuxidc:~/www.linuxidc.com$ ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Your identification has been saved in /home/linuxidc/.ssh/id_rsa.
Your public key has been saved in /home/linuxidc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:zY+ELQc3sPXwTBRfKlTwntek6TWVsuQziHtu3N/6L5w linuxidc@linuxidc
The key’s randomart image is:
+—[RSA 2048]—-+
|        . o.*+. .|
|        + B o o.|
|        o o =o+.o|
|        B..+oo=o|
|        S.*. ==.+|
|        +.o .oo.|
|        .o.o… |
|          oo .E .|
|          ..  o==|
+—-[SHA256]—–+
linuxidc@linuxidc:~/www.linuxidc.com$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
linuxidc@linuxidc:~/www.linuxidc.com$ chmod 0600 ~/.ssh/authorized_keys

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

使用命令:ssh localhost 验证是否成功,如果不需要输入密码即可登陆说明成功了。

linuxidc@linuxidc:~/www.linuxidc.com$ ssh localhost
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.4.0-999-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:    https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Canonical Livepatch is available for installation.
  – Reduce system reboots and improve kernel security. Activate at:
    https://ubuntu.com/livepatch

188 个可升级软件包。
0 个安全更新。

Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Sat Nov 30 23:25:35 2019 from 127.0.0.1

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

接下来需要验证 Hadoop 的安装

a、格式化文件系统

linuxidc@linuxidc:/opt/hadoop/hadoop-2.7.7$ bin/hdfs namenode -format
19/11/30 23:29:06 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:  host = linuxidc/127.0.1.1
STARTUP_MSG:  args = [-format]
STARTUP_MSG:  version = 2.7.7
……

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

b、启动 Namenode 和 Datanode

linuxidc@linuxidc:/opt/hadoop/hadoop-2.7.7$ sbin/start-dfs.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-linuxidc-namenode-linuxidc.out
localhost: starting datanode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-linuxidc-datanode-linuxidc.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host ‘0.0.0.0 (0.0.0.0)’ can’t be established.
ECDSA key fingerprint is SHA256:OSXsQK3E9ReBQ8c5to2wvpcS6UGrP8tQki0IInUXcG0.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added ‘0.0.0.0’ (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.7.7/logs/hadoop-linuxidc-secondarynamenode-linuxidc.out

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

c、浏览器访问 http://localhost:50070

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

3、Scala 安装:

下载地址:https://www.scala-lang.org/download/2.11.8.html

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

下载好后解压到:/opt/scala

linuxidc@linuxidc:~/ 下载 $ sudo tar zxf scala-2.11.8.tgz -C /opt/scala
[sudo] linuxidc 的密码:
linuxidc@linuxidc:~/ 下载 $ cd /opt/scala
linuxidc@linuxidc:/opt/scala$ ls
scala-2.11.8

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

配置环境变量:

linuxidc@linuxidc:/opt/scala$ sudo nano /etc/profile

添加:

export SCALA_HOME=/opt/scala/scala-2.11.8

 Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

source /etc/profile

4、安装 spark

前往 spark 官网下载 spark

https://spark.apache.org/downloads.html

此处选择版本如下:

spark-2.4.4-bin-hadoop2.7

将 spark 放到某个目录下,此处放在 /opt/spark

使用命令:tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz 解压缩即可

linuxidc@linuxidc:~/www.linuxidc.com$ sudo cp /home/linuxidc/www.linuxidc.com/spark-2.4.4-bin-hadoop2.7.tgz /opt/spark/
[sudo] linuxidc 的密码:
linuxidc@linuxidc:~/www.linuxidc.com$ cd /opt/spark/
linuxidc@linuxidc:/opt/spark$ ls
spark-2.4.4-bin-hadoop2.7.tgz

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

linuxidc@linuxidc:/opt/spark$ sudo tar -zxf spark-2.4.4-bin-hadoop2.7.tgz
[sudo] linuxidc 的密码:
linuxidc@linuxidc:/opt/spark$ ls
spark-2.4.4-bin-hadoop2.7  spark-2.4.4-bin-hadoop2.7.tgz

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

使用命令:./bin/run-example SparkPi 10 测试 spark 的安装

配置环境变量 SPARK_HOME

linuxidc@linuxidc:/opt/spark/spark-2.4.4-bin-hadoop2.7$ sudo nano /etc/profile

export SPARK_HOME=/opt/spark/spark-2.4.4-bin-hadoop2.7
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${SPARK_HOME}/bin:$PATH

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

source /etc/profile

配置配置 spark-env.sh

进入到 spark/conf/

sudo cp /opt/spark/spark-2.4.4-bin-hadoop2.7/conf/spark-env.sh.template /opt/spark/spark-2.4.4-bin-hadoop2.7/conf/spark-env.sh

linuxidc@linuxidc:/opt/spark/spark-2.4.4-bin-hadoop2.7/conf$ sudo nano spark-env.sh

export JAVA_HOME=/opt/java/jdk1.8.0_231
export HADOOP_HOME=/opt/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.7.7/etc/hadoop
export SPARK_HOME=/opt/spark/spark-2.4.4-bin-hadoop2.7
export SCALA_HOME=/opt/scala/scala-2.11.8
export SPARK_MASTER_IP=127.0.0.1
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8099
export SPARK_WORKER_CORES=3
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=5G
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=1G
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HADOOP_HOME/lib/native

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

Java,Hadoop 等具体路径根据自己实际环境设置。

启动 bin 目录下的 spark-shell

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

可以看到已经进入到 scala 环境,此时就可以编写代码啦。

spark-shell 的 web 界面 http://127.0.0.1:4040

Ubuntu 18.04 下搭建单机 Hadoop 和 Spark 集群环境

暂时先这样,如有什么疑问,请在 Linux 公社下面的评论栏里提出。

更多 Hadoop 相关信息见 Hadoop 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7174字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959203
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...