更新说明

  • 免密码登录
for f in  `cat ~/machines`; do
scp .ssh/id_dsa.pub $f:~/
ssh $f "cat id_dsa.pub >> .ssh/authorized_keys"
done
  • 安装
for f in `cat machines `; do
scp ~/software/soft/spark-2.1.0-bin-hadoop2.7.tgz $f:~/ ;
ssh -t $f "
sudo mkdir /opt/spark
cd /opt/spark/;
sudo tar -zxvf /home/keke.zhaokk/spark-2.1.0-bin-hadoop2.7.tgz ;
sudo ln -s spark-2.1.0-bin-hadoop2.7 current;
sudo chown -R keke.zhaokk /opt/spark/*;
"
done
  • 修改配置

    注意 SPARK_MASTER_IP=10.11.143.30 需要改为 SPARK_MASTER_HOST=10.11.143.30

  • 复制配置

for f in `cat machines `; do
scp -r $SPARK_HOME/conf/ $f:~/
ssh $f "
mv conf/slaves $SPARK_HOME/conf/
mv conf/*.sh $SPARK_HOME/conf/
"
done

spark-集群搭建

  • 机器
角色 IP 安装软件
worker 10.11.143.24 python(Anaconda3 4.0.0), R, spark-2.X-bin-hadoopX.X
worker 10.11.143.26 python(Anaconda3 4.0.0), R, spark-2.X-bin-hadoopX.X
master 10.11.143.30 python(Anaconda3 4.0.0), R, spark-2.X-bin-hadoopX.X
  • 查看使用情况 http://10.11.143.30:8080/
  • 集群通过 start-all.sh,stop-all.sh来开启和停止.
  • 在脚本使用
spark-shell --total-executor-cores 30  --executor-memory 50g  \
--master spark://10.11.143.30:7077
# 或者
pyspark --total-executor-cores 10 --executor-memory 50g \
--master spark://10.11.143.30:7077
  • 在Rstudio中使用
## 配置
library(SparkR)
sc = sparkR.init(
master = "spark://10.11.143.30:7077",
sparkEnvir = list(spark.executor.memory="100g",spark.cores.max="20")
)
sqlContext = sparkRSQL.init(sc)
## 处理数据 ### 本地数据
read.df(sqlContext,
paste0(Sys.getenv("SPARK_HOME"),
"/examples/src/main/resources/people.json" ),
"json") -> people
head(people) ### 数据
createDataFrame( sqlContext, data_dataframe) -> data_spark
head(data_spark)
printSchema(data_spark) ### SQL registerTempTable(people,"people")
teenagers = sql(sqlContext, "select name from people where age>13 and age<=19") ### 转为data.frame
as.data.frame(teenagers) -> T ## stop
sparkR.stop()
  • 在jupyter中使用, 见最后
  • 调用例子, 在上面任意Linux机器上
$SPARK_HOME/bin/spark-submit --class  org.apache.spark.examples.SparkLR --master spark://10.11.143.30:7077 \
$SPARK_HOME/examples/jars/spark-examples_2.11-2.0.0-preview.jar > out.log

安装说明

  • 解压spark-2.0.0-preview-bin-hadoop2.7.tgz到$SPARK_HOME目录下
  • 配置master机器, 使得root账号能无密码登录worker机器
  • master机器按照如下配置, 然后复制到worker机器上.
$sed -r '/^#/d;/^$/d' spark-env.sh
SPARK_MASTER_IP=10.11.143.30
#SPARK_LOCAL_IP=10.11.143.26 # 26这台机器出现错误, 需要加上这句. [keke.zhaokk@r73f16622.zui /opt/spark/spark-2.0.0-preview-bin-hadoop2.7/conf]
$sed -r '/^#/d;/^$/d' spark-defaults.conf
spark.master spark://10.11.143.30:7077
spark.executor.memory 100g
spark.cores.max 30 [keke.zhaokk@r73f16622.zui /opt/spark/spark-2.0.0-preview-bin-hadoop2.7/conf]
$sed -r '/^#/d;/^$/d' slaves
10.11.143.24
10.11.143.26
10.11.143.30 $tail -6 /etc/bashrc export JAVA_HOME=/opt/taobao/install/ajdk-8.0.0-b60
export PATH=$PATH:$JAVA_HOME/bin # worker 机器不需要这句
export SPARK_HOME=/opt/spark/spark-2.0.0-preview-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin # worker 机器不需要这句

Windows下使用spark(单机版)

  • 将winutils.exe 放到%HADOOP_HOME%\bin\ 目录下
  • 解压 spark-2.0.0-preview-bin-hadoop2.7.tgz 到 %SPARK_HOME%
  • 将%SPARK_HOME%\bin; %SPARK_HOME%\sbin; 添加到环境变量PATH中

在jupyter中使用

配置环境变量

import os,sys
os.environ['SPARK_HOME'] = '/opt/spark/spark-2.0.0-preview-bin-hadoop2.7'
os.environ['JAVA_HOME']='/opt/taobao/install/ajdk-8.0.0-b60'
os.environ['PYSPARK_SUBMIT_ARGS']='''
--total-executor-cores 10 --executor-memory 50g
--master spark://10.11.143.30:7077 pyspark-shell
'''

调用pyspark

import os,sys
spark_home = os.environ.get('SPARK_HOME', None) if any(map(lambda x: spark_home in x, sys.path)) is False:
sys.path.insert(0, os.path.join(spark_home ,"python"))
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.10.1-src.zip')) with open(os.path.join(spark_home, "python/pyspark/shell.py")) as f:
code = compile(f.read(), "shell.py", 'exec')
exec(code) text_file = sc.textFile(spark_home + "/README.md")
word_counts = text_file \
.flatMap(lambda line: line.split()) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b) len(word_counts.collect())
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 2.0.0-preview
/_/ Using Python version 2.7.8 (default, Nov 27 2014 17:41:17)
SparkSession available as 'spark'. 263

停止调用

sc.stop()

使用spark的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. Spark RDD 核心总结

    摘要: 1.RDD的五大属性 1.1 partitions(分区) 1.2 partitioner(分区方法) 1.3 dependencies(依赖关系) 1.4 compute(获取分区迭代列表) ...

  3. spark处理大规模语料库统计词汇

    最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...

  4. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  5. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  6. Spark踩坑记——初试

    [TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apach ...

  7. Spark读写Hbase的二种方式对比

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...

  8. (资源整理)带你入门Spark

    一.Spark简介: 以下是百度百科对Spark的介绍: Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方 ...

  9. Spark的StandAlone模式原理和安装、Spark-on-YARN的理解

    Spark是一个内存迭代式运算框架,通过RDD来描述数据从哪里来,数据用那个算子计算,计算完的数据保存到哪里,RDD之间的依赖关系.他只是一个运算框架,和storm一样只做运算,不做存储. Spark ...

  10. (一)Spark简介-Java&Python版Spark

    Spark简介 视频教程: 1.优酷 2.YouTube 简介: Spark是加州大学伯克利分校AMP实验室,开发的通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月 ...

随机推荐

  1. 19 01 19 视图 HttpReqeust对象 GET属性 POST属性 HttpResponse对象

    ---恢复内容开始--- URLconf 义,指定URL和视图函数的对应关系. 在应用内部创建urls.py文件,指定请求地址与视图的对应关系. url(正则,'视图函数名称') 1)如示例在book ...

  2. python里的反射(自学习)

    在做程序开发中,我们常常会遇到这样的需求:需要执行对象里的某个方法,或需要调用对象中的某个变量,但是由于种种原因我们无法确定这个方法或变量是否存在,这是我们需要用一个特殊的方法或机制要访问和操作这个未 ...

  3. hibernate.QueryException: Legacy-style query parameters (`?`) are no longer supported

    传统样式查询参数(`?`)不再支持:使用JPA样式的序号参数(例如,`?1’) hibernate4.1之后已经对HQL查询参数中的占位符做了改进: 更改代码:

  4. 二十三、CI框架之post

    一.在控制器里面代码如下: 二.在View里面写好按钮和需要post的代码 三.效果如下,点击按钮之前: 点击按钮之后, 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额 ...

  5. mysql数据库索引优化

    参考 :http://www.cnblogs.com/yangmei123/archive/2016/04/10/5375723.html MySQL数据库的优化:    数据库优化的目的:     ...

  6. 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具

    Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...

  7. php和js的小区别

    1.今天看了下php的api感觉还可以,不是很难,可能没看到深入的地方, (1)和js很相似 目前感觉它和js的最大区别 js的  点  被替换成 -> function setCate($pa ...

  8. OO第三单元“技术”博客

    主要针对第三单元的三次作业 JML语言的理论基础.应用工具链情况 JML指的是Java建模语言,全称是Java modeling language,是一种行为接口规范语言,可用于指定Java模块的行为 ...

  9. k8s pod.yml解释

    apiVersion: v1kind: Podmetadata:  name: yueying  namespace: kube-public  labels:    name: testpodssp ...

  10. golang实现单链表

    package main import "fmt" type Object interface{} type Node struct { data Object next *Nod ...