创建一个文件aa.txt,随便写点内容:
hello world!
aa aa
d
d
dg
g
登录HDFS文件系统:
[root@node1 ~]# su hdfs
在HDFS文件系统中创建文件目录保存要上传的数据:
bash-4.2$ hdfs dfs -mkdir -p /user/cf
然后将CentOS文件系统上的aa.txt文件上传到HDFS文件系统中:
bash-4.2$ hdfs dfs -put /home/cf/aa.txt /user/cf
执行以下命令,进入spark-shell环境:
bash-4.2$ spark-shell
在spark-shell环境中用scala编写spark程序,按空格分割数据
scala> sc.textFile("/user/cf/aa.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/user/cf/out")
执行后得到结果文件:
bash-4.2$ hadoop fs -ls /user/cf/out Found 3 items -rw-r--r-- 3 hdfs supergroup 0 2019-04-28 21:30 /user/cf/out/_SUCCESS -rw-r--r-- 3 hdfs supergroup 23 2019-04-28 21:30 /user/cf/out/part-00000 -rw-r--r-- 3 hdfs supergroup 24 2019-04-28 21:30 /user/cf/out/part-00001
需要更改CentOS系统中文件目录的访问权限,以便将文件从HDFS文件系统中下载到CentOS文件系统:
[root@node1 ~]# chmod 777 /home/cf
下载结果文件:
bash-4.2$ hadoop fs -get /user/cf/out/_SUCCESS /home/cf bash-4.2$ hadoop fs -get /user/cf/out/part-00000 /home/cf bash-4.2$ hadoop fs -get /user/cf/out/part-00001 /home/cf
查看结果文件:
[root@node1 ~]# cat /home/cf/_SUCCESS [root@node1 ~]# cat /home/cf/part-00000 (d,2) (aa,2) (hello,1) [root@node1 ~]# cat /home/cf/part-00001 (world!,1) (dg,1) (g,1)
参考:https://blog.youkuaiyun.com/csdnliuxin123524/article/details/80630174