Spark-Unit2-Spark交互式命令行与SparkWordCount

一、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端产生的结果文件。

  

原文地址:https://www.cnblogs.com/HelloBigTable/p/10262011.html

时间: 2024-11-05 15:51:21

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

1001种玩法 | Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库

Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库 prompt_toolkit 是一个用于构建强大交互式命令行的 Python 工具库. 你是不是在找交互式的 Python shell 工具 ptpython 呢?我们把 ptpython 的源码转移到了一个独立的仓库.如此一来,我们确信  prompt_toolkit 库不会被其他 ptpython 东西"污染",并且 ptpython 也可以独立开发.现在必须用下面这个命令安装 ptpytho

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

因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助大家解决这个"心头之痛". 1.直接在命令行窗口中输入命令"python",便可以进入命令行了,如下图所示. 不过此时默认弹出的是Python2版本,这是因为小编的电脑中Python的环境变量将Python2放在了Python3的前面,所以默认是弹出Python2版本.

Inquirer 交互式命令行

1.简介 常见的交互式命令行用户界面的集合. https://www.npmjs.com/package/inquirer 2.示例(输入和单选) var inquirer = require('inquirer'); var questions = [ { type: 'input', name: 'name', message: "What's your name" }, { type: 'list', name: 'size', message: 'What size do yo

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

1. 概述 尝试在 windows 环境的 git 命令行使用 python3 的交互模式 2. 环境 OS win10 1905 git 2.20.1 mintty 2.9.4 python 3.7.0 2. 问题 直接使用 结果 无法开启, 会卡住 3. 解决 命令 > winpty python 4. 其他 ref Git for windows的MINGW64终端无法使用Python的解决方法 疑问 winpty 是干嘛的 原文地址:https://www.cnblogs.com/xy1

使用命令行创建maven web项目

一,前言 遇到了一个非常简单的maven命令: 总的来说,这是一个用maven创建一个jersey快速开始项目的maven命令. 这次不妨使用maven命令来构建项目,看体验如何. 在文章idea maven创建web项目和maven创建web工程中我分别在idea和eclipse中使用maven构建了web项目. 这次使用maven命令尝试构建web工程. 二,配置环境变量 想要使用mvn命令行,必须要将mvn配置到环境变量中,例如,我的环境变量的path中的配置如下图 配置好之后,就可以在命

第3章:打造命令行工具

1.与命令行相关的Python语言特性 1).使用sys.argv获取命令行参数 import sys print(sys.argv) 2).使用sys.stdin和fileinput读取标准输入 import sys def get_content(): return sys.stdin.readlines() print(get_content()) 使用Ctrl+d退出 fileinput的使用非常简单,大部分情况下,我们直接调用fileinput模块的input方法按行读取内容即可 用f

Hive 系列(三)—— Hive CLI 和 Beeline 命令行的基本使用

一.Hive CLI 1.1 Help 使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B --定义用户自定义变量 --database <databasename> Specify the database to use

一个小巧但功能强大的跨平台命令行工具库Crossline

Crossline Crossline是一个很小的跨平台命令行工具库,类似Linux上的readline. 项目地址:https://github.com/JunchuanWang80/Crossline 因为开发一个项目需要支持跨平台命令行,在Linux上readline是首选,bash/gdb/ftp都使用了这个库,但是Windows上没法直接用.后来搜到了一个开源项目linenoise,这个命令行工具库是Redis的作者开发的,Redis,Andriod和MongoDB都使用了.这个工具库

Spark视频教程|Spark从入门到上手实战

Spark从入门到上手实战网盘地址:https://pan.baidu.com/s/1uLUPAwsw8y7Ha1qWGjNx7A 密码:m8l2备用地址(腾讯微云):https://share.weiyun.com/55RRnmc 密码:8qywnp 课程是2017年录制,还比较新,还是有学习的价值的 课程简介:Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐.Spark 生态栈框架,非常的强大,可以对数据进行批处理.流式处理.SQL 交互式处理及机器学习和Graphx