Aprender Fundamentos 1 chispa - chispa general y primeros pasos

chispa resume
a: chispa Descripción general
1. Spark Distributed Computing memoria de trama
Apache Spark es un rápido, versátil sistema de computación cluster, con respecto a los resultados intermedios Hadoop MapReduce almacenados en el disco,
la memoria Spark utiliza para mantener los resultados intermedios, lata cuando los datos no se escriben en el disco en la operación de memoria.
1. el Spark, es el marco de Apache de código abierto
matriz 2. Spark se llama Databricks
3. el Spark, no puede guardar los resultados intermedios en la memoria y así sucesivamente en el pasado con el fin de resolver MapReduce problemas en el sistema de cómputo
4. núcleo Spark es DDR, DDR calculan no sólo un marco, es una estructura de datos

Dos: Spark cuenta
1. Rápido
? Chispa qué más rápido que hadoop
Cálculos 1. mapreduce guarda en HDFS, y la chispa de los datos se almacenan primero en la memoria, suficiente memoria antes de guardar en el disco (lectura de la memoria toma de datos desde el disco a la velocidad / HDFS más rápido)
2. MapReduce es el proceso de tarea de nivel, despertar la tarea es un nivel de hilo.
2. el uso
Spark es compatible con Java, Scala, Python, R, SQL y otros idiomas la API.
3. universales
Spark proporcionar una pila completa, incluyendo la ejecución de SQL, un conjunto de datos de la API tipo de comando, la máquina de aprendizaje biblioteca MLlib,
figura GraphX plataforma de computación, como el flujo de cálculo SparkStreaming
4 compatibles
Spark ejecutar Hadoop Hilados, Apache mesos, Kubernets , Spark independiente tal como clúster
chispa puede acceder HBase, HDFS, colmena, Cassandra incluyendo una variedad de base de datos de
resumen:
1. apoyo Java, Scala, Python y R, API
2. escalable que 8K nodos
3. capaz de en la memoria conjunto de datos de memoria caché, a fin de lograr el análisis de datos interactivo
4 proporciona una ventana de línea de comando, el tiempo de reacción se reduce el análisis de datos exploratorio

Tres: Spark montaje
1. Spark-Core y elasticidad distribuida conjuntos de datos (DDR)
. Funciones básicas chispa es DDR, DDR chispa-core presente dentro del paquete, que es el núcleo de la chispa paquete
Spark-Core es base Spark del conjunto, se proporciona una programación de tareas distribuido y las funciones básicas de e / S
basados en el programa de chispa extracto elásticas distribuidas conjuntos de datos (DDR), se trata de un funcionamiento en paralelo, los datos tolerantes a fallos establecen
2. SPRK el SQL
Spark SQL en base chispa central para llevar a cabo el concepto de un conjunto de datos y los datos de trama de datos abstracción llamada del
SQL Spark proporciona la capacidad de ejecutar SQL en la parte superior de la base de datos y trama de datos
SQL Spark ofrece DSL, por Scala, Java, Python otros idiomas y operativo conjunto de datos trama de datos
también es compatible con el lenguaje operativo del servidor JDBC / ODBC SQL
3. transmisión de la chispa de
la chispa de streaming toma ventaja del análisis de flujo de chispa núcleos capacidad de despliegue rápido para ejecutar
interceptó pequeñas cantidades de datos y se puede ejecutar en la transformación RDD ( de acuerdo con la segmentación de tiempo de datos)
4. MLlib
marco Spark MLlib se distribuye de aprendizaje de máquina. Spark arquitectura de memoria distribuida de Hado El op-disco Apache Mahout 10 veces más rápido, sino también extremadamente excelente escalabilidad
MLlib puede utilizar muchas de aprendizaje de máquina común y algoritmos estadísticos, lo que simplifica la máquina a gran escala de aprendizaje
estadísticas de resumen, correlación, muestreo estratificado, pruebas de hipótesis, los datos generará inmediatamente
máquinas de vectores soporte, regresión, regresión lineal, regresión logística, árboles de decisión, mariscos sencilla Yates
de colaboración de filtrar, el ALS
K-significa
la descomposición SVD valor singular, el PCA análisis de componentes principales
TF-IDF, Word2Vec, StandardScaler
la SGD descenso de gradiente estocástico, L-BFGS
5. la Graphx
GraphX figura distribuyó marco que proporciona un conjunto de cálculo se puede expresar la figura API computarizada, GraphX esta abstracción también proporciona el funcionamiento óptimo

Cuatro: Spark estructura de grupos
estructura de grupos 1. chispa
1. Maestro
es responsable de la gestión de clusters, la asignación de recursos
2. Workder
nodo de ejecución de la tarea
ejecutor: el proceso, el proceso utilizado para realizar tareas
tarea: la tarea a realizar
3. Controlador
1. Ejecutar el método principal
2 crear el objeto SparkContext. Programa de chispa entrada SparkContext, responsable de la programación de tareas y la segmentación de tareas
a ejecutar un programa Spark ha pasado a través de los siguientes pasos
1. Inicie Drive, crear SparkContext
2. Programa cliente presentado a los recursos de clúster de aplicación Drive, Drive Manager Cluster
3. solicitud de recursos se ha completado, se inicia el Ejecutor en Trabajador
4. el programa de instalación en las tareas, distribuido ejecución Ejecutor
chispa puede usar las siguientes varias herramientas de administración de clústeres:
1. autónomas la chispa
2. el Hadoop el hilo
3. Mesos los Apache
4. Kubernets
utiliza comúnmente : 2,3,4
? 2. el conductor y cuando se activa Trabajador
1. independiente cúmulo modo,
trabajador se iniciará cuando se inicia el racimo
Conductor de inicio se divide en dos modos:
1. En la siguiente modo Cliente, conductor corre el lado del cliente, se activa cuando el inicio del cliente
el modo 2. En Cluster, carreras conductor en un trabajador, un tiempo de envío de trabajos al final del lanzamiento, tareas, conductor desaparecer
2. en el modo de hilo menor chispa
1, no hay trabajador equivalente, ejecutor inicia en NodeManager de los recipientes
2, conductor se iniciará cuando se presenta la tarea, al final de la misión, conductor desaparecer
chispa diferencias en hilo en el cliente y el clúster?
Controlador en modo cliente cuando el lado del cliente, terminal del cliente no puede cerrarse. Conductor desaparecer después del cierre, de corte y de programación de tareas no se pueden realizar, lo que resulta en un fracaso de la chispa tarea
modo de clúster controlador de posición cuando se encuentra en AppMaster, extremo del cliente puede ser cerrada

Cinco: instalación de clúster (estructuras individuales, construida utilizando el CDH empresa)
Preparación: una buena distribución de los recursos
Paso 1 Descargar y descomprimir
el paquete de instalación descarga de chispa, descargar la versión correspondiente de tiempo de Hadoop para elegir (a la versión evitar la incompatibilidad)
Descargar https: // Archivo .apache.org / dist / chispas / por chispa 2.2.0 / 2.2.0 chispa-bin-hadoop2.7.tgz
carga / descomprimir en un directorio específico
xzvf alquitrán chispa-2.2.0-bin- hadoop2.7.tgz - C / exportación / servidores

Paso 2 Modificar el perfil spark-env.sh
CD / Exportar / Servidores / Spark / conf del
Vim spark-env.sh
(siguientes adiciones)
# Inicio de Java especifica la
exportación del JAVA_HOME = / Exportar / Servidores / jdk1.8.0
# Especificar Maestro Dirección Spark
SPARK_MASTER_HOST = amdha01 exportación
exportación SPARK_MASTER_PORT = 7077

Paso 3 Modificar los esclavos del perfil, para especificar la fecha desde el nodo, el uso de sbin / inicio start-all.sh cuando el clúster,
puede ser una clave para iniciar la totalidad de todo grupo trabajador
para entrar en el directorio de configuración y copiar el nuevo archivo de configuración, de esta base que modificar
la exportación / servers / Spark / conf los CD /
esclavos slaves.template CP
VI Esclavo
dirección de configuración de todos los nodos
amdha02
node03
...

Paso 4 HistoryServer
Por defecto, el programa Spark tiene en marcha terminada, no se puede ver el registro de la interfaz de usuario web, por HistoryServer
puede proporcionar un servicio al leer el archivo de registro para que podamos ejecutar al final del programa, aún así ser capaz de vista proceso de gestión
1. copia chispa defaults.conf, para la modificación
2. copia el siguiente spark-defaults.confal final, por esta configuración, puede especificar la entrada de registro de chispa a la HDFS
spark.eventLog.enabled a cierto
spark.eventLog.dir HDFS : // amdha01: 8020 spark_log /
spark.eventLog.compress a verdaderos
3. copie el siguiente contenido al spark-env.shfinal, iniciar HistoryServer parámetros de configuración,
tales HistoryServer leer HDFS Spark registro escrito en el momento de iniciar la
Historia parámetro Spark operativo designado
exportación = SPARK_HISTORY_OPTS "- Dspark.history.ui.port -Dspark.history.fs.logDirectory 3 = = = 4000 -Dspark.history.retainedApplications HDFS: //. amdha01: 8020 / spark_log"
4. Crear el directorio de registro de HDFS Spark
hdfs DFS -mkdir -p / spark_log

Paso 5 distribución y ejecutar
el paquete de instalación a Spark otras máquinas en el clúster
principal de inicio de chispa y esclavos, y HistoryServer
CD / Exportar / Servidores / Spark
sbin / start-all.sh
sbin / start-history-server.sh

chispa acumulación clúster de alta disponibilidad
sobre la base de las anteriormente descritas
paso 1 spark-env.sh, añada los parámetros de inicio de chispa, y eliminar la dirección SPARK_MASTER_HOST
# Inicio de Java especifica la
exportación del JAVA_HOME = / Exportar / Servidores / jdk1.8.0_141
# Maestro Spark dirección especificada
# export = node01 SPARK_MASTER_HOST
exportación SPARK_MASTER_PORT = 7077
# especificar los parámetros de funcionamiento de chispa Historia
SPARK_HISTORY_OPTS exportación = "- Dspark.history.ui.port = 4000 -Dspark.history.retainedApplications = 3 = -Dspark.history.fs.logDirectory hdfs: // node01: 8020 / spark_log "
parámetro especifica la chispa # tiempo de ejecución
SPARK_DAEMON_JAVA_OPTS exportación =" - Dspark.deploy.recoveryMode = ZOOKEEPER -Dspark.deploy.zookeeper.url = node01: 2181, node02: 2181, node03: 2181 ... -Dspark.deploy.zookeeper. dir = / chispa "

Paso 2 Perfil de distribución de toda clúster para
el paso 3 para iniciar el clúster
comienza en todo el clúster node01
único reinicio principal en un node02
vista node01 Paso 4 del Maestro y Maestro node02 WebUI

Spark cada puerto de servicio
Maestro WebUI -> node01: 8080
Trabajador WebUI -> node01: 8081
Historia Servidor -> node01: 4000

VI: Ejemplo de aplicación Run
Paso 1 entra directorio de instalación Spark (o variable de entorno de configuración se pueden omitir)
CD / Export / Servers / Spark /
Paso 2 Run Spark Tarea
bin / Spark-Submit
las org.apache.spark.examples -Clase. SparkPi
-master la chispa: // node01: 7077, node02: 7077 \ (según el maestro de escribir abierto)
-executor-1G de memoria
los -Total-ejecutora-Núcleos 2
/ Exportar / Servidores / Spark / examples / JAR / la chispa-examples_2. 11-2.2.3.jar
100
paso 3 resultados run
Pi es aproximadamente 3.141550671141551

Siete: la entrada de los casos Spark
programa de escritura Spark son dos formas comunes de
la Chispa-shell
la chispa del Presentar
WordCount 1. Cáscara escrita Chispa de la manera
primer paso en la creación de proyectos Maven para aumentar el apoyo a Scala
segunda etapa de escritura de archivos de configuración de Maven pom.xml (dependiendo de la configuración, copiar)

		<properties>
			<scala.version>2.11.8</scala.version>
			<spark.version>2.2.0</spark.version>
			<slf4j.version>1.7.16</slf4j.version>
			<log4j.version>1.2.17</log4j.version>
		</properties>
		<dependencies>
			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-library</artifactId>
				<version>${scala.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.spark</groupId>
				<artifactId>spark-core_2.11</artifactId>
				<version>${spark.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-client</artifactId>
				<version>2.6.0</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>log4j</groupId>
				<artifactId>log4j</artifactId>
				<version>${log4j.version}</version>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.10</version>
				<scope>provided</scope>
			</dependency>
		</dependencies>

		<build>
			<sourceDirectory>src/main/scala</sourceDirectory>
			<testSourceDirectory>src/test/scala</testSourceDirectory>
			<plugins>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.0</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>

				<plugin>
					<groupId>net.alchim31.maven</groupId>
					<artifactId>scala-maven-plugin</artifactId>
					<version>3.2.0</version>
					<executions>
						<execution>
							<goals>
								<goal>compile</goal>
								<goal>testCompile</goal>
							</goals>
							<configuration>
								<args>
									<arg>-dependencyfile</arg>
									<arg>${project.build.directory}/.scala_dependencies</arg>
								</args>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>3.1.1</version>
					<executions>
						<execution>
							<phase>package</phase>
							<goals>
								<goal>shade</goal>
							</goals>
							<configuration>
								<filters>
									<filter>
										<artifact>*:*</artifact>
										<excludes>
											<exclude>META-INF/*.SF</exclude>
											<exclude>META-INF/*.DSA</exclude>
											<exclude>META-INF/*.RSA</exclude>
										</excludes>
									</filter>
								</filters>
								<transformers>
									<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
										<mainClass></mainClass>
									</transformer>
								</transformers>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</build>
		
	因为在 pom.xml 中指定了 Scala 的代码目录, 所以创建目录 src/main/scala 和目录 src/test/scala

El tercer paso: escribir código

			object WordCounts {
			  def main(args: Array[String]): Unit = {
				// 1. 创建 Spark Context
				val conf = new SparkConf().setMaster("local[2]")
				val sc: SparkContext = new SparkContext(conf)
				// 2. 读取文件并计算词频
				val source: RDD[String] = sc.textFile("hdfs://node01:8020/dataset/wordcount.txt", 2)
				val words: RDD[String] = source.flatMap { line => line.split(" ") }
				val wordsTuple: RDD[(String, Int)] = words.map { word => (word, 1) }
				val wordsCount: RDD[(String, Int)] = wordsTuple.reduceByKey { (x, y) => x + y }
				// 3. 查看执行结果
				println(wordsCount.collect)
			  }
			}

Paso cuatro: Ejecutar
aplicaciones independientes bujías son básicamente dos maneras, una es para depurar directamente en la idea, la
otra es ejecutar Spark sometido a un racimo, y la Chispa cluster y es compatible con una variedad de diferentes grupos tienen diferentes corrida

Parámetro chispa presentar el modo de funcionamiento del clúster describe
bin / chispa presentar
la -class
-master
-Implemente-MODO
-conf =
... # Otras opciones

[de aplicación argumentos de archivo]
1) --class:. Ejecución de la clase principal especifican [Método con un principal objeto]
2) --master: posición independiente recurso especificado manager: Spark: // amdha01: 7077: 7077, amdha02 , hilado: hilado
3) los --deploy-Mode:. especifica el modo <Client / Cluster>
. 4) - -executor-core: especifica el número de núcleos de CPU de cada ejecutor <hilo en sólo para Spark>
. 5) --executor-memoria: tamaño de la memoria para cada uno del ejecutor
6) --num-ejecutor: especifica el número de ejecutor < hilado en sólo por chispa>
7) --driver-memoria:. tamaño de la memoria especificada controlador
8) --queue: una cola especificada
especifica el número total de CPU ejecutor núcleos 9) -executor-núcleos --total < chispa o un independiente en el modo de mesos>

la concha-Spark
Spark cáscara --- maestra: 1, se inicia el modo <local [NUM] / Hilados / Spark: // amdha01: 7077>
2, la cáscara-Spark ha sido creado automáticamente sparkcontext, sc asigna a
leer el archivo HDFS
1 , modo de lectura:
. 1, sc.textFile ( "HDFS: // amdha01: 8020 / ...")
2, sc.textFile ( "HDFS: /// usuario /") [perfil Hadoop se debe configurar en el fichero de configuración ruta]
. 3, sc.textFile ( "/ usuario / HDFS / ...") [Hadoop ruta de perfil debe estar configurado en el fichero de configuración]

Publicado cuatro artículos originales · ganado elogios 0 · Vistas 705

Supongo que te gusta

Origin blog.csdn.net/fan_bigdata/article/details/103108978
Recomendado
Clasificación