返回顶部
首页 > 资讯 > 精选 >如何进行spark 2.2.0 Standalone安装及wordCount演示
  • 957
分享到

如何进行spark 2.2.0 Standalone安装及wordCount演示

2023-06-03 02:06:15 957人浏览 八月长安
摘要

本篇文章为大家展示了如何进行spark 2.2.0 Standalone安装及WordCount演示,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前提:安装好hadoop集群,一、 Scala 安装

本篇文章为大家展示了如何进行spark 2.2.0 Standalone安装及WordCount演示,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。


前提:安装好hadoop集群

一、 Scala 安装

下载 scala 安装包 :https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz

上传 scala 安装包 
[root@hadp-master local]# pwd
/usr/local
[root@hadp-master local]# ll scala-2.11.7.tgz 
-rw-r--r--. 1 root root 28460530 Feb 25 03:53 scala-2.11.7.tgz

解压并删除安装包
[root@hadp-master local]# tar -zxvf scala-2.11.7.tgz
[root@hadp-master local]# rm -rf scala-2.11.7.tgz

配置环境变量
vi /etc/profile 添加如下

export SCALA_HOME=/usr/local/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin

生效,查看scala版本
[root@hadp-master local]# scala -version
Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL

其他主机配置scala环境

[root@hadp-master local]# scp -r /usr/local/scala-2.11.7/ hadp-node1:/usr/local/
[root@hadp-master local]# scp -r /usr/local/scala-2.11.7/ hadp-node2:/usr/local/
[root@hadp-master local]# scp -r /etc/profile hadp-node1:/etc/profile
profile 100% 2414 2.4KB/s 00:00 
[root@hadp-master local]# scp -r /etc/profile hadp-node2:/etc/profile
profile 100% 2414 2.4KB/s 00:00

二、 spark 安装

下载 spark 安装包,上传
[root@hadp-master local]# pwd
/usr/local
[root@hadp-master local]# ll spark-2.2.0-bin-hadoop2.7.tgz 
-rw-r--r--. 1 root root 203728858 Feb 25 04:20 spark-2.2.0-bin-hadoop2.7.tgz

解压
[root@hadp-master local]# tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz

配置环境变量
vi /etc/profile 添加如下内容
export SPARK_HOME=/usr/local/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

配置Spark环境
[root@hadp-master local]# cd spark-2.2.0-bin-hadoop2.7/conf/
[root@hadp-master conf]# ll
total 32
-rw-r--r--. 1 500 500 996 Jul 1 2017 Docker.properties.template
-rw-r--r--. 1 500 500 1105 Jul 1 2017 fairscheduler.xml.template
-rw-r--r--. 1 500 500 2025 Jul 1 2017 log4j.properties.template
-rw-r--r--. 1 500 500 7313 Jul 1 2017 metrics.properties.template
-rw-r--r--. 1 500 500 865 Jul 1 2017 slaves.template
-rw-r--r--. 1 500 500 1292 Jul 1 2017 spark-defaults.conf.template
-rwxr-xr-x. 1 500 500 3699 Jul 1 2017 spark-env.sh.template

1
[root@hadp-master conf]# cp spark-env.sh.template spark-env.sh
[root@hadp-master conf]# vi spark-env.sh 末尾添加如下:

export JAVA_HOME=/usr/local/jdk1.8.0_131

export SCALA_HOME=/usr/local/scala-2.11.7

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4/

export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.4/etc/hadoop

export SPARK_MASTER_IP=hadp-master

export SPARK_WORKER_MEMORY=1g

export SPARK_WORKER_CORES=2

export SPARK_WORKER_INSTANCES=1

变量说明 
- JAVA_HOME:Java安装目录 
- SCALA_HOME:Scala安装目录 
- HADOOP_HOME:hadoop安装目录 
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录 
- SPARK_MASTER_IP:spark集群的Master节点的ip地址 
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小 
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目 
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目


[root@hadp-master conf]# cp slaves.template slaves
[root@hadp-master conf]# vi slaves 添加如下
# A Spark Worker will be started on each of the Machines listed below.
hadp-node1
hadp-node2


[root@hadp-master local]# scp -r spark-2.2.0-bin-hadoop2.7/ hadp-node1:/usr/local
[root@hadp-master local]# scp -r spark-2.2.0-bin-hadoop2.7/ hadp-node2:/usr/local
[root@hadp-master local]# scp /etc/profile hadp-node1:/etc/
profile 100% 2492 2.4KB/s 00:00 
[root@hadp-master local]# scp /etc/profile hadp-node2:/etc/
profile 100% 2492 2.4KB/s 00:00

启动Spark集群
5.1
因为我们只需要使用hadoop的hdfs文件系统,所以我们并不用把hadoop全部功能都启动。
[root@hadp-master sbin]# pwd
/usr/local/hadoop/hadoop-2.7.4/sbin
[root@hadp-master sbin]# ./start-dfs.sh 
Starting namenodes on [hadp-master]
hadp-master: starting namenode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-namenode-hadp-master.out
hadp-node2: starting datanode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-datanode-hadp-node2.out
hadp-node1: starting datanode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-datanode-hadp-node1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-secondarynamenode-hadp-master.out
[root@hadp-master sbin]# jps
4914 NameNode
5235 Jps
5082 SecondaryNameNode

2
[root@hadp-master sbin]# pwd
/usr/local/spark-2.2.0-bin-hadoop2.7/sbin
[root@hadp-master sbin]# ./start-all.sh 
starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadp-master.out
hadp-node1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadp-node1.out
hadp-node2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadp-node2.out
[root@hadp-master sbin]# jps
4914 NameNode
5301 Master
5369 Jps
5082 SecondaryNameNode

[root@hadp-node1 scala-2.11.7]# jps
4305 DataNode
4451 Worker
4500 Jps

[root@hadp-node2 ~]# jps
4444 Worker
4301 DataNode
4494 Jps

-- 进入Spark的WEBUI界面
Http://10.100.25.30:8080/

-- 进入 Spark-shell
[root@hadp-master sbin]# spark-shell
Welcome to version 2.2.0


Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131)
Type in expressions to have them evaluated.
Type :help for more infORMation.

scala>

文本文件中随意输入一些单词,用空格隔开,我们会编写Spark程序对该文件进行单词词频统计。
[root@hadp-master ~]# cat workCount.txt 
andy leaf
andy taozi
andy leaf
andy hello

[root@hadp-master ~]# hadoop fs -put workCount.txt /tmp
[root@hadp-master ~]# hadoop fs -ls /tmp
Found 3 items
drwx------ - root supergroup 0 2018-02-01 05:48 /tmp/hadoop-yarn
drwx-wx-wx - root supergroup 0 2018-02-25 05:08 /tmp/Hive
-rw-r--r-- 1 root supergroup 42 2018-02-25 06:05 /tmp/workCount.txt
[root@hadp-master ~]# hadoop fs -cat /tmp/workCount.txt
andy leaf
andy taozi
andy leaf
andy hello

词频统计

scala> val textFile = sc.textFile("hdfs://hadp-master:9000/tmp/workCount.txt")
scala> val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
scala> wordCount.collect()
res0: Array[(String, Int)] = Array((leaf,2), (andy,4), (hello,1), (taozi,1))

上面只给出了代码,省略了执行过程中返回的结果信息,因为返回信息很多。
下面简单解释一下上面的语句。
textFile包含了多行文本内容,textFile.flatMap(line => line.split(” “))会遍历textFile中的每行文本内容,当遍历到其中一行文本内容时,会把文本内容赋值给变量line,并执行Lamda表达式line => line.split(” “)。line => line.split(” “)是一个Lamda表达式,左边表示输入参数,右边表示函数里面执行的处理逻辑,这里执行line.split(” “),也就是针对line中的一行文本内容,采用空格作为分隔符进行单词切分,从一行文本切分得到很多个单词构成的单词集合。这样,对于textFile中的每行文本,都会使用Lamda表达式得到一个单词集合,最终,多行文本,就得到多个单词集合。textFile.flatMap()操作就把这多个单词集合“拍扁”得到一个大的单词集合。

然后,针对这个大的单词集合,执行map()操作,也就是map(word => (word, 1)),这个map操作会遍历这个集合中的每个单词,当遍历到其中一个单词时,就把当前这个单词赋值给变量word,并执行Lamda表达式word => (word, 1),这个Lamda表达式的含义是,word作为函数的输入参数,然后,执行函数处理逻辑,这里会执行(word, 1),也就是针对输入的word,构建得到一个tuple,形式为(word,1),key是word,value是1(表示该单词出现1次)。
程序执行到这里,已经得到一个RDD,这个RDD的每个元素是(key,value)形式的tuple。最后,针对这个RDD,执行reduceByKey((a, b) => a + b)操作,这个操作会把所有RDD元素按照key进行分组,然后使用给定的函数(这里就是Lamda表达式:(a, b) => a + b),对具有相同的key的多个value进行reduce操作,返回reduce后的(key,value),比如(“hadoop”,1)和(“hadoop”,1),具有相同的key,进行reduce以后就得到(“hadoop”,2),这样就计算得到了这个单词的词频。

上述内容就是如何进行spark 2.2.0 Standalone安装及wordCount演示,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何进行spark 2.2.0 Standalone安装及wordCount演示

本文链接: https://lsjlt.com/news/232034.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行spark 2.2.0 Standalone安装及wordCount演示
    本篇文章为大家展示了如何进行spark 2.2.0 Standalone安装及wordCount演示,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前提:安装好hadoop集群,一、 scala 安装...
    99+
    2023-06-03
  • Standalone模式如何在spark中进行配置
    这篇文章给大家介绍Standalone模式如何在spark中进行配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。spark运行模式Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在...
    99+
    2023-05-31
    spark standalone spar
  • 如何进行Jerry的spark演示应用程序分析
    如何进行Jerry的spark演示应用程序分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java应用程序入口:输入一个文本文件,这个Java应用会利用Spa...
    99+
    2023-06-02
  • 如何进行spark原理及生态圈分析
    今天就跟大家聊聊有关如何进行spark原理及生态圈分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。简介1 Spark简介Spark是加州大学伯克利分校AMP实验室(Algorith...
    99+
    2023-06-03
  • 演示电脑如何安装win7系统
    有小伙伴的win7系统使用久了变得卡顿起来,而且经常容易蓝屏死机,因此变想换新的系统,但是自己不知道如何安装win7系统怎么办。小编推荐一个简单的教程,使用工具可以快速安装win7系统。具体的步骤如下:1、首先关闭电脑上的杀毒软件,备份保存...
    99+
    2023-07-19
  • 如何进行postgre安装
    如何进行postgre安装,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 1 &nb...
    99+
    2024-04-02
  • 如何进行TokuDB的安装
    本篇文章为大家展示了如何进行TokuDB的安装,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:缘由监控系统产生的数据相对普通业务数据,具有写入需求占绝对多数,读取...
    99+
    2024-04-02
  • 如何进行ubuntu16.04 openssl安装
    本篇文章为大家展示了如何进行ubuntu16.04 openssl安装,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。信息安全导论课要求安装openssl,自己安装过程中踩了很多坑,特此记录自己成功安...
    99+
    2023-06-28
  • 如何进行CentOS 6安装JDK及系统配置
    今天就跟大家聊聊有关如何进行CentOS 6安装JDK及系统配置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一直对CentOS情有独钟,但因为很少用到,所以基本上不该忘的都忘了,该...
    99+
    2023-06-16
  • 如何进行git的下载、安装以及配置
    如何进行git的下载、安装以及配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一:git的介绍git(读音为/gɪt/。)是一个开源的分布式版本控制系统可以...
    99+
    2023-06-28
  • 如何进行linux ubuntu系统下的安装及设置
    这篇文章将为大家详细讲解有关如何进行linux ubuntu系统下的安装及设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。debian下安装MySQL:1...
    99+
    2024-04-02
  • 如何进行Tokudb安装测试
    如何进行Tokudb安装测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 一 前言   To...
    99+
    2024-04-02
  • MYSQL_5.7.23中如何进行linux安装
    这期内容当中小编将会给大家带来有关MYSQL_5.7.23中如何进行linux安装,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.OS环境配置1.1检查RPM包[roo...
    99+
    2024-04-02
  • 如何进行VNC安装配置
    这篇文章给大家介绍如何进行VNC安装配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VNC安装配置 Linux上安装某个软件时,经常需要启动图形,有时候Xmanager,xshell,xstart等工具无法正常启动图...
    99+
    2023-06-06
  • 如何进行安装ThinkPHP框架
    本文小编为大家详细介绍“如何进行安装ThinkPHP框架”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何进行安装ThinkPHP框架”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、环境要求在安装 Think...
    99+
    2023-07-05
  • Centos内核安装中如何进行yum使用及配置
    Centos内核安装中如何进行yum使用及配置,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。因安全问题,要将Linux内核2.6.X的内核升级到最新的版本。 以c...
    99+
    2023-06-05
  • mysql如何用命令进行安装
    小编给大家分享一下mysql如何用命令进行安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装方法:1、在官网下载MySQL安...
    99+
    2024-04-02
  • mysql 5.5.32中如何进行cmake安装
    这期内容当中小编将会给大家带来有关mysql 5.5.32中如何进行cmake安装,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。cmake工具安装yum install ...
    99+
    2024-04-02
  • linux系统如何进行gcc安装
    linux系统如何进行gcc安装,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。GCC简介:GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GN...
    99+
    2023-06-28
  • 如何进行QuickTime程序的安装
    这期内容当中小编将会给大家带来有关如何进行QuickTime程序的安装,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在ps中,如果要打开视频,那就一定要安装QuickTime程序了,这个程序要怎么安装呢?...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作