SparkShell
简介:spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。
spark shell的流程
-
启动 Spark shell
-
进入Spark 安装目录后执行 spark-shell --master master 就可以提交Spark 任务
-
Spark shell 的原理是把每一行 Scala 代码编译成类, 最终交由 Spark 执行
Master的地址可以有如下几种设置方式
具体操作
- 在虚拟机中创建文件
/export/data/wordcount.txt
- 启动Spark shell
- 执行如下代码
注:
1.上述代码中 sc 变量指的是 SparkContext, 是 Spark 程序的上下文和入口,正常情况下我们需要自己创建, 但是如果使用 Spark shell 的话, Spark shell 会帮助我们创建, 并且以变量 sc 的形式提供给我们调用
2.flatMap(.split(" ")) 将数据转为数组的形式, 并展平为多个数据
3.map, 1 将数据转换为元组的形式
4.reduceByKey(_ + _) 计算每个 Key 出现的次数
- 运行流程
读取HDFS上的文件
- 上传文件到HDFS中
- 在Spark shell中访问HDFS
访问的几种方式
-
可以通过指定 HDFS 的 NameNode 地址直接访问, 类似于上面代码中的
sc.textFile("hdfs://node01:8020/dataset/wordcount.txt")
-
也可以通过向 Spark 配置 Hadoop 的路径, 来通过路径直接访问
2.1. 在 spark-env.sh 中添加 Hadoop 的配置路径
export HADOOP_CONF_DIR="/etc/hadoop/conf"
2.2. 在配置过后, 可以直接使用 hdfs:///路径 的形式直接访问
2.3. 在配置过后, 也可以直接使用路径访问