一、windows安装spark
1.1 安装spark
spark 3.2.2 下载地址 直接下载解压至需要的文件夹,添加 SPARK_HOME 变量,并在 PATH 变量中添加bin路径 执行spark-shell ,进入spark环境命令行即证明安装成功。 如果报错,可参照下文,安装scala与Hadoop。
1.2 安装scala
上文下载的spark要求scala版本为2.13,所以这里下载2.13版本的,我选择的是最新的2.13.5,因为上文中,spark启动时提示的scala版本是这个。 scala 下载地址 点击进入下载界面后,Windows可下载zip格式包或msi格式包。建议下载zip格式包,它体积小,下载快。 ZIP包下载完成后,解压至需要的文件夹,并配置环境变量,添加 SCALA_HOME 变量,并在 PATH 变量中添加bin路径
完成这些后,命令行输入 scala ,出现scala命令行即证明安装成功。
1.3 安装hadoop
1.3.1 下载hadoop
spark是基于hadoop的,所以spark正常运行需要配置hadoop环境。上文下载的spark要求hadoop版本为3.2,所以这里下载3.2版本的hadoop,hadoop下载地址 这里下载的hadoop版本为3.2.2,与spark版本保持一致.因为Hadoop运行环境是linux,windows需要winutils.exe工具来实现Windows下运行Hadoop。这个工具不支持最新的版本。
1.3.2 hadoop解压缩
使用管理员身份进入cmd,注意不是powershell。这里不能直接解压,否则会报错,解压失败。必须使用管理员身份解压。 进入下载的Hadoop压缩包所在的文件夹,输入 start winrar x -y hadoop-3.2.2.tar.gz 进行解压。
解压完成后,将文件移动至需要的文件夹,这里需要注意,文件路径不能有空格
1.3.3 下载winutils工具
下载地址cdarlint/winutils 直接zip包下载。下载完成后,进入对应Hadoop版本中,这里是3.2.2,将bin目录下的文件拷贝一份放到Hadoop的bin目录下。同时,将 hadoop.dll 文件 拷贝一份放到 C:\Windows\System32 目录下。
1.3.4 配置环境变量
配置 HADOOP_HOME 环境变量,并在PATH 环境变量中添加Hadoop的bin目录。
1.3.5 Hadoop基础配置
在 hadoop 目录下新建 data 文件夹和 tmp 文件夹。这里的hadoop 目录指解压缩后的Hadoop文件夹目录,也就是上文中的HADOOP_HOME 环境变量。 在新建的 data 文件夹下新建 datanode 、namenode 文件夹。 然后进入 hadoop 目录下 etc/hadoop 目录,对配置文件进行设置。注意文件路径
1.3.5.1 配置 core-site.xml 文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/D:/hadoop-3.2.2/tmp</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/hadoop-3.2.2/data</value>
</property>
</configuration>
1.3.5.2 配置 hdfs-site.xml 文件
这里注意,namenode和datanode两个节点数据存储位置,一定要添加file://协议。并且绝对路径前一定要加“/”
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///D:/hadoop-3.2.2/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///D:/hadoop-3.2.2/data/datanode</value>
</property>
</configuration>
1.3.5.3 配置 mapred-site.xml 文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1.3.5.4 配置 yarn-site.xml 文件
注意这里的 yarn.application.classpath ,它是通过cmd获取的。在cmd中输入 yarn classpath ,将获取的值全部作为value
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>D:\hadoop-3.2.2\etc\hadoop;D:\hadoop-3.2.2\etc\hadoop;D:\hadoop-3.2.2\etc\hadoop;D:\hadoop-3.2.2\share\hadoop\common;D:\hadoop-3.2.2\share\hadoop\common\lib\*;D:\hadoop-3.2.2\share\hadoop\common\*;D:\hadoop-3.2.2\share\hadoop\hdfs;D:\hadoop-3.2.2\share\hadoop\hdfs\lib\*;D:\hadoop-3.2.2\share\hadoop\hdfs\*;D:\hadoop-3.2.2\share\hadoop\yarn;D:\hadoop-3.2.2\share\hadoop\yarn\lib\*;D:\hadoop-3.2.2\share\hadoop\yarn\*;D:\hadoop-3.2.2\share\hadoop\mapreduce\lib\*;D:\hadoop-3.2.2\share\hadoop\mapreduce\*;D:\hadoop-3.2.2\share\hadoop\yarn\*;D:\hadoop-3.2.2\share\hadoop\yarn\lib\*</value>
</property>
</configuration>
1.3.6 启动hadoop
第一次启动Hadoop前,需要执行Hadoop namenode -format ,格式化namenode。注意这里不要使用管理员权限,否则Hadoop启动时,会无权访问。 进入 hadoop 目录下 sbin 文件夹,双击打开 start-all.cmd 启动,弹出4个黑框,不报错则安装成功。 打开 http://127.0.0.1:8088/ ,网站已正常运行。
1.4 启动报错解决方案
1、Hadoop启动时找不到JAVA:如果 Java 找不到时,修改 JAVA_HOME set JAVA_HOME=D:\jdk 2、Hadoop启动时 错误:找不到或无法加载主机 xxx : 这时需要修改该文件下的 set HADOOP_IDENT_STRING 的值。如我的计算机的名称为 admin, 则修改为 :set HADOOP_IDENT_STRING="admin" 3、Hadoop namenode启动失败,报错setPosixFilePermissions:Hadoop 3.2.1版本问题,安装3.2.2解决。 4、spark启动报错java.net.URISyntaxException :使用3.2.2版本,且保持spark与Hadoop版本相同。
二、使用pycharm测试
2.1 安装anaconda并换源
anaconda官网下载过慢,建议通过镜像下载 清华大学开源软件镜像站 conda可通过 conda config --show channels 命令查看当前源。如果没有镜像源,建议配置。 conda更换清华镜像源代码如下
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes
配置完成后,查看源效果如下 配置环境变量,使用conda作为默认python引擎。 %ANACONDA_HOME% %ANACONDA_HOME%\Scripts %ANACONDA_HOME%\Library\bin %ANACONDA_HOME%\Library\mingw-w64\bin
2.2 安装pyspark与findspark
首先更新conda,否则会报错failed with initial frozen solve ,无法安装pyspark,更新conda命令为 conda update --all 执行完更新anaconda的命令后,安装pyspark即可。conda install pyspark=3.2.2 此外还需要安装findspark包,conda install findspark 。若不安装此包,程序会报错Python worker failed to connect back
2.3 代码测试
from pyspark import SparkConf, SparkContext
import findspark
if __name__ == '__main__':
findspark.init()
conf = SparkConf().setAppName('test').setMaster('local')
sc = SparkContext(conf = conf)
rdd = sc.parallelize([1,2,3,4,5,6])
result = rdd.filter(lambda x : x% 2 == 1)
print(result.collect())
如图,程序已可以正确输出结果,环境搭建完成。
参考网址
windows下安装spark Windows安装 hadoop 环境 java.io.IOException: NameNode is not formatted. 新创建的hadoop集群启动时报错namenode没有启动成功 Windows下hadoop环境搭建之NameNode启动报错 NameNode 启动失败 Python worker failed to connect back Anaconda 环境变量的配置
|