文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spark的安装及其配置

2018-09-29 15:48

关注

Spark的安装及其配置

1.Spark下载

https://archive.apache.org/dist/spark/

 

2.上传解压,配置环境变量 配置bin目录

解压:tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /usr/local/soft/

改名:mv spark-2.4.5-bin-hadoop2.7/ spark-2.4.5

配置环境变量:vim /etc/profile

添加环境变量:

export SPARK_HOME=/usr/local/soft/spark-2.4.5
export PATH=$PATH:$SPARK_HOME/bin

保存配置:source /etc/profile

 

3.修改配置文件 conf

修改spark-env.sh: cp spark-env.sh.template spark-env.sh

增加配置:

export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077

export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=2g
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

 

修改:cp slaves.template slaves

 

增加:

node1

node2

 

4.发放到其他节点

xsync spark-2.4.5

(xsync是自己写的脚本,在安装Hadoop的时候写过)

 

4、在主节点执行启动命令
启动集群,在master中执行
./sbin/start-all.sh

 

 

 http://master:8080/  访问spark ui

 

 

 5.检验安装的Spark

1. standalone client模式 日志在本地输出,一班用于上线前测试(bin/下执行)

需要进入到spark-examples_2.11-2.4.5.jar 包所在的目录下执行
cd /usr/local/soft/spark-2.4.5/examples/jars

spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-examples_2.11-2.4.5.jar 100


2. standalone cluster模式 上线使用,不会再本地打印日志
spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --driver-memory 512m --deploy-mode cluster --supervise --executor-memory 512M --total-executor-cores 1 spark-examples_2.11-2.4.5.jar 100

spark-shell spark 提供的一个交互式的命令行,可以直接写代码

spark-shell master spark://master:7077

 

6.整合yarn

在公司一般不适用standalone模式,因为公司一般已经有yarn 不需要搞两个资源管理框架

停止spark集群
在spark sbin目录下执行 ./stop-all.sh

spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的spark 文件

1、增加hadoop 配置文件地址

vim spark-env.sh
增加
export HADOOP_CONF_DIR=/usr/local/soft/hadoop-2.7.6/etc/hadoop

 

 

2、往yarn提交任务需要增加两个配置 yarn-site.xml(/usr/local/soft/hadoop-2.7.6/etc/hadoop/yarn-site.xml)

先关闭yarn
stop-yarn.sh


yarn.nodemanager.pmem-check-enabled
false


yarn.nodemanager.vmem-check-enabled
false

 

4、同步到其他节点,重启yarn
scp -r yarn-site.xml node1:`pwd`
scp -r yarn-site.xml node2:`pwd`


启动yarn
start-yarn.sh


cd /usr/local/soft/spark-2.4.5/examples/jars

3.spark on yarn client模式 日志在本地输出,一班用于上线前测试
spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 512M --num-executors 2 spark-examples_2.11-2.4.5.jar 100


4.spark on yarn cluster模式 上线使用,不会再本地打印日志 减少io
spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 512m --num-executors 2 --executor-cores 1 spark-examples_2.11-2.4.5.jar 100

获取yarn程序执行日志 执行成功之后才能获取到
yarn logs -applicationId application_1560967444524_0003

 

hdfs webui
http://node1:50070

yarn ui
http://node1:8088

 

在idea中使用spark做wordCount

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo1WordCount {
  def main(args: Array[String]): Unit = {

    // Spark配置文件对象
    val conf: SparkConf = new SparkConf()
    // 设置Spark程序的名字
    conf.setAppName("Demo1WordCount")
    // 设置运行模式为local模式 即在idea本地运行
    conf.setMaster("local")

    // Spark的上下文环境,相当于Spark的入口
    val sc: SparkContext = new SparkContext(conf)

    // 词频统计
    // 1、读取文件
    
    val linesRDD: RDD[String] = sc.textFile("spark/data/words")

    // 2、将每一行的单词切分出来
    // flatMap: 在Spark中称为 算子
    // 算子一般情况下都会返回另外一个新的RDD
    val wordsRDD: RDD[String] = linesRDD.flatMap(line => line.split(","))

    // 3、按照单词分组
    val groupRDD: RDD[(String, Iterable[String])] = wordsRDD.groupBy(word => word)

    // 4、统计每个单词的数量
    val countRDD: RDD[String] = groupRDD.map(kv => {
      val word: String = kv._1
      val words: Iterable[String] = kv._2
      // words.size直接获取迭代器的大小
      // 因为相同分组的所有的单词都会到迭代器中
      // 所以迭代器的大小就是单词的数量
      word + "," + words.size
    })

    // 5、将结果进行保存
    countRDD.saveAsTextFile("spark/data/wordCount")

  }

}

  

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯