一、Spark交互式命令行

  启动脚本:spark-shell

  先启动spark:./start-all.sh

  本地模式启动命令:/bin/spark-shell

  集群模式启动命令:/bin/spark-shell --master spark://spark-1:7077 --total-executor-cores 2 --executor-memory 500mb      //注释:spark集群模式默认使用全部的核心数,默认使用内存大小为1024Mb

  1.用shell的集群模式去执行一个本地wordcount程序:

  sc.textFile("/root/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

  注意:1)当使用集群模式对本地文件进行wordcount时,会报找不到文件的异常,在执行前要保证在每个节点上的对应路径有被执行的文件(将文件从主节点分发到从节点即可)。

     2)本地模式对本地文件进行wordcount时就不需要,因为本地模式是使用master主节点跑任务,而集群模式是使用workers去计算。

  2.用shell的集群模式去对一个hdfs上的文件执行wordcount:

  sc.textFile("hdfs://192.168.50.186:9000/words.txt").flatMap(_.split(" ")).map((_._)).reduceByKey(_+_).collect

二、用Idea写Spark-WordCount

  1.在Idea端创建maven工程,将pom文件所需要的配置命令代码粘贴到pom文件,并自动导入相关依赖包。

  2.在main文件夹中创建scala文件夹(注意:要将其转为可用的文件夹 ”source root“)

  3.创建一个object单例对象,代码如下:

object SparkWordCount {
def main(args:Array[String]):Unit ={
//1.定义并设置配置信息
val conf:SparkConf = new SparkConf().setAppName("SparkWordCount").setMaster("local[2]") //2.定义spark程序入口sparkcontext,并接收配置conf
val sc:SparkContext = new SparkContext(conf) //3.调用sc加载数据、处理数据、存储数据
sc.textFile(args(0))
.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
.saveAsTextFile(args(1)) //4.关闭资源
sc.stop()
}
}

  4.添加配置信息Add Configuration

  分别添加主类名:Main class、  程序参数:Program arguments

  确定然后运行程序。

  注意:程序产生的结果文件有两个,而且结果可能随机分布在两个文件中,这是由于spark的自定义分区造成的(后面笔记会专门总结自定义分区)

***将写好的程序打包提交到spark集群中运行:

  1.在maven工程中package打包,会出现两个jar包(大的包含依赖包环境,小的只有代码);

  2.将大的jar包上次到集群,运行命令:

    bin/spark-submit --master spark://spark-1:7077 \

    --class SparkWordCount /root/SparkWC-1.0-SNAPSHOT.jar \

    hdfs://192.168.50.186:9000/wc.txt hdfs://192.168.50.186:9000/sparkwc

  3.运行完成后查看hdfs端产生的结果文件。

  

Spark-Unit2-Spark交互式命令行与SparkWordCount的更多相关文章

  1. [Spark][Hive]Hive的命令行客户端启动:

    [Spark][Hive]Hive的命令行客户端启动: [training@localhost Desktop]$ chkconfig | grep hive hive-metastore 0:off ...

  2. python 交互式命令行数据库连接助手 -- mysql、sql server (mssql)、redis

    目录 python 交互式命令行数据库连接助手 0. 操作示例 1. python 连接mssql 2. python 连接mysql 3. python 连接redis n. Tips python ...

  3. 解决php的交互式命令行不能正常启动的问题兼介绍psysh

    今天在自己的mac电脑上试着启动php的交互式命令行,发现敲下命令后一直卡在提示进入的地方,但没有出现已经进入的提示符,百度了下应该是与readline有关. 于是安装php的readline扩展,在 ...

  4. Python多版本情况下四种快速进入交互式命令行的操作技巧

    因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助 ...

  5. Python - Git for windows 下使用 交互式命令行

    1. 概述 尝试在 windows 环境的 git 命令行使用 python3 的交互模式 2. 环境 OS win10 1905 git 2.20.1 mintty 2.9.4 python 3.7 ...

  6. 在 Linux/windows下 命令行中使用和执行 PHP 代码[交互式php]

    [注释]在ubuntu下,升级php到7.1版本,虽然提示的是Interactive mode enabled, 但实际上可以直接书写命令,和interactive shell效果一样. 一:wind ...

  7. Linux命令行下载工具

    目录 wget aria2 cURL Youtube-dl https://zh.wikipedia.org/wiki/下载管理程序比较 https://wiki.archlinux.org/inde ...

  8. ZooKeeper系列(2):ZooKeeper命令行工具zkCli.sh

    ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk 1.简介 ZooKeeper提供了一个非常简单的命令行客户端zk ...

  9. Scrapy学习篇(二)之常用命令行工具

    简介 Scrapy是通过Scrapy命令行工具进行控制的,包括创建新的项目,爬虫的启动,相关的设置,Scrapy提供了两种内置的命令,分别是全局命令和项目命令,顾名思义,全局命令就是在任意位置都可以执 ...

随机推荐

  1. react.css

    /* KISSY CSS Reset 理念:清除和重置是紧密不可分的 特色:1.适应中文 2.基于最新主流浏览器 维护:玉伯(lifesinger@gmail.com), 正淳(ragecarrier ...

  2. 页面初始化的js函数要放在最最最最最最最前边!否则没效果

    简单说一下这个情况,html的页面的各部分都是动态渲染的,所以头部的某些个样式调用函数需要在页面初始化的时候被加载,这个我也是知道的,结果后边代码敲着敲着,就把这个事儿给忘了,然后启动项目的时候,页面 ...

  3. 如何编辑PDF文件,怎么使用PDF裁剪页面工具

    在编辑PDF文件的时候,往往会有很多的小技巧可以使用,在编辑PDF文件的时候,怎么对文件的页面进行裁剪呢,不会的话,看看下面的文章吧,小编已经为大家整理好了哦. 1.打开运行PDF编辑器,在编辑器中打 ...

  4. jenkins持续集成:定时构建语法

    构建位置:选择或创建工程_设置_构建触发器 1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月 ...

  5. Callable和Future出现的原因

    创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果. 如果需要获取执行结果,就必须通过共享变量或者使用 ...

  6. logging模板日志格式

    logging模板日志格式 创建loginfo.py模块,然后导入定义的logging配置,即可使用 cat loginfo.py """ logging配置 " ...

  7. MyBatis - 4.动态SQL

    动态 SQL是MyBatis强大特性之一.极大的简化我们拼装SQL的操作. 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似. MyBatis 采用功能强大的基于 OGNL ...

  8. dubbo支持哪些通信协议和序列化协议

    dubbo支持的通信协议 dubbo协议 dubbo://192.168.0.1:20188 默认就是走dubbo协议的,单一长连接,NIO异步通信,基于hessian作为序列化协议 适用的场景就是: ...

  9. 统计各个数据库的各个数据表的总数,然后写入到excel中

    1.最近项目基本进入最后阶段了,然后会统计一下各个数据库的各个数据表的数据量,开始使用的报表工具,report-designer,开源的,研究了两天,发现并不是很好使,最后自己下班回去,晚上思考,想着 ...

  10. Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    1.使用sqoop技术将mysql的数据导入到Hive出现的错误如下所示: 第一次使用命令如下所示: [hadoop@slaver1 sqoop--cdh5.3.6]$ bin/sqoop impor ...