Skip to content

Commit f8fad0c

Browse files
actualización de requisitos técnicos
1 parent 764fdea commit f8fad0c

File tree

1 file changed

+70
-74
lines changed

1 file changed

+70
-74
lines changed

README.md

Lines changed: 70 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,35 @@
22

33
## Descripción del Proyecto
44

5-
Este proyecto demuestra la integración entre Hadoop y ElasticSearch, creando una conexión funcional entre Hive y un índice de ElasticSearch. La combinación de estas tecnologías permite aprovechar lo mejor de ambos mundos: el procesamiento masivo de datos de Hadoop y las capacidades de búsqueda y análisis en tiempo real de ElasticSearch.
5+
En este proyecto he demostrado la integración entre Hadoop y ElasticSearch, creando una conexión funcional entre Hive y un índice de ElasticSearch. La combinación de estas tecnologías me permitió aprovechar lo mejor de ambos mundos: el procesamiento masivo de datos de Hadoop y las capacidades de búsqueda y análisis en tiempo real de ElasticSearch.
66

7-
## Beneficios de la Integración Hadoop-ElasticSearch
7+
##Requisitos Técnicos y Software Utilizado
8+
##Infraestructura Cloud
89

9-
- **Análisis de Datos en Tiempo Real**: ElasticSearch permite realizar búsquedas y análisis de texto completo de manera eficiente, permitiendo obtener resultados rápidos en consultas complejas sobre grandes volúmenes de datos.
10+
Google Cloud Platform (GCP)
11+
- Dataproc versión 2.1
12+
- Hadoop 3.3.4
13+
- Máquina virtual: e2-standard-4 (4 vCPUs, 16 GB memoria)
14+
- Sistema operativo: Debian 11
15+
-
16+
Stack ELK
17+
- ElasticSearch 8.14.1
18+
- Logstash 8.14.1
19+
- Kibana 8.14.1
1020

11-
- **Integración de Fuentes de Datos**: Hadoop procesa y almacena grandes volúmenes de datos estructurados y no estructurados, que ahora pueden ser indexados en ElasticSearch para facilitar su acceso y búsqueda.
21+
Hadoop Ecosystem
22+
- Hive 3.1.3
1223

13-
- **Indexación Eficiente**: Utilizamos Hadoop para preparar y procesar datos antes de indexarlos en ElasticSearch, aplicando transformaciones complejas o agregaciones masivas cuando sea necesario.
24+
Librerías y Conectores
25+
- ES-Hadoop 8.14.1
26+
- Commons-httpclient 3.1
1427

15-
- **Consultas y Visualizaciones Avanzadas**: ElasticSearch proporciona capacidades avanzadas para consultas y visualizaciones, que ahora pueden ejecutarse sobre grandes conjuntos de datos procesados por Hadoop.
16-
17-
- **Búsqueda y Recuperación Optimizada**: Esta integración mejora significativamente la capacidad de búsqueda y recuperación de información, permitiendo encontrar rápidamente datos relevantes.
18-
19-
Al agregar la visualización con Kibana, obtenemos una solución completa para la obtención, procesamiento y gestión de Big Data.
28+
Herramientas para Documentación
29+
- Claude Sonnet 3.7 - Utilizado para generar documentación detallada del proceso, problemas encontrados y soluciones
2030

2131
## Arquitectura del Sistema
2232

23-
Nuestra arquitectura combina:
33+
Mi arquitectura combina:
2434
- Un clúster Hadoop en Google Cloud Dataproc
2535
- Un servidor ElasticSearch (ELK stack) con Kibana y Logstash
2636
- Conectores ES-Hadoop para la integración entre ambos sistemas
@@ -30,12 +40,12 @@ Nuestra arquitectura combina:
3040
### Parte 1: Configuración ES-Hadoop
3141

3242
#### Configuración del Clúster Hadoop
33-
1. Creamos un clúster Hadoop en Google Cloud Dataproc
34-
2. Cargamos las bibliotecas necesarias para la integración:
43+
1. Creé un clúster Hadoop en Google Cloud Dataproc
44+
2. Cargué las bibliotecas necesarias para la integración:
3545
- elasticsearch-hadoop-8.14.1.jar
3646
- commons-httpclient-3.1.jar
37-
3. Creamos un bucket en Google Storage para almacenar estos archivos JAR
38-
4. Descargamos los archivos desde el bucket al sistema de archivos del clúster
47+
3. Creé un bucket en Google Storage para almacenar estos archivos JAR
48+
4. Descargué los archivos desde el bucket al sistema de archivos del clúster
3949

4050
```bash
4151
gsutil cp gs://bucket-para-elastic/jars/elastic/elasticsearch-hadoop-8.14.1.jar .
@@ -44,37 +54,37 @@ gsutil cp gs://bucket-para-elastic/jars/elastic/commons-httpclient-3.1.jar .
4454

4555
### Parte 2: Configuración del Servidor ElasticSearch
4656

47-
1. Creamos una máquina virtual para ElasticSearch en Google Cloud
48-
2. Instalamos y configuramos ElasticSearch, desactivando las funciones de seguridad para esta prueba
49-
3. Abrimos los puertos de firewall necesarios:
57+
1. Creé una máquina virtual para ElasticSearch en Google Cloud
58+
2. Instalé y configuré ElasticSearch, desactivando las funciones de seguridad para esta prueba
59+
3. Abrí los puertos de firewall necesarios:
5060
- Puerto 9200 para ElasticSearch
5161
- Puerto 5601 para Kibana
52-
4. Verificamos la conectividad entre el clúster Hadoop y el servidor ElasticSearch
62+
4. Verifiqué la conectividad entre el clúster Hadoop y el servidor ElasticSearch
5363

5464
### Parte 3: Configuración de la Conexión en el Clúster Hadoop
5565

56-
Modificamos la configuración de Hive para establecer la conexión con ElasticSearch:
66+
Modifiqué la configuración de Hive para establecer la conexión con ElasticSearch:
5767

5868
```bash
5969
sudo sed -i '$d' /etc/hive/conf.dist/hive-site.xml
60-
sudo sed -i '$a \ <property>\n <name>es.nodes</name>\n <value>IP_ELASTIC_SERVER</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
61-
sudo sed -i '$a \ <property>\n <name>es.port</name>\n <value>9200</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
62-
sudo sed -i '$a \ <property>\n <name>es.nodes.wan.only</name>\n <value>true</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
63-
sudo sed -i '$a \ <property>\n <name>hive.aux.jars.path</name>\n <value>/usr/lib/hive/lib/elasticsearch-hadoop-8.14.1.jar,/usr/lib/hive/lib/commons-httpclient-3.1.jar</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
70+
sudo sed -i '$a \ <property>\n <n>es.nodes</n>\n <value>IP_ELASTIC_SERVER</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
71+
sudo sed -i '$a \ <property>\n <n>es.port</n>\n <value>9200</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
72+
sudo sed -i '$a \ <property>\n <n>es.nodes.wan.only</n>\n <value>true</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
73+
sudo sed -i '$a \ <property>\n <n>hive.aux.jars.path</n>\n <value>/usr/lib/hive/lib/elasticsearch-hadoop-8.14.1.jar,/usr/lib/hive/lib/commons-httpclient-3.1.jar</value>\n </property>' /etc/hive/conf.dist/hive-site.xml
6474
sudo cp elasticsearch-hadoop-8.14.1.jar /usr/lib/hive/lib/
6575
sudo cp commons-httpclient-3.1.jar /usr/lib/hive/lib/
6676
```
6777

68-
Estos comandos:
69-
- Eliminan la última línea del archivo de configuración de Hive
70-
- Agregan propiedades de configuración para la conexión con ElasticSearch
71-
- Copian los JAR necesarios al directorio de bibliotecas de Hive
78+
Estos comandos me permitieron:
79+
- Eliminar la última línea del archivo de configuración de Hive
80+
- Agregar propiedades de configuración para la conexión con ElasticSearch
81+
- Copiar los JAR necesarios al directorio de bibliotecas de Hive
7282

73-
Finalmente, reiniciamos Hive para aplicar los cambios.
83+
Finalmente, reinicié Hive para aplicar los cambios.
7484

7585
### Parte 4: Conexión de Datos
7686

77-
1. Creamos un índice en ElasticSearch desde el servidor:
87+
1. Creé un índice en ElasticSearch desde el servidor:
7888

7989
```bash
8090
curl -X POST "localhost:9200/alumnos/_doc/6" -H 'Content-Type: application/json' -d'
@@ -86,7 +96,7 @@ curl -X POST "localhost:9200/alumnos/_doc/6" -H 'Content-Type: application/json'
8696
'
8797
```
8898

89-
2. Agregamos documentos al índice desde el clúster Hadoop:
99+
2. Agregué documentos al índice desde el clúster Hadoop:
90100

91101
```bash
92102
curl -X POST "IP-SERVER-ELASTICSEARCH:9200/_bulk" -H 'Content-Type: application/json' -d'
@@ -103,100 +113,86 @@ curl -X POST "IP-SERVER-ELASTICSEARCH:9200/_bulk" -H 'Content-Type: application/
103113
'
104114
```
105115

106-
3. Verificamos la inserción de datos con una consulta:
116+
3. Verifiqué la inserción de datos con una consulta:
107117

108118
```bash
109119
curl -X GET "http://IP-SERVER-ELASTIC:9200/alumnos/_search?pretty"
110120
```
111121

112122
### Parte 5: Visualización con Kibana
113123

114-
1. Accedemos a Kibana a través del navegador: `http://IP_ELASTIC_SERVER:5601`
115-
2. Creamos una vista de datos (Data View) para el índice "alumnos"
116-
3. Creamos un dashboard con visualizaciones de los datos
117-
4. Exploramos las diferentes opciones de visualización que ofrece Kibana
124+
1. Accedí a Kibana a través del navegador: `http://IP_ELASTIC_SERVER:5601`
125+
2. Creé una vista de datos (Data View) para el índice "alumnos"
126+
3. Creé un dashboard con visualizaciones de los datos
127+
4. Exploré las diferentes opciones de visualización que ofrece Kibana
118128

119-
## Problemas Comunes y Soluciones
129+
## Problemas que Enfrenté y Cómo los Resolví
120130

121-
Durante la implementación de este proyecto, nos encontramos con varios desafíos técnicos que pudimos resolver:
131+
Durante la implementación de este proyecto, me encontré con varios desafíos técnicos:
122132

123133
### 1. Problemas de Conectividad entre Hadoop y ElasticSearch
124134

125-
**Problema:** El clúster Hadoop no podía conectarse al servidor ElasticSearch.
135+
**Problema:** Mi clúster Hadoop no podía conectarse al servidor ElasticSearch.
126136

127137
**Solución:**
128-
- Verificamos que las reglas de firewall estuvieran correctamente configuradas para permitir el tráfico al puerto 9200.
129-
- Configuramos ElasticSearch en modo inseguro (`xpack.security.enabled: false`) para propósitos de prueba.
130-
- Agregamos la propiedad `es.nodes.wan.only=true` en la configuración de Hive para permitir conexiones desde fuera de la red local.
138+
- Verifiqué que las reglas de firewall estuvieran correctamente configuradas para permitir el tráfico al puerto 9200.
139+
- Configuré ElasticSearch en modo inseguro (`xpack.security.enabled: false`) para propósitos de prueba.
140+
- Agregué la propiedad `es.nodes.wan.only=true` en la configuración de Hive para permitir conexiones desde fuera de la red local.
131141

132142
### 2. Errores en la Carga de JAR
133143

134144
**Problema:** Hive no podía encontrar las bibliotecas de ElasticSearch-Hadoop.
135145

136146
**Solución:**
137-
- Verificamos la ruta correcta donde debían colocarse los archivos JAR (`/usr/lib/hive/lib/`).
138-
- Nos aseguramos de cargar el JAR correcto del paquete ElasticSearch-Hadoop (el que se encuentra en la carpeta `dist` del archivo ZIP).
139-
- Reiniciamos el servicio Hive después de cargar los JAR.
147+
- Verifiqué la ruta correcta donde debían colocarse los archivos JAR (`/usr/lib/hive/lib/`).
148+
- Me aseguré de cargar el JAR correcto del paquete ElasticSearch-Hadoop (el que se encuentra en la carpeta `dist` del archivo ZIP).
149+
- Reinicié el servicio Hive después de cargar los JAR.
140150

141151
### 3. Configuración Incorrecta de Hive
142152

143153
**Problema:** Los comandos `sed` para modificar el archivo de configuración `hive-site.xml` no funcionaban correctamente.
144154

145155
**Solución:**
146-
- Editamos manualmente el archivo para asegurarnos de que la sintaxis XML fuera correcta.
147-
- Verificamos que no hubiera caracteres especiales o espacios que pudieran afectar la interpretación de los comandos.
148-
- Comprobamos que el archivo terminara correctamente con la etiqueta `</configuration>`.
156+
- Edité manualmente el archivo para asegurarme de que la sintaxis XML fuera correcta.
157+
- Verifiqué que no hubiera caracteres especiales o espacios que pudieran afectar la interpretación de los comandos.
158+
- Comprobé que el archivo terminara correctamente con la etiqueta `</configuration>`.
149159

150160
### 4. Versiones Incompatibles
151161

152-
**Problema:** Incompatibilidad entre versiones de ElasticSearch y el conector ES-Hadoop.
162+
**Problema:** Tuve incompatibilidad entre versiones de ElasticSearch y el conector ES-Hadoop.
153163

154164
**Solución:**
155-
- Aseguramos que la versión de ElasticSearch (8.14.1) coincidiera con la versión del conector ES-Hadoop.
156-
- Utilizamos la biblioteca commons-httpclient adecuada para evitar problemas de compatibilidad.
165+
- Me aseguré de que la versión de ElasticSearch (8.14.1) coincidiera con la versión del conector ES-Hadoop.
166+
- Utilicé la biblioteca commons-httpclient adecuada para evitar problemas de compatibilidad.
157167

158168
### 5. Problemas con la Indexación de Datos
159169

160170
**Problema:** Los datos no aparecían en ElasticSearch después de intentar indexarlos.
161171

162172
**Solución:**
163-
- Verificamos la sintaxis correcta de los comandos curl para la inserción de datos.
164-
- Comprobamos que el índice "alumnos" estuviera correctamente creado antes de intentar insertar documentos.
165-
- Utilizamos el parámetro "pretty" en las consultas para facilitar la lectura de resultados y depuración.
173+
- Verifiqué la sintaxis correcta de los comandos curl para la inserción de datos.
174+
- Comprobé que el índice "alumnos" estuviera correctamente creado antes de intentar insertar documentos.
175+
- Utilicé el parámetro "pretty" en las consultas para facilitar la lectura de resultados y depuración.
166176

167177
### 6. Problemas con Kibana
168178

169179
**Problema:** Kibana no mostraba el índice "alumnos" en la lista de índices disponibles.
170180

171181
**Solución:**
172-
- Refrescamos manualmente la lista de índices en Kibana.
173-
- Creamos una vista de datos (Data View) escribiendo manualmente el patrón del índice.
174-
- Verificamos que Kibana estuviera utilizando la configuración correcta para conectarse a ElasticSearch.
182+
- Refresqué manualmente la lista de índices en Kibana.
183+
- Creé una vista de datos (Data View) escribiendo manualmente el patrón del índice.
184+
- Verifiqué que Kibana estuviera utilizando la configuración correcta para conectarse a ElasticSearch.
175185

176-
Estos desafíos son comunes en implementaciones de integración de tecnologías de Big Data y su resolución nos permitió ganar experiencia valiosa en la configuración y optimización de estos sistemas.
186+
Enfrentar y superar estos desafíos me permitió ganar experiencia valiosa en la configuración y optimización de estos sistemas de Big Data.
177187

178188
## Conclusiones
179189

180-
La integración de Hadoop con ElasticSearch proporciona una solución poderosa para el procesamiento, análisis y visualización de grandes volúmenes de datos. Esta configuración permite:
190+
La integración de Hadoop con ElasticSearch me proporcionó una solución poderosa para el procesamiento, análisis y visualización de grandes volúmenes de datos. Con esta configuración pude:
181191

182192
- Procesar datos masivos con Hadoop
183193
- Indexar y buscar eficientemente con ElasticSearch
184194
- Visualizar los resultados de manera interactiva con Kibana
185195

186-
Esta combinación es ideal para casos de uso como análisis de logs, búsqueda de texto completo en grandes repositorios de documentos, análisis de datos en tiempo real y muchas otras aplicaciones de Big Data.
187-
188-
## Requisitos Técnicos
189-
190-
- Google Cloud Platform (para Dataproc y VM)
191-
- Hadoop/Hive
192-
- ElasticSearch 8.x
193-
- Kibana
194-
- Conectores ES-Hadoop
195-
- Acceso a firewall para configurar puertos
196+
Esta combinación resultó ideal para casos de uso como análisis de logs, búsqueda de texto completo en grandes repositorios de documentos, análisis de datos en tiempo real y muchas otras aplicaciones de Big Data.
196197

197-
## Próximos Pasos
198198

199-
- Implementar seguridad en ElasticSearch
200-
- Automatizar el proceso de ingesta de datos
201-
- Crear pipelines de procesamiento más complejos
202-
- Explorar capacidades avanzadas de agregación y visualización

0 commit comments

Comments
 (0)