使用spark-shell开发wordcount程序
1、登录master节点,进入spark-shell
#bin/spark-shell --master spark://172.16.48.201:7077 --executor-memory 1024m --driver-memory 1024m --total-executor-cores 4
executor-memory是slave的内存,driver-memory是master的内存,total-executor-cores是所有的核数
2、运行wordcount
scala> val file=sc.textFile("hdfs://172.16.48.202:9000/user/root/input/README.txt")
scala> val count=file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
scala> count.collect()
使用scala开发wordcount程序
package com.xiaojiang.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WordCount {
def main(args: Array[String]): Unit = {
/**
* 第一步:创建Spark的配置对象SparkConf,设置Spark程序运行时的配置信息,
* 例如说通过设置setMaster来设置程序要链接的Spark集群的Master的URL,
* 如果设置为local,则代表Spark程序在本地运行。
*/
val conf = new SparkConf //创建SparkConf对象
conf.setAppName("wordCount") //设置应用程序的名称,在程序运行的监控界面可以看到名称
conf.setMaster("local") //此时,程序在本地运行,不需要安装Spark集群
/**
* 第二步:创建SparkContext对象
* SparkContext是Spark程序所有功能的唯一入口,无论是采用scala、java、Python,R等都
* 必须有一个SparkContext。SparkContext核心作用:初始化Spark应用程序运行所需要的核心组件,包括
* DAGScheduler,TaskScheduler、SchedulerBackend同时还会负责Spark程序往Master注册程序等。
* SparkContext是这个Spark程序中最为至关重要的一个对象。
*/
val sc = new SparkContext(conf)