博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows 安装 spark 及 pycharm 调试 TopN 实例
阅读量:6569 次
发布时间:2019-06-24

本文共 3375 字,大约阅读时间需要 11 分钟。

hot3.png

首先声明本文搭建的环境为:windows8.1 + spark1.6.0 + python2.7 + jdk8,spark on windows 对 windows及python版本不怎么挑,但是对 spark 版本要求极其苛刻,比如 spark1.6.1 就无法运行。

1、安装 jdk

安装spark第一步就是安装jdk(无论windows还是linux),spark执行依赖jdk。在oracle官网上下载jdk,这里我选择的是8u74 windows x64版本,你也可以根据自己的需求下载,jdk的安装在此不表,无非就是下一步,选安装路径什么的。

关于具体的 jdk path 怎么设置可以参考 hadoop on windows 这个系列,在此不再赘述:

2、安装spark

在Apache Spark™官方网站下载spark,选择spark-1.6.0-bin-hadoop2.6.tgz。

添加spark环境变量,在PATH后面追加:

%SPARK_HOME%\bin
%SPARK_HOME%\sbin

windows 环境下的spark搭建完毕!!!

注意此处有坑:

Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

spark虽然支持standalone模式,并且不依赖hadoop。但是在windows环境下还是需要hadoop的这个winutils.exe。因此需要下载2.6版本匹配的winutils.exe. 可以google "hadoop.dll 2.6" 或在此下载(),将下载后的文件覆盖至hadoop的bin目录(没有自己建个目录设置相应hadoop环境变量即可)。

3、搭建 pyspark 开发环境

spark支持scala、python和java,由于对python的好感多于scala,因此开发环境是Python。

下面开始搭建python环境:

2.7或3.5均可,安装过程在此不表,安装完成后在环境变量里添加PYTHONPATH,这一步很重要:

26190527_ejsF.png

如果配置正确,打开python自带的IDE,输入以下代码,然后等待连接成功的消息即可:

from pyspark import SparkConf, SparkContext conf = SparkConf().setMaster("local").setAppName("MY First App") sc = SparkContext(conf = conf)

也可以手动启动测试下:

spark-class.cmd org.apache.spark.deploy.master.Masterspark-class.cmd org.apache.spark.deploy.worker.Worker spark://localhost:7077

4、SPARK分析CSDN密码库常用密码 TOP10

# coding=utf-8# 测试utf-8编码from __future__ import divisionimport decimalfrom pyspark import SparkConf, SparkContext, StorageLevelimport sysreload(sys)sys.setdefaultencoding('utf-8')conf = SparkConf().setMaster("local").setAppName("CSDN_PASSWD_Top10")sc = SparkContext(conf=conf)file_rdd = sc.textFile("H:\mysql\csdn_database\www.csdn.net.sql")passwds = file_rdd.map(lambda line: line.split("#")[1].strip()).map(lambda passwd: (passwd, 1)).persist(    storageLevel=StorageLevel.MEMORY_AND_DISK_SER)passwd_nums = passwds.count()top10_passwd = passwds.reduceByKey(lambda a, b: a + b).sortBy(lambda item: item[1], ascending=False).take(10)for item in top10_passwd:    print item[0] + "\t" + str(item[1]) + "\t" + str(round(decimal.Decimal(item[1] / passwd_nums), 4) * 100) + "%"# 123456789       235037  3.66%# 12345678        212761  3.31%# 11111111        76348   1.19%# dearbook        46053   0.72%# 00000000        34953   0.54%# 123123123       20010   0.31%# 1234567890      17794   0.28%# 88888888        15033   0.23%# 111111111       6995    0.11%# 147258369       5966    0.09%# 最后来验证一下数据:# 数据量:650w 记录,pyspark 耗时 3分54秒,机器配置:i5 cpu,4G MEM,250G SSD,win8.1 操作系统,python 2.7.11# awk -F"#" 'a[$2]++{for(i in a)print i"\t"a[i]}' www.csdn.net.sql|sort -k2nr|head -10# cygwin 下性能太差,等待半小时无结果,Kill# grep -F '# 123456789 #' www.csdn.net.sql|wc -l# 235012# awk -F'#' '{print $2}' www.csdn.net.sql|grep -P '\s+123456789\s+'|wc -l# 235033# awk -F'#' '{print $2}' www.csdn.net.sql|grep -E '^123456789$'|wc -l# 0# awk -F'#' '{print $2}' www.csdn.net.sql|grep -E ' 123456789$'|wc -l# 5# awk -F'#' '{print $2}' www.csdn.net.sql|grep -E '^123456789 '|wc -l# 0

refer:

[1] Spark 入门(Python、Scala 版)

[2] Spark Streaming Programming Guide

[3] 如何在windows安装部署spark 求大神们的告知...?

[4] spark在windows下的安装

        

        

        

        

[5] Spark本地模式运行

[6] Spark编程指南笔记

[7] Spark RDD API详解(一) Map和Reduce

[8] Spark算子系列文章

     spark中的action和transformation

[9] Spark性能优化指南——基础篇

[10] Spark性能优化指南——高级篇

[11] Spark性能优化——和shuffle搏斗

[12] Spark数据分析实战:大型活动大规模人群的检测和疏散

转载于:https://my.oschina.net/leejun2005/blog/64229

你可能感兴趣的文章
7.5. nload: Console application which monitors network traffic and bandwidth
查看>>
Elasticsearch增删改查 之 —— Update更新
查看>>
电商总结(五)移动M站建设
查看>>
JS 中如何判断 undefined 和 null
查看>>
99%的人都理解错了HTTP中GET与POST的区别
查看>>
9.2. CentOS 区域设置
查看>>
人工神经网络完爆人类的6大领域:看车都能预测选举
查看>>
魏振南:工业装备物联网线上线下创新融合助力智能化工厂建设
查看>>
[20160215]超长sql语句与父子光标.txt
查看>>
【hihocoder 1258 Osu! Master】
查看>>
Bootstrap<基础十五> 输入框组
查看>>
【Cocos2d-x】Cocos2d-x精灵的性能优化
查看>>
在JavaWeb项目中URL中字符串加密解密方案
查看>>
JQuery Easy Ui (Tree树)详解(转)
查看>>
Java---类反射(1)---类反射入门和基础
查看>>
消息总线VS消息队列
查看>>
搭建 Http Dynamic Streaming 点播/直播服务器
查看>>
解决webstom failed to change read-only files
查看>>
由Ctrl+Z引发的系统卡死重启问题分析
查看>>
关于Class文件
查看>>