大数据技术全面解读 spark(一)入门与安装
沉沙 2018-10-10 来源 : 阅读 1286 评论 0

摘要:本篇教程探讨了大数据技术全面解读 spark(一)入门与安装,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术全面解读 spark(一)入门与安装,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

一、概述

  1.什么是spark

  从官网//spark.apache.org/可以得知:

    Apache Spark™ is a fast and general engine for large-scale data processing.

  主要的特性有:

  Speed:快如闪电(HADOOP的100倍+)

  Easy to Use:Scala——Perfect、Python——Nice、Java——Ugly、R

  Generality:Spark内核上可以跑Spark SQL、Spark Streaming、GraphX等。

  Run EveryWhere:HADOOP、HBASE、kubernetes等。

  中文简明介绍:

     

      Spark是一种快速、通用、可扩展的大数据分析引擎;

      2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。

      目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。Spark得到了众多大数据公司的支持,这些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark已应用于凤巢、大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当前已知的世界上最大的Spark集群。

     

   更多介绍,参见官网
二、安装

  这里下载的是spark的1.6.3的pre build的版本,对应的是Hadoop2.6以及scala 2.10的版本,这里也是为了兼容之前安装的Hadoop等版本。到今天(2018.4)为止,spark的2.0版本已经发布了有一段时间了,后续将会进行2.0版本新特性的相关补充,此处入门就以1.6.3为例!

  1.下载

  这里用本机下载好了,通过sftp上传到了mini1

  

  // 前置条件JDK等已经安装完毕!

  2.解压

[hadoop@mini1 ~]$ tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz -C apps/

  // 这里发现之前安装的时候Home目录只给了2G,而选择软件安装的时候又都安装在Home目录下了,通过df -h和du -sh查看到使用情况。下次需要注意!

  

  基本上,目录下也是常见的套路:sbin里一些起停脚本,bin下一些操作脚本等

  3.配置

  进入spark的conf目录,常规的套路了:

[hadoop@mini1 spark-1.6.3-bin-hadoop2.6]$ cd conf/
[hadoop@mini1 conf]$ mv spark-env.sh.template spark-env.sh

vim spark-env.sh 

  追加以下内容(最简配置):请通过export命令提前查看相关变量值(这里Hosts也已经配置了)

export JAVA_HOME=/opt/java/jdk1.8.0_151
export SPARK_MASTER_IP=mini1
export SPARK_MASTER_PORT=7077

  配置slaves:

[hadoop@mini1 conf]$ mv slaves.template slaves

vim slaves

  配置worker节点:(和Hadoop基本类似套路)

mini2
mini3

  4.拷贝到其他节点

scp -r spark-1.6.3-bin-hadoop2.6/ mini2:/home/hadoop/apps/
scp -r spark-1.6.3-bin-hadoop2.6/ mini3:/home/hadoop/apps/

   5.启动测试

  在mini1上启动(暂时未配置环境变量):

[hadoop@mini1 spark-1.6.3-bin-hadoop2.6]$ sbin/start-all.sh 

  通过jps可以看到Master和Worker等进程;

  WEB界面://mini1:8080/

 

   6.Master单点问题


到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:
Spark集群规划:node1,node2是Master;node3,node4,node5是Worker
安装配置zk集群,并启动zk集群
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"
1.在node1节点上修改slaves配置文件内容指定worker节点
2.在node1上执行sbin/start-all.sh脚本,然后在node2上执行sbin/start-master.sh启动第二个Master


三、执行Spark程序

  1.执行spark示例程序


/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node1.itcast.cn:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/usr/local/spark-1.5.2-bin-hadoop2.6/lib/spark-examples-1.5.2-hadoop2.6.0.jar \
100



  //根据实际安装修改相关命令位置(出现的小错误这里暂时忽略,后续处理)

  2.启动spark shell


[hadoop@mini1 ~]$ /home/hadoop/apps/spark-1.6.3-bin-hadoop2.6/bin/spark-shell \
> --master spark://mini1:7077 \
> --executor-memory 1g \
> --total-executor-cores 2

参数说明:
--master spark://node1.itcast.cn:7077 指定Master的地址,如果不指定,则为Local模式了!
--executor-memory 2g 指定每个worker可用内存为2G
--total-executor-cores 2 指定整个集群使用的cup核数为2个



  Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可


1.首先启动hdfs
2.向hdfs上传一个文件到hdfs://node1.itcast.cn:9000/words.txt
3.在spark shell中用scala语言编写spark程序
sc.textFile("hdfs://node1.itcast.cn:9000/words.txt").flatMap(_.split(" "))
.map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://node1.itcast.cn:9000/out")

4.使用hdfs命令查看结果
hdfs dfs -ls hdfs://node1.itcast.cn:9000/out/p*

说明:
sc是SparkContext对象,该对象时提交spark程序的入口
textFile(hdfs://node1.itcast.cn:9000/words.txt)是hdfs中读取数据
flatMap(_.split(" "))先map在压平
map((_,1))将单词和1构成元组
reduceByKey(_+_)按照key进行reduce,并将value累加
saveAsTextFile("hdfs://node1.itcast.cn:9000/out")将结果写入到hdfs中    

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程