要使用hdfs需要切换到Hadoop安装目录下,然后使用命令
bin/hdfs dfs -ls /
可以查看对应节点hdfs文件系统下的目录结构
接着将测试数据放到hdfs上,这里是将数据放到/testdata目录下
bin/hdfs dfs -put /word.txt /testdata
注意这里的word.txt是自己在namenode根目录创建的文件,内容如下:
查看是否上传:
bin/hdfs dfs -ls /testdata
可以看到对应的文件已经上传到hdfs文件系统中
接着测试在spark-shell中直接编写wordcount程序,并从hdfs读取数据,最后返回结果
进入spark安装目录,并启动spark-shell
首先指定要读取的文件路径:
这里需要写hdfs的路径:
val file = sc.textFile("hdfs://your.master.ip:9000/testdata/word.txt")
接着进行计算:
val rdd = file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
使用collect将计算的数据存储,并返回:
rdd.collect()
最后打印显示count的结果:
rdd.foreach(println)
OK,到此简单的测试了如何将本地数据上传到hdfs文件系统,并使用spark-shell实现WordCount案例,并将计算后的数据打印输出。