Mi receta para aprobar la certificación CCA Spark and Hadoop Developer

Hola de nuevo mi gente, como ya es costumbre tenía tiempo sin escribir, de hecho la última vez fue para anunciarles que había aprobado la certificación de solution architect de AWS y comentarles mi receta para aprobarla, bueno en esta ocasión les traigo mi receta para aprobar la certificación CCA Spark and Hadoop Developer (CCA175) de Cloudera. Bueno primero comentarles que esta certificación me resulto fascinante, por distintas cosas, la primera fue que tenía un completo desconocimiento sobre la forma como sería el examen, la segunda es que es totalmente práctica y el contenido dependiendo de como se mire puede ser amplio o no, de acuerdo a cuanto se desee profundizar.

Algunos aspectos del examen: tiene una duración de 2 horas, se aprueba con el 70% y pueden ser entre 8 y 12 preguntas (en mi caso fueron 9). El examen se lleva a cabo de forma online a través de un máquina virtual a la que accederás desde el navegador (chrome), de tu ordenador y será estrictamente necesario tener una webcam mediante la cual un vigilante (proctor) estará atento a que no hagas trampa, también tendrás a disposición una serie de enlaces de documentación referente a las herramientas que puedes utilizar en el examen, como pueden ser la documentación oficial de sqoop, spark, hive, cloudera, por mencionar algunas. En el examen no te veras obligado a utilizar una herramienta en especial, es decir, lo que importa es el resultado final, si este lo consigues con Pig, Hive, Spark, impala, Flume, pues perfecto, lo que esta claro es que hay herramientas que terminan siendo más adecuadas que otras dependiendo del caso.

Dada mi experiencia les sugiero estudiar los siguientes tópicos:

  • Importar y exportar usando sqoop y en ambos casos considerar el uso y cambio de delimitadores de campos así como de lineas. En el caso particular de la importación tener en cuenta compresión (por ejemplo Gzip) y formatos de archivo (texto, avro, parquet), a su vez conocer como y cuando utilizar los argumentos, -m, -split-by, -where, -query, -columns, -warehouse-dir, -target-dir, por mencionar algunos.
  • Crear una tabla en Hive cuya fuente de datos sean ficheros de texto, o que los datos estén serializados en Parquet, ORC o AVRO (tener en cuenta evolución del schema) y que a su vez estén comprimidos. CTAS (Create Table as Select) y exportar desde hive un fichero tanto a HDFS como al FileSystem producto de una consulta.
  • Haciendo uso de Spark hacer Lectura de datos en distintos formatos (texto, json, orc, parquet o avro) e incluso comprimidos y a partir de estos llevar a cabo una transformación de los datos y exportar el resultado a uno de los posibles formatos mencionados anteriormente.
  • La Máquina virtual trae consigo eclipse y sublime, les sugiero hacer scripts en sublime y guardarlos para poder volver a ellos en caso de ser necesario. En el caso de spark al yo tener más experiencia con scala lo que hice fue lanzar los scripts con la spark-shell con el siguiente comando spark-shell -i script.scala  o sino desde la consola usando :load script.scala.
  • En el caso de spark al ser la versión 1.6 preferí trabajar con dataframes a tener que hacer la operativa con RDDs.
  • Hacer muchos ejercicios, prácticos. En mi caso creé un repositorio en Github donde hice unos cuantos ejercicios, unos inventados por mí y otros del sitio web itversity.
  • Es importante hacer una buena gestión del tiempo, sugiero tomar un par de minutos para leer las preguntas e ir a por las más sencillas al comenzar y si en algún momento te bloqueas, pues pasar a la siguiente de inmediato, de igual forma mientras se esté ejecutando una operación (puede que tarde 1 min + o -) aprovechar para al menos leer el enunciado siguiente.
  • Muy importante mucho cuidado con los datos fuentes y de ser posible respaldarlos.
  • La consola de la máquina virtual tiene un tamaño de fuente algo pequeño por lo que no es mala idea hacer un zoom in.

Yo he de confesar que de las 9 preguntas que me salieron solo respondí 8, porque no me dio tiempo he allí la razón por la que hago hincapié en la buena gestión del tiempo. El examen no resulta difícil si has estudiado, pero al contar con solo 2 horas es necesario haber practicado antes para no perder mucho tiempo buscando en la documentación.

Por último desearles mucha suerte y reiterar mi fascinación con esta certificación, he aprendido muchísimo y el examen en sí me genero una sensación de satisfacción increíble al conseguir aprobarla, sobre todo esa buena vibra de poner en practica todo aquello practicado.