Big Data | Data Governance Initiative 

Importancia del Gobierno de Datos e implicancias

Hoy vamos a estar analizando algunos puntos donde debemos hacer foco en el Gobierno de Datos.

Es importante entender que con el volumen de datos que es generado a diario, este debe ser observado como un todo para ser administrado, mejorado y dar un mayor aprovechamiento de nuestra información, para que ella misma pueda ayudarnos a generar una percepción de calidad y poder generar confianza en la toma de decisiones y operaciones que deriven de ellas en la organización.

Cuando carecemos de un Gobierno de Datos, los datos no se integran como un todo, y ellos no tienen una visión general desde la organización, si no que queda acotada a la visión de cada departamento que actúa con ella. (Podríamos decir marketing, finanzas o sistemas).

Así mismo, podemos inferir que el Gobierno de datos toma el rol de organizar, controlar , coordinar las diferentes departamentos de la empresa, de manera interactiva que derivan en definición de Roles y Responsabilidades.

Este escenario nos permite establecer standares, políticas y procesos.

Entendiendo el mínimo concepto de que es el gobierno de datos procederemos a conocer los 5 puntos en que debemos focalizarnos para poder analizar y gobernar:

  • Social Media.
  • IoT (Internet of things).
  • Grandes volúmenes de datos transaccionales.
  • Datos Biometricos.
  • Datos Generados por la Humanidad.
2

Exadata Opatch found error changing permission during 12.1.0.2.170117 patch installation

chmod: changing permissions of ‘$ORACLE_HOME/bin/extjobO’:Operation not permitted”

Como parte de nuevas políticas que propusimos en la empresa donde nos encontramos brindando servicios, como políticas de Roadmap de Equipos de computo, bases de datos y otros sistemas, comenzamos con un trabajo de actualizacion de Oracle Database Machine X5.

A raíz de realizar el UPGRADE de Grid Infraestructure, desde 11.2.0.4 hacia 12.1.0.2 , luego de ejecutar los pasos con opatch, nos encontramos con siguiente WARNING:

 [OPSR-TIME] Backup area for restore has been cleaned up. For a complete list of files/directories
 deleted, Please refer log file.
 Composite patch 26609798 successfully applied.
 UtilSession: N-Apply done.
 --------------------------------------------------------------------------------
 The following warnings have occurred during OPatch execution:
 1) OUI-67215:
 OPatch found the word "error" in the stderr of the make command.
 Please look at this stderr. You can re-run this make command.
 Stderr output:
 chmod: changing permissions of `/u01/app/grid/12.1.0.2/bin/extjobO': Operation not permitted
 make: [iextjob] Error 1 (ignored)
 --------------------------------------------------------------------------------
 OUI-67008:OPatch Session completed with warnings.
 Finishing UtilSession at Wed Nov 29 14:53:02 ART 2017
 Log file location: /u01/app/grid/12.1.0.2/cfgtoollogs/opatch/opatch2017-11-29_14-38-07PM_1.log

Dont Worry, Be happy

Es un bug de Oracle y en la nota de Support Doc ID (2265726.1) dice que debemos ignorarlo.

Debo decir que de forma previa ejecute el rollback del patch y lo aplique nuevamente y el problema desaparecio.

opatch rollback -id <PATCH_ID>
opatch apply

Voila !

elasticsearch[13241]: [warning] /etc/init.d/elasticsearch: No java runtime was found

Decidimos realizar la instalacion de ElasticSearch para poder realizar el indexado de tablas enormes dentro de nuestro hive.

La instalacion fue transparente, pero luego de levantar el servicio nos mostraba el siguiente error cuando pediamos un  status de nuestro servicio.

Corroboramos que las variables estuvieran bien y por sobre todo este instalado java.

Error que aparecio.

root@srvhadoopt3:~# service elasticsearch status
● elasticsearch.service - LSB: Starts elasticsearch
   Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-10-12 13:37:34 ART; 6min ago
     Docs: man:systemd-sysv-generator(8)

Oct 12 13:37:33 srvhadoopt3 systemd[1]: Starting LSB: Starts elasticsearch...
Oct 12 13:37:34 srvhadoopt3 elasticsearch[13241]: [warning] /etc/init.d/elasticsearch: No java runtime was found
Oct 12 13:37:34 srvhadoopt3 systemd[1]: Started LSB: Starts elasticsearch.

Solucion

Como solucion,

Hive error: The string “–” is not permitted within comments

Error on Hive when try start the service.

Apache Hive, es una infraestructura de almacenamiento de datos construida sobre Apache Hadoop, para proporcionar la agrupación, consulta, y análisis de datos.

Podriamos decir que es el warehouse de Apache Hadoop.

Luego de hacer la configuracion posterior al despligue de Apache HIVE,  decido loguearme en el jutar el comando hive econtrandome con el siguiente error.

hadoop@srvhadoopt2:/opt/hadoop/hive$ hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hadoop/apache-hive-2.1.1-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/var/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
[Fatal Error] hive-site.xml:502:85: The string "--" is not permitted within comments.
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException; systemId: file:/opt/hadoop/apache-hive-2.1.1-bin/conf/hive-site.xml; lineNumber: 502; columnNumber: 85; The string "--" is not permitted within comments.
        at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2696)
        at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2553)
        at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2426)
        at org.apache.hadoop.conf.Configuration.get(Configuration.java:1240)
        at org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java:3558)
        at org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java:3622)
        at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:3709)
        at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:3652)
        at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:82)
        at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:66)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:657)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:234)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
Caused by: org.xml.sax.SAXParseException; systemId: file:/opt/hadoop/apache-hive-2.1.1-bin/conf/hive-site.xml; lineNumber: 502; columnNumber: 85; The string "--" is not permitted within comments.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150)
        at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2531)
        at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2519)
        at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2587)
        ... 17 more

Analizando el problema

Me posiciono el e $HOME que designe

Dataflow | How to Install and configure NIFI

Que es y para que ?

Nifi es una herramienta web que podemos utilizar para realizar la ingesta de datos.

Nos permite escuchar, formatear y hacer un primer filtro de los mensajes (datos) recibidos mediante varios de sus procesadores embebidos.

Asi mismo procesar y distribuir datos.

Descarga de Packages y chequeos

Descargamos los packages desde :

https://nifi.apache.org/

Alli enconraremos diferenetes versiones de producto.

Luego procedemos a realizar un CHECKSUM para poder verificar que es un package seguro y que no sufrio alteraciones en el camino.

[amercado.nbfor101200] ➤ md5sum nifi-1.4.0-bin.tar.gz
28c5511073452cf59e9ec1b278a1a7e4 nifi-1.4.0-bin.tar.gz

Instalacion

Descomprimimos el package en el path

How to Install Kibana with Debian Packages

Luego de haber realizado mi instalación de Elastic Search, decidí montar un plugin llamado  Kibana, para poder visualizar y explorar datos que se encuentran indexados en  ElasticSearch.

Podemos decir también , que como en el pasado con otros productos open source aparecieron siglas como LAMP (Linux/Apache/MySQL/PHP) para esta familia de elastic, contenemos el stack ELK:

  • Elasticsearch
  • Logstash
  • Kibana

En mi caso, decidi comenzar la instalación de forma manual , con pkgs de Debian en mi Ubuntu server 16.

Descargamos los paquetes del repositorio oficial:

hadoop@srvhadoopt3:$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-amd64.deb
--2017-10-12 16:59:33--  https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-amd64.deb
Resolving proxgue.garba.com.ar (proxgue.garba.com.ar)... 10.0.60.3
Connecting to proxgue.garba.com.ar (proxgue.garba.com.ar)|10.0.60.3|:8080... connected.
Proxy request sent, awaiting response... 200 OK
Length: 52533368 (50M) [application/octet-stream]
Saving to: ‘kibana-5.6.3-amd64.deb’

kibana-5.6.3-amd64.deb                          100%[====================================================================================================>]  50.10M  1.34MB/s    in 65s

2017-10-12 17:00:40 (784 KB/s) - ‘kibana-5.6.3-amd64.deb’ saved [52533368/52533368]

Verifico que el paquete sea seguro y que contiene el hash correspondiente

hadoop@srvhadoopt3:$ sha1sum kibana-5.6.3-amd64.deb
12821507ace7c49eea5011e360f8353007f0ab90  kibana-5.6.3-amd64.deb

Bien, una vez descargado , procedemos con la instalacion del package:

Failed to resolve config path [“/usr/share/elasticsearch/config/elasticsearch.yml”]

Al finalizar la instalación de elasticsearch decidí instalar los plugins:

  • mobz/elasticsearch-head
  • royrusso/elasticsearch-HQ

Pero por alguna razon, el comando no se ejecutaba correctamente y me arrojaba el siguiente error:

root@srvhadoopt3:~# /usr/share/elasticsearch/bin/plugin install -DproxyPort=8080 -DproxyHost=proxgue.garba.com.ar royrusso/elasticsearch-HQ
Error: Could not find or load main class "-DproxyPort=8080"
root@srvhadoopt3:~# /usr/share/elasticsearch/bin/plugin install DproxyPort=8080 DproxyHost=proxgue.garba.com.ar royrusso/elasticsearch-HQ
Exception in thread "main" org.elasticsearch.env.FailedToResolveConfigException: Failed to resolve config path ["/usr/share/elasticsearch/config/elasticsearch.yml"], tried file path ["/usr/share/elasticsearch/config/elasticsearch.yml"], path file ["/usr/share/elasticsearch/config"/"/usr/share/elasticsearch/config/elasticsearch.yml"], and classpath
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:291)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:95)
at org.elasticsearch.plugins.PluginManager.main(PluginManager.java:396)

Análisis

Investigando y analizando la salida de la ejecución del comando, con bash -x por delante, mas los concejos de gente de la comunidad, decidimos cambiar en el script el comando exec y reemplazarlo con el comando echo.

Ese cambio,  me retorno la sentencia para ser ejecutada.

Resolución

Editamos el archivo de configuración /usr/share/elasticsearch/bin/plugin, y vamos al