[spark-01] 小试牛刀:用spark shell一句话实现简单的wordcount

1、准备数据

961M -rw-r--r--. 1 root root 644M Nov  2 07:43 wcdata.txt

利用linux:

[[email protected] ~]# echo hello kerry tom jerry cat big data helo hadoop keery kerry jerry dog tom >> 1.txt
 #先增加到约1M或10M

[[email protected] ~]# for i in {1..10000}; do cat 1.txt>>words.txt;done
#再增加到1G

[[email protected] ~]# for i in {1..100}; do cat words.txt>>wcdata.txt;done

2、创建HDFS数据文件夹并上传文件

[[email protected] ~]# hdfs dfs -mkdir /data
[[email protected] ~]# hdfs dfs -put wcdata.txt  /data

3、启动spark shell

启动时必须指定--master及地址它才会提交到集群中运行

 ./spark-shell --master spark://spark01:7077 

也可以根据任务的运算量手工指定内存及CPU资源:(多个master时加,号分隔)

如下:指定spark01、spark02运行,内存8G,CPU为16核

  ./spark-shell --master spark://spark01:7077,spark02:7077 --executor-memory 8g --total-executor-cores 16 

4、开始任务

sc.textFile("hdfs://spark01:8020/data").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).saveAsTextFile("hdfs://spark01:8020/out-wc") 

(注意:HDFS的端口要和hadoop中的端口一致,不一定是8020,具体看配置) 

[spark-01] 小试牛刀:用spark shell一句话实现简单的wordcount

5、查看结果

[[email protected] ~]# hdfs dfs -ls /out-wc
Found 4 items
-rw-r--r--   3 root supergroup          0 2020-11-02 08:00 /out-wc/_SUCCESS
-rw-r--r--   3 root supergroup          0 2020-11-02 08:00 /out-wc/part-00000
-rw-r--r--   3 root supergroup         49 2020-11-02 08:00 /out-wc/part-00001
-rw-r--r--   3 root supergroup        121 2020-11-02 08:00 /out-wc/part-00002