Spark Local模式环境搭建

介绍

        Spark是一个用于大规模数据处理的开源分布式计算框架。它提供了高效的数据处理能力,可以在大规模集群上并行处理数据。Spark支持多种运行模式,其中之一是Local模式。

        Spark Local模式是在单个计算机上运行Spark应用程序的一种模式。在这种模式下,Spark应用程序将在单个计算机的本地线程中执行,而不需要连接到分布式集群。这对于开发和调试Spark应用程序非常有用,因为它不需要设置和管理分布式环境。

        在Local模式下,Spark应用程序可以使用本地计算机上的所有CPU和内存资源,但受限于单个计算机的资源限制。这意味着它适用于处理小规模数据集或进行快速原型开发,但不适用于处理大规模数据集或需要分布式计算的任务。

 

JDK安装

       1. 将jdk安装包文件上传到 Linux 并解压缩,放置在自己需要的位置。

       2. 解压好后修改/etc/profile文件

vi  /etc/profile

#在文件最后加上JAVA的环境变量
export JAVA_HOME=解压后java的位置
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

#生效环境变量
source /etc/profile

#测试环境变量是否配置成功
java -version

         出现java版本号则说明安装成功

Hadoop安装

        1.上传hadoop安装包,解压

        2.解压好后修改/etc/profile文件

root@master:~# vi /etc/profile

#在文件最后加上hadoop环境变量
export HADOOP_HOME=解压后hadoop的位置
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$HOME/bin

#生效环境变量
root@master:~# source /etc/profile

#查看版本号
root@master:~# hadoop version
Hadoop 2.7.4
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r cd915e1e8d9d0131462a0b7301586c175728a282
Compiled by kshvachk on 2017-08-01T00:29Z
Compiled with protoc 2.5.0
From source with checksum 50b0468318b4ce9bd24dc467b7ce1148
This command was run using /data/root/env/environment/hadoop/share/hadoop/common/hadoop-common-2.7.4.jar

        

Spark安装

        1.上传spark安装包,解压

        2.进入spark目录输入bin/spark-shell

        报错:Service 'sparkDriver' could not bind on a random free port. You may check whether configuring an appropriate binding address

        解决:

        查看本地hosts文件,将地址和名称修改为本地主机的地址和主机名字

root@master:~# vi /etc/hosts

        警告:Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).

        这个是Spark在启动时输出的一条警告信息,它告诉你Spark的默认日志级别被设置为"WARN"。如果你想调整日志级别,可以使用sc.setLogLevel(newLevel)来设置。对于SparkR,可以使用setLogLevel(newLevel)来设置日志级别。 这个警告信息并不会影响Spark的正常运行,只是提醒你可以根据需要调整日志级别。

        报错:WARN  Utils:66 - Service 'SparkUI' could not bind on port 4040. Attempting port 4041.

        这个报错通常是由于端口冲突导致的。SparkUI是Spark的Web界面,它默认绑定在4040端口。然而,如果该端口已经被其他进程占用,Spark就无法绑定到该端口上,因此会尝试使用下一个可用的端口(4041)。

        原因有多种,比如之前已经打开了shell窗口,但是退出时候用的是ctrl+z挂起,之后要关闭窗口时可以使用ctrl+c中断。

        解决方法:

#使用(lsof -i:端口号)来查看该端口下的进程
root@master:~# lsof -i:4041
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    30764 root  309u  IPv6 201153      0t0  TCP *:4041 (LISTEN)

#使用(kill -9 进程id)来杀死进程
root@master:~# kill -9 30764

        报错:WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

        这个警告信息是因为Spark在启动时尝试加载本地Hadoop库,但是没有找到适合你的平台的库,所以使用了Java内置的类来代替。这个警告信息并不会影响Spark的正常运行,但是如果你需要使用Hadoop相关的功能,可能会遇到问题。

        解决办法:

#在spark目录下进入conf文件夹
root@master:/data/root/env/environment/spark23# cd conf

#如果spark-env.sh文件不存在,只有spark-env.sh.template文件
#将spark-env.sh.template cp 并改名为spark-env.sh文件
#如果有spark-env.sh文件则跳过这步
root@master:/data/root/env/environment/spark23/conf# cp spark-env.sh.template spark-env.sh



#修改spark-env.sh文件,在文件最后加上
LD_LIBRARY_PATH=$HADOOP_HOME/lib/native 

 启动spark-shell

        在spark目录下输入bin/spark-shell启动spark

测试

        1.准备好一个word文本,上传到spark目录下的data文件中

         2.运行字符统计代码

sc.textFile("data/word.txt").flatMap(_.split("")).map((_,1)).reduceByKey(_+_).collect

        3.结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值