"¡Solo toma 7 minutos! Me robaré tus Me gusta" Introducción a Big Data

Prefacio


Solo una cabeza calva puede volverse más fuerte.

El texto se ha incluido en mi repositorio de GitHub, bienvenido a Star:

https://github.com/ZhongFuCheng3y/3y

Este artículo es principalmente para la introducción de macrodatos, no involucra teorías y conocimientos avanzados, creo que todos pueden entenderlo. Si hay algo mal en el artículo, también puede señalarlo en el área de comentarios ~

1. ¿Qué es Big Data?

1.1 Conocimientos preliminares

A veces les explico a los profanos qué es una base de datos y, a menudo, uso Excel como ejemplo (porque la mayoría de la gente sabe qué es Excel). Hay un tema similar en Zhihu, "¿Qué quieres que haga una base de datos con Excel? ", todos pueden ir a ver:

  • https://www.zhihu.com/question/26779236

De hecho, una gran parte de la razón es que la cantidad de datos que puede manejar Excel es mucho menor que la de una base de datos. Dado que generamos una gran cantidad de datos en Internet, generalmente elegimos una base de datos para almacenar datos.

Excel solo tiene 104w filas, y hay más que no se pueden cargar ---- @ 知识 EamonLiao

Como todos sabemos, la cantidad de datos que podemos almacenar depende del tamaño de nuestro disco duro . Por ejemplo, el tamaño de mi disco es de 256 GB (el tamaño de almacenamiento real no es de 256 GB, pero no lo expandiré aquí), lo que significa que mi computadora solo puede almacenar datos de menos de 256 GB.

image.pngEl tamaño del disco duro

Para administrar mejor los datos de la computadora (el acceso y la búsqueda se vuelven más fáciles), tenemos un sistema de archivos .

image.pngSistema de archivos

Con un sistema de archivos, los datos ya se pueden almacenar (es conveniente para nosotros obtenerlos), entonces, ¿por qué hay una base de datos?

El sistema de archivos tiene las siguientes deficiencias: intercambio de datos deficiente y alta redundancia; poca independencia de datos

El sistema de base de datos se da cuenta de la estructura general , que es la diferencia esencial entre el sistema de base de datos y el sistema de archivos. ----- "Introducción al sistema de bases de datos"


La base de datos es en realidad un sistema diseñado para tipos específicos de procesamiento de datos , mientras que el sistema de archivos puede considerarse como un sistema de almacenamiento de datos de propósito general @ 知识 吴穗荣

Volviendo al big data, el big data se puede ver por su nombre: la cantidad de datos es enorme . ¿Como es de grande? Un disco duro normal no puede almacenar un archivo.

Entonces todavía quiero guardar este archivo, ¿qué debo hacer? El esquema es realmente muy simple (para decirlo claramente, uno es la expansión vertical y el otro es la expansión horizontal):

  • Compre algunos discos duros más para formar un "disco duro" más grande, con la esperanza de almacenar más datos.

    • La tecnología RAID (Redundant Array of Independent Disks) consiste en combinar varios discos ordinarios en una matriz para proporcionar servicios juntos .

    • Por ejemplo, ahora siento que 16GB de mi computadora no son suficientes, y mi placa base tiene dos ranuras de memoria, compro una tarjeta de memoria extra de 16GB. Entonces puedo decir que mi computadora tiene 32 GB de RAM.

  • Corte varias copias de este archivo y guárdelas en diferentes discos duros

    • Por ejemplo, tengo un archivo de 1 terabyte y lo divido en 5 copias, cada una con 200G, y las guardo en diferentes servidores.

Si es un usuario normal, debe comprar un disco duro adicional y actualizar el hardware. Pero las empresas de Internet no hacen eso, eligen dividir un archivo en varias partes y colocarlas en diferentes servidores. ¿por qué?

  1. El hardware de computadora superior cuesta mucho. (El rendimiento de una sola computadora alcanza un cierto nivel y el costo de actualización es muy alto)

  2. Solo una computadora superior puede ser incapaz de manejar una gran cantidad de datos perdidos

image.pngExpansión vertical y expansión horizontal

En resumen, las empresas de Internet actuales están eligiendo el escalado horizontal para agregar computadoras a un sistema para satisfacer el creciente número de usuarios y respaldar el buen funcionamiento de los datos.

1.2 Resolver problemas de almacenamiento

A medida que la cantidad de datos aumenta cada vez más, ya no es posible almacenar todos los datos en una máquina. Luego, asignaremos estos datos a diferentes máquinas para su almacenamiento, pero esto genera un problema: administración y mantenimiento inconvenientes.

Por lo tanto, esperamos que exista un sistema que pueda administrar de manera uniforme estos datos distribuidos en diferentes servidores operativos , y este tenga un sistema de archivos distribuido.

  • HDFS es uno de los sistemas de archivos distribuidos (actualmente el más utilizado)

Cuando se usa HDFS, es muy simple: aunque HDFS almacena archivos en diferentes máquinas, cuando lo uso, uso estos archivos como si estuvieran almacenados en una sola máquina (hay varias máquinas detrás) En ejecución):

  • Por ejemplo: llamé a una interfaz RPC, le di parámetros y me devolvió una respuesta. En realidad, no sé qué hace la interfaz RPC (tal vez esta interfaz RPC haya ajustado otras interfaces RPC) ----- protegió los detalles de implementación, lo cual es fácil de usar

image.pngUso de HDFS

1.3 Resolver problemas de cálculo

Anteriormente usamos HDFS como un sistema de archivos distribuido, que ya puede almacenar datos en diferentes máquinas (o leer datos en diferentes máquinas). A través de un archivo de línea de comandos simple la forma de acceso simple .

Ahora, debido a que la cantidad de datos es muy grande, se encuentran dispersos en diferentes máquinas. Queremos procesar datos, definitivamente tendremos un programa escrito. Hay dos formas de procesamiento:

  • Pasar los datos al programa (los datos de la máquina A / B / C se pasan al programa de la máquina D para su ejecución)

  • El programa se ejecuta donde se encuentran los datos (el programa se ejecuta en la máquina A / B / C respectivamente)

image.png

  • ¿Cuál elegir? Generalmente usamos "

El programa se ejecuta donde se encuentran los datos ", porque tenemos una gran cantidad de datos en big data. Si desea 机器A/B/Cingresar los datos 机器D, no es rentable.

  • La cantidad de datos es muy grande y no es apropiado transmitir datos grandes a una determinada máquina a través de la red para su funcionamiento.

  • La máquina D tiene una sola máquina y la eficiencia de procesamiento es baja.

Por lo tanto, colocaremos los programas 机器A/B/Cen la parte superior para su procesamiento, los programas son muy pequeños, por lo que es fácil ponerlos en otras máquinas. 机器A/B/CLos recursos que se pueden utilizar para los cálculos son muy adecuados.

"Transferir datos al programa" es el denominado " traslado del almacenamiento al cálculo " y "el programa se ejecuta donde se encuentran los datos" es el denominado " traslado del cálculo al concepto de almacenamiento ".

En el campo de los macrodatos,  la informática móvil es más rentable que los datos móviles . Así es como lo hace MapReduce :

  • Cuando cada máquina realiza una tarea, verifique si tiene un programa correspondiente, si no, descargue el paquete del programa a través de la red y luego cargue el programa a través de la reflexión.

2. Los macrodatos no son tan misteriosos como se imagina

Cuando escucharon por primera vez la palabra "big data", es posible que algunas personas quieran preguntar: "Big data", ¿de dónde provienen los datos ?

En pocas palabras, se puede clasificar en tres categorías:

  • Iniciar sesión

  • base de datos

  • reptil

1. Los  rastreadores deben entenderse bien, es decir, obtener datos externos a través de rastreadores web y almacenar estos datos ellos mismos. Muchos sitios web de comparación de precios rastrean los datos de varios sitios web de comercio electrónico y luego comparan los datos de varios sitios web para obtener los resultados. Su sitio web en sí no tiene estos datos, estos datos se rastrean desde otros.

2. La base de datos ya almacena nuestros datos, y todo lo que tenemos que hacer es importar los datos de la base de datos a nuestra plataforma de big data para que los datos se puedan analizar mejor.

3, registre este hecho, quiero decir que es más pieza impulsada (enterrada) . Algunas personas separarán este punto de enterramiento del concepto de tronco, pero lo puse junto y lo llamé "registro". Los registros incluyen registros de comportamiento del usuario (puntos enterrados) y registros generados por el funcionamiento del sistema. Para decirlo sin rodeos, el registro de comportamiento del usuario es: comienza desde el momento en que ingresas a una aplicación. Casi todas sus operaciones se registrarán (haga clic en una etiqueta, cuántos segundos de pausa en una etiqueta). Supongo que te gusta este tipo de sistema se basa en tu comportamiento pasado para hacer recomendaciones.

Bien, ahora tenemos datos recopilados en diferentes lugares. Lo último que tenemos que hacer es agregar estos datos para su almacenamiento y análisis.

Por lo tanto, necesitamos importar datos de diferentes fuentes de datos , como registros, bases de datos y rastreadores, a nuestro clúster (este clúster es el sistema de archivos distribuido (HDFS) mencionado anteriormente).

Debido a las diferentes fuentes de datos, habrá una variedad de herramientas para importar datos. Por ejemplo, tendremos Flume para recopilar datos de registro y tendremos Sqoop para sincronizar los datos de la base de datos . Este es el llamado ETL (extraer "extraer", transponer "transformar", cargar "cargar")

ETL es el proceso de extraer, limpiar y transformar los datos del sistema empresarial y cargarlos en el almacén de datos . El propósito es integrar los datos dispersos, desordenados y no uniformes en la empresa para proporcionar una base de análisis para la toma de decisiones de la empresa.

( Nota : no se asuste por términos como Sqoop y Flume anteriores, en realidad es la tecnología de marco madura existente )

Recopilamos todos los datos y llamamos a este lugar donde se almacenan los datos como almacén de datos . Basado en el almacén de datos podemos contar con diversos indicadores, sobre la base de estos indicadores puede guiar a nosotros la posibilidad de hacer una demanda o decisión .

Por ejemplo: ahora vamos a revisar la página de inicio de la APLICACIÓN, pero no sé si los usuarios pueden aceptar esta revisión. Entonces, primero podemos experimentar con una pequeña cantidad de usuarios (los usuarios de esta parte ven la página de inicio revisada), y juzgamos si esta revisión tiene un mejor efecto en función del comportamiento de esta parte de los usuarios .

  • Todos recopilamos el comportamiento de los usuarios. Siempre que los usuarios experimentales estén asociados a los indicadores correspondientes y comparados con los indicadores existentes, probablemente sepamos si esta revisión es realmente razonable.

Este tipo de experimento con una parte del tráfico, también lo llamamos " ABTest ", si está interesado en ABTest , puede buscar la palabra clave "ABTest" en mi GitHub para leer artículos específicos ~

Al final

Este artículo habla brevemente de dónde provienen los datos del llamado "big data" Debido a la gran cantidad de datos, tenemos que resolver el problema del almacenamiento y cálculo de datos.

En función de los problemas de almacenamiento e informática, hemos proporcionado muchas implementaciones de tecnología listas para usar en la industria. Explicaré cada tipo de tecnología en la figura siguiente. Puede seguirme y no se pierda . image.pngReferencia: "Aprendiendo Big Data desde 0" -Li Zhihui


Si quieres seguir mis artículos actualizados y productos secos compartidos en tiempo real , puedes seguir mi cuenta pública Java3y .

  • Obtenga recursos de video masivos

  • Obtenga un hermoso mapa mental en Java

  • Obtenga la ruta de aprendizaje de Java

  • Obtenga herramientas de desarrollo comunes

  • Jing Mei toda la razón Hao el libro electrónico PDF

    ¡Responde " 888 " en la cuenta oficial para obtenerlo! !


  • image.png

Supongo que te gusta

Origin blog.51cto.com/15082392/2590085
Recomendado
Clasificación