El primer programa de Spark para aprender a empaquetar y enviar tareas al clúster
Configuración de inicio de sesión sin llave
ssh-keygen
cd .ssh
touch authorized_keys
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys
Herramientas ambientales
alrededores
Sistema urbuntu jdk 1.7.0_79
scala 2.10.4
hadoop 2.6.0
chispa 1.6.2
Herramienta de embalaje
IDEA + sbt
Bala
Instalar complemento
Debe instalar el complemento de scala con anticipación, haga clic en Archivo -> Configuración -> Complementos -> cuadro de entrada e ingrese scala-> instalar. El
IDE debe reiniciarse después de la instalación
Crear proyecto
Archivo -> Nuevo proyecto -> Scala -> SBT Seleccione la versión correspondiente -> finalizar
Escribir código
build.sbt agrega dependencias relacionadas con Spark
name := "demoPro"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.6.2"
Cree WordCount.scala y escriba el siguiente código
import org.apache.spark.{
SparkContext, SparkConf}
/**
* Created by Administrator on 2018/2/20.
*/
object WordCount {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("wordcount")
val sc = new SparkContext(conf)
val input = sc.textFile("/home/dell/helloSpark.txt")
val lines = input.flatMap(line => (line.split(" ")))
val count = lines.map(word => (word, 1)).reduceByKey {
case (x, y) => x + y }
val output=count.saveAsTextFile("/home/dell/helloSparkRes")
}
}
Bala
Archivo -> Estructura del proyecto -> Aritifacts -> haga clic en + signo -> jar -> segundo -> especificar Módulo y MainClass -> archivos JAR de bibliotecas seleccione segundo -> haga clic en Aceptar
Haga clic en Construir -> Construir Aritifacts-Build en la barra de temas
Genere el paquete jar correspondiente en el directorio de salida del proyecto y el paquete es exitoso
Enviar tarea
Iniciar hadoop
#进入sbin目录
cd $Hadoop_HOME/sbin
#启动hadoop集群
start-all.sh
Subir archivos de prueba a hdfs
hadoop fs -put test.txt /test/test.txt
Cargue el paquete jar del programa
是同filelize 或者sftp 或者 rz -y命令上传程序jar
Enviar tarea
Empezar maestro
sudo ./start-master.sh
访问localhost:8080 获取spark://xxx:7077
Iniciar trabajador
sudo ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://dell:7077
enviar tarea
sudo ./bin/spark-submit --master spark://dell:7077 --class WordCount /home/dell/demopro.jar