(3) 把 HDFS 中“/user/hadoop”目录下的 test.txt 文件,下载到 Linux 系统的本地文
cd ~ # 进入用户主文件夹
mkdir ./sparkapp3 # 创建应用程序根目录
mkdir -p ./sparkapp3/src/main/scala # 创建所需的文件夹结构
3、在 ./sparkapp3/src/main/scala 下建立一个名为 SimpleApp.scala 的文件(vim ./sparkapp3/src/main/scala/SimpleApp.scala
),添加代码如下:
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "hdfs://localhost:9000/home/hadoop/test.csv"
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2)
val num = logData.count()
println("这个文件有 %d 行!".format(num))
}
}
4、该程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。 ./sparkapp3 中新建文件 simple.sbt(vim ./sparkapp3/simple.sbt
),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:
5、使用 sbt 打包 Scala 程序
(1)为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构:
(2)文件结构应如下图所示:
(3)接着,我们就可以通过如下代码将整个应用程序打包成 JAR:
4)打包成功的话,会输出如下图内容:
生成的 jar 包的位置为 ~/sparkapp3/target/scala-2.12/simple-project_2.12-1.0.jar。(scala-2.12和simple-project_2.12-1.0.jar处可能有所不同,读者只需要到对应的文件夹下对应查找即可)(~为主文件夹:点击虚拟机的 进入就是主文件夹)
4、通过 spark-submit 运行程序
(1)最后,我们就可以将生成的 jar 包通过 spark-submit 提交到 Spark 中运行了,命令如下:(红线部分就是上边说的生成的jar包的位置)
/usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp3/target/scala-2.12/simple-project_2.12-1.0.jar 2>&1 | grep "这个文件有"
(2)最终得到的结果如下: