Spark Core:第一章 spark shell
文章目录
Spark Core:第一章 spark shell一、关于spark-shell二、启动spark-shell三、spark-shell中编写WordCount程序1. 启动HDFS2. 上传文件到HDFS3. spark-shell中编写程序4. hdfs命令查看结果
四、IDEA中编写WordCount程序1. 配置maven配置文件2. 编写程序3. 打包上传4. 启动HDFS和spark集群5. spark命令提交任务6. 查看程序执行结果
五、出现的问题Q1: WARN HiveConf: HiveConf of name hive.server2.thrift.client.user does not exist
—>Spark知识点总结导航<—
一、关于spark-shell
spark-shell是spark自带的交互式shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。
二、启动spark-shell
开启HDFS和spark集群 ~/software/spark/bin/spark-shell (如果不成功请参考文末的Q1)
注意: 如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的cluster模式,如果spark是单节点,并且没有指定slave文件,这个时候如果打开spark-shell 默认是local模式Local模式是master和worker在同同一进程内Cluster模式是master和worker在不同进程内
三、spark-shell中编写WordCount程序
1. 启动HDFS
2. 上传文件到HDFS
3. spark-shell中编写程序
sc.textFile("hdfs://Cloud00:9000/RELEASE").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://Cloud00:9000/out")
说明:sc是SparkContext对象,该对象时提交spark程序的入口textFile(hdfs://Cloud01:9000/RELEASE)是hdfs中读取数据flatMap(_.split(" "))先map再压平map((_,1))将单词和1构成元组reduceByKey(+)按照key进行reduce,并将value累加saveAsTextFile(“hdfs:// Cloud01:9000/out”)将结果写入到hdfs中
4. hdfs命令查看结果
hdfs dfs -cat hdfs://Cloud00:9000/out/p*
四、IDEA中编写WordCount程序
1. 配置maven配置文件
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
2. 编写程序
package com.spark.core
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local").setAppName("wordcount")
val sc = new SparkContext(conf)
//读取输入文件
val line = sc.textFile("hdfs://Cloud00:9000/RELEASE")
//按空格分割
val value = line.flatMap(_.split(" "))
//单词从1开始计数
val word = value.map((_, 1))
//对结果聚合
val count = word.reduceByKey(_ + _)
//保存输出文件格式和路径
count.saveAsTextFile("/home/duck/sparkout")
}
}
3. 打包上传
4. 启动HDFS和spark集群
请查看hdfs启动、spark集群启动
5. spark命令提交任务
bin/spark-submit \
--class com.spark.core.WordCount \
/home/duck/Lesson-1.0-SNAPSHOT.jar
6. 查看程序执行结果
五、出现的问题
Q1: WARN HiveConf: HiveConf of name hive.server2.thrift.client.user does not exist
(1) 描述
(2) 原因:找不到元数据路径
(3) 解决: 拷贝hive的配置文件hive-site.xml到spark/conf下
sudo cp ~/software/hive/conf/hive-site.xml /
开启元数据监听
hive --service metastore&
--->有问题请联系QQ1436281495^_^