Spark Windows

 本文主要是讲解Spark在Windows环境是如何搭建的

一、JDK的安装

1、1 下载JDK

  首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略。JDK(全称是JavaTM Platform Standard Edition Development Kit)的安装,去Oracle官网下载,下载地址是Java SE Downloads 。

  上图中两个用红色标记的地方都是可以点击的,点击进去之后可以看到这个最新版本的一些更为详细的信息,如下图所示:

  下载完之后,我们安装就可以直接JDK,JDK在windows下的安装非常简单,按照正常的软件安装思路去双击下载得到的exe文件,然后设定你自己的安装目录(这个安装目录在设置环境变量的时候需要用到)即可。

1、2 JDK环境变量设置

  接下来设置相应的环境变量,设置方法为:在桌面右击【计算机】--【属性】--【高级系统设置】,然后在系统属性里选择【高级】--【环境变量】,然后在系统变量中找到“Path”变量,并选择“编辑”按钮后出来一个对话框,可以在里面添加上一步中所安装的JDK目录下的bin文件夹路径名,我这里的bin文件夹路径名是:C:\Program Files\Java\jre1.8.0_92\bin,所以将这个添加到path路径名下,注意用英文的分号“;”进行分割。如图所示:

  这样设置好后,便可以在任意目录下打开的cmd命令行窗口下运行下面命令。查看是否设置成功。

java -version

  观察是否能够输出相关java的版本信息,如果能够输出,说明JDK安装这一步便全部结束了。如图所示:

二、Scala的安装

  我们从官网:http://www.scala-lang.org/ 下载Scala,最新的版本为2.12.3,如图所示

因为我们是在Windows环境下,这也是本文的目的,我们选择对应的Windows版本下载,如图所示:

  下载得到Scala的msi文件后,可以双击执行安装。安装成功后,默认会将Scala的bin目录添加到PATH系统变量中去(如果没有,和上面JDK安装步骤中类似,将Scala安装目录下的bin目录路径,添加到系统变量PATH中),为了验证是否安装成功,开启一个新的cmd窗口,输入scala然后回车,如果能够正常进入到Scala的交互命令环境则表明安装成功。如下图所示:

备注:如果不能显示版本信息,并且未能进入Scala的交互命令行,通常有两种可能性: 
1、Path系统变量中未能正确添加Scala安装目录下的bin文件夹路径名,按照JDK安装中介绍的方法添加即可。 
2、Scala未能够正确安装,重复上面的步骤即可。

三、Spark的安装

我们到Spark官网进行下载:http://spark.apache.org/ ,我们选择带有Hadoop版本的Spark,如图所示:

  下载后得到了大约200M的文件: spark-2.2.0-bin-hadoop2.7

  这里使用的是Pre-built的版本,意思就是已经编译了好了,下载来直接用就好,Spark也有源码可以下载,但是得自己去手动编译之后才能使用。下载完成后将文件进行解压(可能需要解压两次),最好解压到一个盘的根目录下,并重命名为Spark,简单不易出错。并且需要注意的是,在Spark的文件目录路径名中,不要出现空格,类似于“Program Files”这样的文件夹名是不被允许的。我们在C盘新建一个Spark文件夹存放,如图所示:

  解压后基本上就差不多可以到cmd命令行下运行了。但这个时候每次运行spark-shell(spark的命令行交互窗口)的时候,都需要先cd到Spark的安装目录下,比较麻烦,因此可以将Spark的bin目录添加到系统变量PATH中。例如我这里的Spark的bin目录路径为D:\Spark\bin,那么就把这个路径名添加到系统变量的PATH中即可,方法和JDK安装过程中的环境变量设置一致,设置完系统变量后,在任意目录下的cmd命令行中,直接执行spark-shell命令,即可开启Spark的交互式命令行模式。

  系统变量设置后,就可以在任意当前目录下的cmd中运行spark-shell,但这个时候很有可能会碰到各种错误,这里主要是因为Spark是基于hadoop的,所以这里也有必要配置一个Hadoop的运行环境。错误如图所示:

接下来,我们还需要安装Hadoop。

四、Hadoop的安装

  在Hadoop Releases里可以看到Hadoop的各个历史版本,这里由于下载的Spark是基于Hadoop 2.7的(在Spark安装的第一个步骤中,我们选择的是Pre-built for Hadoop 2.7),我这里选择2.7.1版本,选择好相应版本并点击后,进入详细的下载页面,如下图所示:

  选择图中红色标记进行下载,这里上面的src版本就是源码,需要对Hadoop进行更改或者想自己进行编译的可以下载对应src文件,我这里下载的就是已经编译好的版本,即图中的“hadoop-2.7.1.tar.gz”文件。

下载并解压到指定目录,,我这里是C:\Hadoop,如图所示:

然后到环境变量部分设置HADOOP_HOME为Hadoop的解压目录,如图所示:

然后再设置该目录下的bin目录到系统变量的PATH下,我这里也就是C:\Hadoop\bin,如果已经添加了HADOOP_HOME系统变量,也可用%HADOOP_HOME%\bin来指定bin文件夹路径名。这两个系统变量设置好后,开启一个新的cmd窗口,然后直接输入spark-shell命令。如图所示:

  正常情况下是可以运行成功并进入到Spark的命令行环境下的,但是对于有些用户可能会遇到空指针的错误。这个时候,主要是因为Hadoop的bin目录下没有winutils.exe文件的原因造成的。这里的解决办法是: 

  可以去 https://github.com/steveloughran/winutils 选择你安装的Hadoop版本号,然后进入到bin目录下,找到winutils.exe文件,下载方法是点击winutils.exe文件,进入之后在页面的右上方部分有一个Download按钮,点击下载即可。 如图所示:

下载winutils.exe文件


  将下载好winutils.exe后,将这个文件放入到Hadoop的bin目录下,我这里是C:\Hadoop\hadoop-2.7.1\bin。


在打开的cmd中输入 

C:\Hadoop\hadoop-2.7.1\bin\winutils.exe chmod 777 /tmp/Hive  //修改权限,777是获取所有权限

但是我们发现报了一些其他的错(Linux环境下也是会出现这个错误)

1 <console>:14: error: not found: value spark
2        import spark.implicits._
3               ^
4 <console>:14: error: not found: value spark
5        import spark.sql

其原因是没有权限在spark中写入metastore_db 这个文件。

处理方法:我们授予777的权限

Linux环境,我们在root下操作:

1 sudo chmod 777 /home/hadoop/spark
2 
3 #为了方便,可以给所有的权限
4 sudo chmod a+w /home/hadoop/spark

window环境下:

存放Spark的文件夹不能设为只读和隐藏,如图所示:

授予完全控制的权限,如图所示:

经过这几个步骤之后,然后再次开启一个新的cmd窗口,如果正常的话,应该就可以通过直接输入spark-shell来运行Spark了。正常的运行界面应该如下图所示:

六、Python下Spark开发环境搭建

 下面简单讲解Python下怎么搭建Spark环境

1、将spark目录下的pyspark文件夹(C:\Spark\python\pyspark)复制到python安装目录C:\Python\Python35\Lib\site-packages里。如图所示

spark的pysaprk

将pyspark拷贝至Python的安装的packages目录下。


2、然后使用cd命令,进入目录D:\python27\Scripts,运行pip install py4j安装py4j库。如图所示:

如果需要在python中或者在类似于IDEA IntelliJ或者PyCharm(笔者用的就是PyCharm)等IDE中使用PySpark的话,需要在系统变量中新建一个PYTHONPATH的系统变量,然后设置好下面变量值就可以了

PATHONPATH=%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip

后面的事情就交给PyCharm了。

至此,Spark在Windows环境下的搭建讲解已结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这个回答让我错失offer!成功收获美团,小米安卓offer

前言 我们移动开发程序员应该首先明白一个要点&#xff0c;能够学习的东西可以区分为『知识』和『技能』。 知识&#xff0c;就是你知道就知道、不知道就不知道的东西&#xff0c;比如『计算机系统中一个字节是包含8个bit』&#xff0c;你知道了之后就算掌握了。 技能&#…

这么香的技术还不快点学起来,不吃透都对不起自己

大家应该看过很多分享面试成功的经验&#xff0c;但根据幸存者偏差的理论&#xff0c;也许多看看别人面试失败在哪里&#xff0c;对自己才更有帮助。 最近跟一个朋友聊天&#xff0c;他准备了几个月&#xff0c;刚刚参加完字节跳动面试&#xff0c;第二面结束后&#xff0c;嗯&…

Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的

前言 用c#开发的时候&#xff0c;新建的脚本都默认继承自Monobehaviour, 因此脚本才有了自己的生命周期函数&#xff0c;如Awake,Start, Update, OnDestroy等。 在相应的方法中实现游戏逻辑&#xff0c;引擎会适时调用。 而Lua在这里做为c#的一个外延语言&#xff0c;自然是不受…

这么香的技术还不快点学起来,含BATJM大厂

前言 北京字节跳动科技有限公司成立于2012年3月&#xff0c;是最早将人工智能应用于移动互联网场景的科技企业之一。其独立研发的“今日头条”客户端&#xff0c;开创了一种全新的新闻阅读模式。 我一直很向往这样有创新精神&#xff0c;并做出了巨大成果的大公司&#xff0c…

这些Android高级必会知识点你能答出来几个?含BATJM大厂

前言 首先介绍一下自己&#xff0c;计算机水本&#xff0c;考研与我无缘。之前在帝都某公司算法部实习&#xff0c;公司算大公司吧&#xff0c;然而个人爱好偏开发&#xff0c;大二的时候写个一个app&#xff0c;主要是用各种框架。 一、掌握架构师筑基必备技能 二、掌握Andr…

这些年Android面试的那些套路,社招面试心得

前言 说不焦虑其实是假的&#xff0c;因为无论是现在还是最近几年&#xff0c;很早就有人察觉Android开发的野蛮生长时代已经过去。过去的优势是市场需要&#xff0c;这个技术少有人有&#xff0c;所以在抢占市场的时候&#xff0c;基本上满足需要就已经可以了。但是现在&…

安卓开发入门到精通!免费Android高级工程师学习资源,系列篇

前言 2017年进大学开始接触Android&#xff0c;从刚开始接触就不断地听到Android市场饱和&#xff0c;工作难找等消息。虽然当时也非常迷茫&#xff0c;不过由于第一次深入接触编程语言&#xff0c;再加上自己的一点兴趣&#xff0c;就一直坚持下来了。 到现在要毕业了&#…

安卓开发基础面试题,9次Android面试经验总结,面试必备

前言 上回承诺过大家&#xff0c;一定会出 HTTP 的系列文章&#xff0c;今天终于整理完成了。作为一个 web 开发&#xff0c;HTTP 几乎是天天要打交道的东西&#xff0c;但我发现大部分人对 HTTP 只是浅尝辄止&#xff0c;对更多的细节及原理就了解不深了&#xff0c;在面试的…

基于TCP的在线聊天程序

在线聊天服务端 import tkinter import tkinter.font as tkFont import socket import threading import time import sys class ServerUI():local127.0.0.1port5505global serverSock;flagFalsedef __init__(self):self.roottkinter.Tk()self.root.title(在线聊天-服务端v1.0)…

Docker安装Confluence

Docker安装Confluence 参考链接: https://my.oschina.net/u/2289161/blog/1648587 https://hub.docker.com/r/cptactionhank/atlassian-confluence/dockerfile https://my.oschina.net/u/2289161/blog/1647061 https://my.oschina.net/u/2289161/blog/838218 https://hub.…

安卓开发基础面试题,Android面试必备的集合源码详解,附小技巧

去年无疑是 Flutter 技术如火如荼发展的一年。 每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂&#xff0c;从超级 App 到独立应用&#xff0c;从纯 Flutter 到混合栈&#xff0c;开发者们在不同的场景下乐此不疲的探…

『算法』读书笔记 1.4算法分析 Part1

Chapter 1 本章结构 1.1Java语法 1.2数据抽象 1.3集合类抽象数据类型&#xff1a;背包 (Bags) 、队列 (Queues) 、栈 (Stacks) 1.4算法分析 1.5连通性问题&#xff0d;Case Study: Union - Find ADT 本节开篇使用了一个ThreeSum程序进行示例&#xff1a; ThreeSum所起到的作用…

安卓开发工程师面试题!春招我借这份PDF的复习思路,不吃透都对不起自己

写在前面 身边有不少去大厂面试的朋友&#xff0c;其中小金面试字节跳动的经历很有意义&#xff0c;在这里分享给大家。小金是末流211计算机专业大三本科生&#xff0c;前几天面试了字节跳动的广州Android开发实习生。下面是他的面试经历&#xff0c;还有一些他自己的经验。 …

安卓开发必须会的技能!浅谈Android消息机制原理,威力加强版

目录 想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样。 PagerAdapter 介绍ViwePager 缓存策略ViewPager 布局处理ViewPager 事件处理相关内容 Android 基础 1.Activity 1、 什么是 Activi…

NuGet 无法连接到远程服务器-解决方法(转)

原地址&#xff1a; http://www.lixin.me/blog/2012/03/01/29362 今天打开NuGet的Manage NuGet Packages&#xff0c;显示“无法连接到远程服务器”。打开Setting-》Package Manager-》Package Sources。看到里面有一个源&#xff1a;https://go.microsoft.com/fwlink/?LinkID…

安卓开发面试书籍,全世界都在问Android开发凉了吗?建议收藏

前言 本想今年辞掉工作大干一场&#xff0c;没想到碰到疫情&#xff0c;家里蹲了3个月…&#xff0c;还好字节能给一次机会。前阵子字节跳动的提前批开始了&#xff0c;看宣传是说有海量HC&#xff0c;机会多多&#xff0c;本着涨涨面经的心理&#xff0c;然后就投递了一下杭州…

杭州集训Day5

下面是Day5的题目&#xff01;&#xff08;其实都咕了好几天了 1007040210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述有一个n*n的王国城堡地图上&#xff0c;皇后XY喜欢看骑士之间的战斗&#xff0c;于是他准备布置m个骑士&#xff0c;其中每一个骑士都可以向8个方向&#x…

安卓开发面试书籍,每个程序员都必须掌握的8种数据结构!面试必会

前言 本篇文章主要记录分享我的面试准备过程。 很多朋友问我为什么离职 关于离职原因&#xff0c;马云有一句经典的话“要么钱没给到位&#xff0c;要么心委屈了”&#xff0c;想必大家耳熟能详了&#xff0c;我这里再细说一下我个人离职原因&#xff1a; 工资倒挂&#xf…

使用thinkPHP做注册程序的实例

登录界面&#xff1a; 数据库和数据表的结构 具体的操作步骤如下&#xff1a; 第一步&#xff1a;入口文件index.php内容 (此文件基本是属于固定的格式&#xff09; <?phpdefine(THINK_PATH,./ThinkPHP/);define(APP_NAME,MyApp);define(APP_PAHT,./MyApp/);require_once T…

安卓开发面试技能介绍,来一份全面的面试宝典练练手,不吃透都对不起自己

前言 网上有很多对程序员简历的一些指导&#xff0c;这里就不重述&#xff0c;大家可以搜下网上其他大神的总结&#xff0c;结合自身情况修改下。我有几点建议&#xff1a; 1.尽量不要花哨&#xff0c;程序员和设计师或者产品运营还不一样&#xff0c;我们的简历成功与否决定…