1:04:11
2024-10-09 10:47:18
1:29:40
2024-10-09 12:28:28
25:55
2024-10-10 09:26:29
2:38:45
2024-10-10 09:59:31
46:32
2024-10-10 15:02:46
Visit the Big Data course recordings page
United Arab Emirates - Big Data Hadoop Analyst Training
WEBVTT--> ¿No? Que me permita cargar el --> software entonces. --> Listo, ya el caso de Ernesto le --> subió la la UI. Y ya también --> está cargando, y los demás --> también están cargando. Vamos --> con un ejemplo básico entonces --> para entender cómo funciona el --> señor a nivel de esta versión --> porque en las versiones --> superiores la mayoría se está --> casando con Spark. Como le --> decía, muy raro un proyecto --> nuevo que alguien lo genere --> con MacReduce. Yo creo que no --> creo que alguien hoy en día un --> proyecto nuevo alguien lo lo --> creería con MacReduce. Perfecto, --> ya me está cargando y no sé --> cuando inicié la máquina --> virtual me quedó con mucha --> memoria. Me quedó con 6 gigas --> de memoria y me está costando --> esas 6 gigas. Ahora vemos por --> ahí qué pasó cuando... --> Listo, voy a cerrar esta --> ventana aquí que no voy a --> usar nada con ellas. Y espero --> entonces que a mí también me --> termine de cargar. En caso de --> que Edward sería iniciar ya y --> dice, ok, listo. Ah, vas a ver --> las configuraciones. Si ya le --> cargó la UI de Thale, por --> favor, vamos a crear una --> carpeta que se llama --> Procesamiento. Procesamiento. --> Bueno, creo que la mayoría --> esa máquina virtual nos --> devoró. Esperamos a que --> cargue. Ups, está demorando --> bastante. --> Bueno, por favor, si ya le --> cargó, cree un folder llamado --> Procesamiento. Perfecto, y aquí --> voy a maximizar. --> Listo, entonces lo primero que --> vamos a hacer es que voy a --> crear entonces un folder para --> organizarme. Ya tengo un --> folder netamente de --> almacenamiento y voy a crear ahora --> un nuevo folder para la parte --> de procesamiento. Perfecto, --> entonces, aquí doy ok. --> Derecho, crea el folder. --> Y este folder lo voy a llamar --> entonces Procesamiento. --> Procesamiento. --> Y ahí voy a meter todo mi --> que tienen relacionado o tienen --> relación con --> Procesamiento. --> Perfecto, vamos a crear el --> primer job aquí. --> Vamos a llamarlo Job. --> Limpieza. --> Archivo. --> Producción. --> Finish. --> Hoy sí, vamos a tener un --> problema con esa... --> Es que... --> Ah, ok, sí, sí, claro, lo que --> pasa es que tengo... --> No tengo mi memoria. --> No, me lo ocupe, yo la espero --> un momento. Es que la máquina --> virtual la guardé, pero no me --> estudió seis gigas. No la quiero --> apagar. --> No se preocupe, yo la espero. --> Hicimos dos cosas. La primera --> fue crear un folder llamado --> Procesamiento. --> Y lo segundo fue crear un --> job llamado Job Limpieza --> Archivo Producción. --> Perfecto, eso espero un --> momento más que todavía no ha --> cargado. Listo, ahora sí. --> Bien, ya le había comentado --> el día de ayer --> de usar --> un componente que se llama --> TPreJob y TPosJob. --> Listo. Vamos entonces a hacer --> lo siguiente. Voy a agregar aquí --> un componente TPreJob. --> TPreJob. --> Voy a agregar un componente --> de tipo THDFS --> Connection. --> Y voy a agregar ahora --> para encontrarle un poco de sentido --> a esto, le voy a agregar el día --> de ayer, simplemente lo mostré, --> pero no le busqué el sentido. --> Voy a agregar un archivo para --> LOG, que sería un componente --> para LOG, perdón, que se llama --> TWAR, que fue el día de ayer. --> Ya le vamos a encontrar sentido --> a ese TWAR como tal. --> Vamos a conectar entonces --> los componentes del TPreJob. --> Vamos a conectarlo aquí --> al señor --> Connection. --> Y vamos aquí a --> un component OK. --> Al TWAR este que está aquí. --> Y vamos a hacer nuestro --> archivito de LOG. --> Que es sumamente importante para --> la parte de errores. --> Entonces aquí tengo, --> voy a entrar a este TWAR --> y voy a escribir --> lo siguiente entonces. --> TWAR mensaje. El mensaje va a ser --> conexión --> exitosa --> Cluster Hadoop. --> Y esto por favor, dale --> que es un mensaje --> de seguimiento, de trace. --> Los LOG, recuerden que los LOG tienen --> varios tipos. Entonces, --> el TWAR mensaje, como esto es --> Java, en este caso, tengo que --> mandarle ahí entre comillas doble, --> quiero que escriba eso. Conexión --> exitosa Cluster Hadoop. --> El código de error, pues ya eso lo --> define internamente. ¿Cuál es el que usted define allá? --> Deje por defecto 42. --> Y en realidad los LOG van a ser de trace. --> O sea, de seguimiento. --> De seguimiento. --> Vamos aquí ahora --> al THDFC --> Connection. --> Y vamos --> a escoger en property type, vamos a --> escoger la que estamos definida --> en metadata. Entonces vamos aquí al repositorio. --> En el property type. --> Y vamos a elegir --> ya la que hicimos al día de ayer --> de manera estática sobre la --> metadata. ¿Por qué --> la llamo estática? Porque por defecto --> ahí cuando es estática no le puedo --> configurar una variable en torno. --> Pero yo la podía cambiar cuando la adiciono a este lado. --> Subajo hasta aquí --> y llego hasta --> HDFS Axa y doy --> OK. --> Claro, estática porque --> cuando la defino no puedo definir --> variables de --> contexto, perdón. Pero yo podía --> cambiarla en el componente aquí. No es el caso --> pero podía ser. --> Hacemos lo siguiente ahora y vamos a agregar --> un componente que no lo habíamos --> visto que es el componente --> T-LOG --> Catcher. --> Capturador de LOG. T-LOG --> Catcher. --> Y aquí --> vamos a agregar un T-LOG RAW que ya lo --> hemos visto. --> Y agrega un --> T-FI --> output --> delimited. --> El T-LOG es para verlo en --> consola y el T delimited es para que --> me cree el archivo LOG con respecto a eso. --> En este caso te podía preguntar por qué --> no uno ese T-LOG Catcher --> con un T --> post job. --> Porque por defecto --> la herramienta entiende que ese --> T-LOG Catcher lo va a ejecutar de último --> cuando termine de ejecutar todo lo su --> job. La herramienta ya entiende --> esa parte. Está --> configurada de esa manera. --> Una el T-LOG Catcher --> con el T-LOG RAW --> y el T-LOG RAW --> únalo con --> este T-FILE --> output. --> Vaya, dele doble click --> al T-LOG Catcher, por favor. --> Y el T-LOG Catcher por --> defecto te especifica --> tres elementos que va a capturar. --> Cualquier error en Java, --> en la ejecución de Java. --> Cualquier TDAI, que no lo he --> visto, TDAI es un componente que mata --> un job. Ya ver si lo vamos a ver más --> tarde. Y captura --> todo lo que esté un componente --> te guarda. Eso está por defecto --> si tú quieres capturar alguno de ellos, pues evidentemente --> los de chuleas. --> Ahí no hay que hacer más nada. --> Vamos al T-FILE output. --> Vamos a decirle que incluya --> el header y con el elemento --> adicional que añada al archivo de --> log. Es decir, que no lo sobrescriba, --> sino que vaya añadiendo cualquier --> error que vaya encontrando. Y yo puedo al --> final, si hay un error, entrar al --> servidor y verificar --> que son, --> que puede estar haciendo ahí o qué error --> pasó, dónde se quedó. --> Por último, mandalo a la --> carpeta C --> dos puntos, en mi caso se llama --> ten --> ten --> y llama el archivo --> logs. --> Voy a colocarle textex --> logs.txt --> logs.txt, es decir, me quedó --> el nombre de archivo --> de esta manera. --> Quedaría de esta manera. --> Bueno, algunos tienen la carpeta --> temporal. --> Dese cuenta que yo adopto --> por estándar normalmente que los --> nombres de carpeta los coloco en minúscula --> y todo lo coloco en minúscula. --> Noto que hay --> algunos que les gusta y me parece bien --> colocar una carpeta o nombre de archivo --> con la primera mayúscula. --> Pero recuerde que si el job lo ejecuta --> en Java, es perdón, en Windows --> y le ejecuta en Windows --> y tiene la carpeta temporal con --> t minúscula en el --> job y t mayúscula --> en la que el nombre carpeta --> en Windows le funciona, pero cuando --> cambia al INUS no le va a funcionar, le va a hacer un --> error. Cuando quiero llegar --> es que usted adopte el estándar. Si empieza --> todo en mayúscula, siempre colócalo lo que --> empieza en mayúscula. --> Bueno, ahora revisamos ya esta --> parte de cómo es, entonces --> esto se ejecuta al final y me va a --> capturar todos los errores entonces. --> Entonces voy a colocar aquí ahora --> otro teguar. --> Aquí abajito. --> Y le voy a colocar el mensaje. --> Iniciando --> lectura --> archivo --> Hadoop. --> Y este por favor --> tómelo de tres. --> Ahora voy a hacer lo siguiente, voy a agregar --> dos componentes. Un componente --> que se llama TH --> ya lo he visto --> DFS input --> TH DFS --> input --> TH DFS --> input --> y coloque --> su contraparte que es --> TH DFS --> output --> que eso no lo hemos visto. --> TH DFS output. --> A ver, entendamos por qué lo hice --> de esta forma. --> Fácilmente, --> y escucho conexión acá, fácilmente yo pude --> haber hecho lo siguiente, ir a cada --> a este TH DFS input --> y hacer la conexión como --> la hice exactamente aquí. --> No la gusta ella por favor. --> Decir, tomar esta conexión aquí --> espera que está demorando para salir, la misma que --> hice, es decir, tomar la conexión de aquí --> y hacer esto --> mismo también con el output. --> Pero cuál es el problema? La eficiencia. --> Es decir, por qué? --> Porque al hacerlo a esa configuración --> en cada uno de los componentes --> cuando entre al input --> se va a conectar a Hadoop. --> Se desconecta y después en la otra --> se va a conectar a Hadoop y después se desconecta. --> Entonces, --> hay dos conexiones hacia Hadoop. --> Ahora, estábamos pensando --> en que esto puede estar en la one, --> o sea, tú tienes tu job, --> lo tienes de pronto en Hadoop --> US y de pronto el --> sistema Hadoop lo tienes en Azure. --> Entonces hay un delay, una latencia --> que voy a tener que ir a buscar ese señor allá --> y devolverme acá. Entonces, --> para evitar eso, ¿qué voy a hacer? Voy a crear --> solamente una conexión --> y esta conexión va a ser aprovechada por estos --> dos señores acá. O sea, solamente --> me conectaría una sola vez. --> Entonces, vamos a configurar --> primero el input, este que está aquí. --> Y este input --> voy a decirle, --> usar conexión existente --> y voy a usar como component list --> HDFS Connection. --> Entonces, --> vayas aquí donde dice nombre --> de archivo, seguramente se va a conectar --> al sistema de Hadoop --> y le va a mostrar el sistema de --> fichero que está allá. Vamos a ver, --> efectivamente aquí está. --> Y voy a utilizar --> el primer ejemplo con --> producción.csv, este que aquí. --> Ok. --> Esta versión --> de --> Hadoop, --> del open source, --> los componentes de input --> son para archivos CSV. --> En el --> talegue tuyo tienes para leer en --> otro formato. O sea, este porque es gratuito --> y pues habría que --> nada más tiene --> nada más esto que está aquí. --> Ahora, estos tipos de ficheros te lo voy a explicar --> más adelante, porque más adelante --> voy a meterme un poco con parquet, --> que no tengo --> componentes para generar parquet, --> pero en la versión de talegue tuyo si tienes --> para parquet. --> Dejemos como text y hagamos lo siguiente, --> el separador de esa producción, --> permítame y lo confirmo, --> si no estoy mal, es coma. --> Voy a acceder aquí --> a ten, --> producción clit derecho, --> abrir, editar aquí --> y está separado --> por coma. Entonces, le voy a --> decir que el separador que está --> con punto y coma --> va con coma. Es importante que --> definas a nivel de estándar tu separador, --> porque --> así acostumbras --> si hay una memoria en que siempre vamos a ver el mismo. --> Y ahora hay un --> header, entonces le voy a colocar --> aquí uno. --> En esta parte de --> codificación, aquí puedes --> usar la codificación de entrada, --> asegura que --> la codificación de entrada sea la misma de salida, --> porque si no puedes dañar el formato --> del archivo. --> Dejémosla, porque como no he usado ninguna, está tomando --> la defecto, que es esa que aparece ahí --> ISO 89. --> Pero recuerda que esa es --> muy fundamental cuando tienes --> portugués y cuando tienes español, --> que es el idioma de nosotros. --> La de compresión, ahora te la muestro cómo es el cuento. --> Esa parte de compresión de data. --> Ahora, --> ¿Qué quiero hacer? Vamos a hacer algo muy sencillo. --> Vamos a --> ver, --> este archivo tiene algunos --> problemas porque hay unos espacios en blanco. --> Entonces vamos a eliminar esos espacios en blanco, --> es decir, este job --> que voy a usar sobre Big Data, --> lo que va a hacer entonces es lo siguiente. --> Agregue --> por favor un T-Map --> aquí y ya te voy a explicar un par de cosas. --> Un T-Map. --> Y conecta --> ahora, por favor, se me escapaba --> el T-Warp, conéctalo --> al HDFS input. --> No conecto. Con un disparador --> o un component OK, perdón. --> Un component OK. --> Un disparador --> o un component OK. --> Si coloco un sub-job OK, la única diferencia --> es que el T-Warp queda --> en un sub-job diferente. --> Pero tienes que tener en cuenta que es la misma idea --> siendo que un component queda en el mismo --> sub-job y con un sub-job OK --> me quedan los dos en dos sub-jobs diferentes. --> Y aquí es para entender --> cómo funciona la herramienta. --> cuando el component... No. --> Porque --> es que hay unos componentes que no --> se conectan con main. --> Es una cuestión más de capricho de la forma --> en que funciona el talent. --> Pero si le conecto con un component OK, --> le conecto, ¿verdad? --> El main no. --> Lo que pasa es que hay --> unos componentes que no... --> Hay unos componentes que son con main, --> unos que son con iterate --> y unos que son con disparadores. --> Es más entender --> o saber, no entender, porque ya es un poco más --> de capricho de por qué lo conecto --> con main o con component OK. --> Ya es un poco más de capricho de la herramienta de por qué lo hizo así. --> Listo. Y aquí viene --> bueno, lo fundamental de la herramienta. --> Listo. --> Dese cuenta que aquí tengo un HDFS --> input. --> Si el componente es un HDFS --> input o el componente --> es un --> T-Spark --> o en su defecto, tú has cambiado --> en la versión del estudio la --> ejecución estándar a una ejecución sobre --> Spark. Eso lo que va a hacer --> entonces es que va a mandar, --> va a generar un script y lo va a --> mandar para que se ejecute, en este caso, --> hacia MacReduce. --> En pocas palabras, cuando yo conecto --> esto de aquí para adelante, --> todo esto --> que está hacia elante, él va a generar un script --> sobre Java y lo va a mandar a --> ejecutar sobre el Hadoop, en este --> caso, sobre MacReduce. --> ¿Qué hace esto? Que te evita --> que tú tengas que escribir ese script. --> Si el componente, vuelvo --> repito, si el componente es T-HDFS --> input, --> si el componente es --> T-Spark, todo lo que --> usted tome de ahí hacia adelante, --> él va a generar un script para mandarlo --> y ejecutarlo con MacReduce. --> Eso es lo que va a hacer él. --> De igual forma, también te funciona, --> que esto no lo tenemos, es que cambies la --> ejecución, es decir, aquí en el job, --> aquí en el job, esta parte de aquí, --> aquí está --> RuneJob, --> en el RuneJob, --> la versión Talent Studio te va a ofrecer, --> dependiendo de lo que hayas comprado, --> te va a ofrecer para que tú digas, o lo --> ejecuto estándar o lo ejecuto sobre Spark. --> Y él te hace la conversión automática. --> Esto es lo principal de la --> herramienta, que me genera --> los scripts para ser ejecutado sobre el --> MacReduce o sobre un sistema Spark. --> Eso es lo fundamental. Ya lo demás, sigue --> siendo lo que es una herramienta de TL. --> Tú le agregas los componentes --> como tú quieras y él te genera el script --> para que se ejecute sobre el clóter de Hadoop o clóter de Spark. --> Para contar, eso es lo que hace la --> herramienta y que ayuda mucho --> para no tener que escribir tanto poder. --> Listo, --> conecta ahora este tema --> por favor hacia --> el HDF Output --> y vamos --> a llamarlo aquí --> Salida Curada. --> Voy a colocar --> a otro The War de este lado. --> Lo voy a comentar con --> Component OK desde el Output --> con Component OK --> y le voy a colocar el mensaje al The War --> Archivo Curado o Limpiado --> de forma correcta. --> De tipo 3. --> Archivo --> Curado --> de forma correcta. --> Esto lo hago para generar --> los 3 o es su efecto --> vigilar los errores. --> Curado de forma correcta. --> Lo que ya no hemos configurado --> se me escapó una --> configuración en el --> HDFS Input, se me --> olvidó. --> Listo, vamos aquí --> se me escapó en este HDFS Input --> doble clic por favor. --> Doble clic. --> Y recordará, vamos a hacerlo --> de forma diferente para que usted escoja --> lo que usted desee. --> Si recordará que el día de ayer --> para recordarlo --> el día de ayer tomamos este --> archivito, buscamos --> el XML y eso lo que hacía --> era que me devolvía, ¿cierto? --> Vamos a hacerlo un poco diferente ahora. --> ¿Cómo lo hacemos diferente? --> Ah, no, pero este componente no me va --> a permitir hacer eso. --> Ah, sí, pero si es así. --> ¿Qué pasa? Que el esquema --> que quiero está en el --> metadata. Entonces --> donde dice esquema --> hay un combo voz, le da clic ahí --> y le dice repositorio. --> Le dice, bueno aquí --> que cambia el yes. --> Y busca, le aparece un --> text file y un botón --> dele clic en el botón --> y le va a aparecer toda la metadata que tiene --> configurada. --> Y en esa metadata va a buscar --> en el archivo delimitado, producción --> que es lo que tenemos, y da clic en --> metadata. Y eso hace exactamente --> lo mismo de ayer, es decir --> ayer lo que hicimos fue --> está listo. --> Listo, listo, vamos a ver, claro, cómo no. --> Está, vea ese --> HDFS input y se va donde dice --> esquema. --> La parte de esquema. --> Y al ladito está un combo voz. --> Ese combo voz --> lo abre y escoge la --> opción repositorio. --> Aquí le dice --> que si desea guardar, yes. --> Acto seguido le aparece --> un casilla de texto y un botón --> al ladito, le da al botón --> y le va a aparecer el --> repositorio de los elementos --> que están configurados --> en la metadata. --> Ahí va a buscar el archivo de la metadata --> que en este caso estaría en file delimited --> producción y escoge --> la opción metadata. --> Ok. --> Y yes. --> Y si vas aquí en editar esquema, --> debería aparecer el esquema --> que te agregó que es exactamente el de --> producción que tenía ya. --> Bueno, mientras --> algunos van terminando ahí, la idea --> principal es que entienda cómo --> es el funcionamiento y la arquitectura --> de la herramienta a nivel de viz data. --> Si el componente de entrada --> es un HDFS input --> o un TSPAR, lo que hace --> es que en el caso de --> TFS input, el generador --> lo manda a ejecutar contra --> MacReduce. --> Y si es TSPAR, --> pues lo mandaría a ejecutar contra el cluster --> de SPAR que tenga configurado. --> Listo. --> Vamos de manera muy sencilla --> al TMAG. Ya de aquí en adelante, --> pues es lo que hemos aprendido de cualquier herramienta --> que haya visto. Vamos aquí entonces --> al TMAG. --> Agrega entonces una variable --> aquí. --> Manda season --> a este lado. --> Y después que creas --> una variable, no hagas la otra, --> después que creas la primera, --> suelta la segunda para que te de --> la configuración de ese señor. --> Suelta la segunda aquí, suelta aquí --> y haz de cuenta que la entrada --> ya corresponde con la salida. --> O sea, lo mismo que --> entra en nombre, sale --> en salida. No me te va a confiar, --> pero eso es cuando ya por lo --> menos tengo una variable creada. --> Al nombre de variable, acá --> le va a colocar season. --> Y lo único que va a hacer --> en la expresión --> es agregarle a cada una, --> le va a dar punto --> trim. --> Trim para quitar los espacios que están al principio --> y al final. Aquí está trim. --> Ok. --> Y aquí le vamos a dar trim. --> Es claro que para la cantidad de registro --> que tiene ese señor, pues eso --> demora más ejecutándolo sobre un sistema --> evidata. --> Pero en este caso tenemos un cluster --> evidata muy, muy pequeño con un solo data no. --> para lo que queremos --> hacer, pues mucho. --> Pase por favor --> entonces las primeras tres columnas --> de acá, las pasa --> a la salida. --> El season y el clock lo toma de las --> variables que definió. --> Y el área y --> la reducción, la suelta de este lado. --> Ahí faltaría el nombre Eva --> o nuestra para ver. --> Y suelta, ahí está, listo. Perfecto.