¿Cuánto sabes sobre el código fuente de Spark, el código fuente de Sparkshuffle, la programación y la transmisión de Spark?
La transmisión en vivo, en la era del big data, es el procesamiento del flujo de datos. Al igual que el flujo de agua, es un flujo de datos, ya que es el procesamiento del flujo de datos, pensará en el flujo de entrada de datos y el procesamiento de datos; salida de datos.
Los datos provienen de muchos lugares diferentes de la vida y el trabajo diarios. Por ejemplo: la fabricación de automóviles, los equipos de monitoreo y los equipos industriales en la era industrial generarán una gran cantidad de datos fuente en sitios web de comercio electrónico, servidores de registros, redes sociales, sistemas de comercio financiero, ataques de piratas informáticos, spam, monitoreo de tráfico, etc. la era de la información; los teléfonos móviles en la era de las comunicaciones, las tabletas, los dispositivos inteligentes, Internet de las cosas, etc. generarán una gran cantidad de datos en tiempo real y los flujos de datos están en todas partes.
¿Qué puede hacer Spark?Streaming en la era del big data?
Los usuarios generalmente tienen experiencia de compra en línea. Varias operaciones realizadas por los usuarios en el sitio web se pueden monitorear a través de la tecnología de procesamiento de flujo Spark Streaming y se pueden analizar el comportamiento de las preferencias de compra, la atención, las transacciones, etc. En el campo financiero, la tecnología de procesamiento de flujo Spark Streaming se puede utilizar para monitorear cuentas con grandes volúmenes de transacciones para evitar que los delincuentes laven dinero, transfieran propiedades y prevengan el fraude. En términos de seguridad de la red, los ataques de piratas informáticos ocurren de vez en cuando. La tecnología de procesamiento de flujo Spark Streaming puede monitorear ciertos tipos de IP sospechosas y combinarlas con modelos de entrenamiento de aprendizaje automático para determinar si la solicitud actual es un ataque de piratas informáticos. Otros aspectos, como: monitoreo y filtrado de spam, monitoreo de tráfico, monitoreo de red y monitoreo de equipos industriales son áreas donde Spark Streaming ejerce su poderoso procesamiento de flujo.
En la era del big data, ¿cómo se define generalmente el valor de los datos?
Todos los datos que no se han procesado en flujo son datos no válidos o datos sin valor; el valor generado al procesar los datos inmediatamente después de su generación es mayor cuanto más tiempo se dejan los datos o más se retrasan. es decir, menor es su valor de uso. En el pasado, la mayoría de los sitios web de comercio electrónico ganaban dinero a través del tráfico de la red (es decir, la cantidad de visitas de los usuarios). Hoy en día, los sitios web de comercio electrónico no solo necesitan centrarse en el tráfico y el volumen de transacciones, sino que, lo que es más importante, deben utilizar datos. tecnología de flujo para hacer que diversos aspectos de los sitios web de comercio electrónico sean más rentables. Todo tipo de flujo de datos se puede extraer de manera oportuna a través de datos fluidos en tiempo real, por ejemplo: especificar retratos de usuarios para usuarios con diferentes transacciones; volúmenes para proporcionar diferentes calidades de servicio; identificar con precisión las preferencias de los usuarios para visitar las secciones del sitio web de comercio electrónico de manera oportuna; recomendar información relevante.
SparkStreaming VS?Hadoop?MR:
Spark Streaming es un marco de procesamiento de flujo casi en tiempo real, mientras que Hadoop MR es un marco de procesamiento por lotes fuera de línea, obviamente, en el valor; de datos Desde una perspectiva, Spark Streaming es completamente mejor que Hadoop MR.
SparkStreaming VS Storm:
Spark Streaming es un marco de procesamiento de flujo casi en tiempo real. El tiempo de respuesta del procesamiento es generalmente en minutos, lo que significa que el tiempo de retraso en el procesamiento real. los datos de tiempo están en el segundo nivel; Storm es un marco de procesamiento de flujo en tiempo real que procesa respuestas en milisegundos. Por lo tanto, la selección del marco de flujo depende del escenario empresarial específico. Lo que hay que aclarar es que muchas personas ahora piensan que el procesamiento de flujo de Spark Streaming es inestable, tiene pérdida de datos, tiene un soporte de transacciones deficiente, etc. Esto se debe a que muchas personas no saben cómo controlar Spark Streaming y el propio Spark. En términos de la latencia del procesamiento de flujo de Spark Streaming, la versión personalizada de Spark impulsará la latencia de Spark Streaming desde el segundo nivel hasta 100 milisegundos o incluso menos.
Ventajas de SparkStreaming:
1. Proporciona una API enriquecida y las empresas pueden implementar rápidamente diversas lógicas comerciales complejas.
2. El flujo de datos que fluye hacia Spark Streaming se combina con el algoritmo de aprendizaje automático para completar la simulación de la máquina y el cálculo gráfico.
3. Spark Streaming se basa en el excelente pedigrí de Spark.
¿Puede SparkStreaming procesar datos uno por uno como Storm?
Storm procesa los datos uno por uno en unidades de tiras, mientras que Spark Streaming procesa los datos en función de la unidad de tiempo. ¿Puede Spark Streaming ser como Storm? La respuesta es: sí.
La práctica general en la industria es que Spark Streaming y Kafka pueden lograr este efecto, como se muestra en la siguiente figura:
Kafka es reconocido por la industria como la mensajería distribuida más convencional. marco, y este marco cumple con El modo de transmisión de mensajes también es consistente con el modo de cola de mensajes.
Tecnologías utilizadas internamente por Kafka:
1. ¿Caché?
2. ¿Persistencia máxima predeterminada? (una semana)
4. La tecnología Zero-Copy permite a Kafka alcanzar un rendimiento de cientos de megabytes por segundo, y los datos solo necesitan cargarse una vez en el kernel para que los utilicen otras aplicaciones.
Varios externos Los datos de origen se envían (Push) a Kafka y luego se capturan (Pull) a través de Spark Streaming. La cantidad de datos capturados se puede determinar de acuerdo con la situación real de cuántos datos se necesitan. procesado por segundo.
Ejemplo práctico de wordCount a través de Spark Streaming
Aquí hay un programa para ejecutar Spark Streaming: cuenta el número de apariciones de palabras que fluyen durante este período de tiempo. Lo que calcula es: Él estipula cuántas veces aparece cada palabra dentro del período de tiempo.
1. Primero inicie el clúster Spark:
Abrimos el sitio web oficial desde el clúster
Aceptamos estos datos para su procesamiento, que es el proceso de procesamiento de flujo. Justo ahora, WordCount se basa en 1 como unidad.
¿Por qué no obtuve ningún resultado cuando lo ejecuté hace un momento? Porque se necesita una fuente de datos.
2. Obtenga la fuente de datos:
Abra una nueva terminal de comando e ingrese:
$?nc?-lk?9999
Ahora copiamos la fuente de datos y ejecutamos:
Luego presiona Enter para ejecutar
La relación entre DStream y RDD:
Si no se ingresan datos, se imprimirá un archivo vacío resultado:
Pero, de hecho, la ejecución del trabajo la genera el marco Spark Streaming y no tiene nada que ver con la lógica empresarial del código Spark escrita por el propio desarrollador y el intervalo de tiempo de ejecución de el marco de Spark Streaming se puede configurar manualmente, como por ejemplo: cada Una llamada de trabajo se generará cada segundo. Por lo tanto, cuando los desarrolladores escriben código Spark (como mapa plano, mapa, recopilación), el marco Spark Streaming no genera la ejecución del trabajo y se puede configurar para generar una llamada de trabajo cada segundo.
Los datos que fluyen desde Spark Streaming son DStream, pero el marco Spark Core solo reconoce RDD. ¿Es esto una contradicción?
En el marco de Spark Streaming, las instancias de trabajo se generan en función de las instancias de rdd. El código que escribe es la plantilla del trabajo, es decir, rdd es la plantilla del trabajo. Se ejecutará rdd. Esta acción debe procesar los datos. La plantilla de RDD es un flujo discreto de DStream. Hay dependencias entre RDD, y DStream tiene dependencias, lo que forma un gráfico acíclico dirigido por DStream. Este diagrama DAG es una plantilla. Spark Streaming es solo una delgada envoltura adjunta a RDD.
El código que escribe no puede generar trabajo, solo el marco puede generar trabajo.
Si los datos no se pueden calcular en un segundo, solo puede ajustarlos.
Resumen:
Utilice Spark Streaming para procesar varios tipos de fuentes de datos, como bases de datos, HDFS, registros de servidor y transmisiones de red. Su potencia supera escenarios que no puede imaginar, pero muchas personas no lo usan. No sé mucho sobre Spark y el streaming de Spark.