Etiqueta: dba

Desarrollo de aplicación de reconocimiento de rostros y emociones

Este es uno de los desarrollos hechos por nuestro equipo, tiene como funcionalidad ser un demo de la capacidad de nuestra aplicación para reconocer edad, genero, emoción, etc. de un grupo de personas, con el propósito de implementarlo en kioskos interactivos.

Esta desarrollado en .NET, utilizando procesamiento de imágenes en la nube de Azure, almacenando las bases de datos utilizando la tecnología de Big Data.

[vc_video link=»https://www.youtube.com/watch?v=VbSvRIw1Hks» ratio=»16-9″]

Instalar Hadoop 2.6 en Linux (un solo nodo)

La versión de Hadoop 2.6 mejoro mucho respecto a las versiones anteriores, esta versión mejoro dramáticamente el HDFS y el MapReduce. esta guía esta hecha para ayudarte a instalar Hadoop 2.6 en CenOS/RHEL 7/6/5 y Oracle Linux.

Si estas aqui, es por que tienes interés en mejorar tus conocimientos de BigData y leíste en algún lado que Hadoop es el primer paso y en ves de buscar cursos buscas guias para poder practicar por tu propia cuenta, Bien hecho, es la decision correcta

Este articulo no incluye la instalación general del sistema operativo o del Java, solo es la configuración mas básica para poder iniciar.

hadoop-logo

Para llevar a cabo esta guía, es necesario que tengas una instalación ya terminada de tu sistema operativo Linux, por bien realizada me refiero a que ya esta instalada con todas las dependencias necesarias, Java 1.8 instalado, la IP asignada como estática, tu ip estática declarada en /etc/hosts, firewall desactivado, SELINUX desactivado y si estas en una maquina virtual, el virtual guest addons completamente instalados sin ningún error, de no tenerlo todo o no estar seguro, haré otros posts al respecto y los vinculare en las siguientes ligas:

Instalando Java 8 en CenOS/RHEL 7/6/5 y Oracle Linux

Instalando una maquina virtual correctamente con CentOS/RHEL 7/6/5 y Oracle Linux

Solucionar problema de instalación de virtual guest addons en VMWare con CenOS/RHEL 7/6/5 y Oracle Linux

Paso 1: Instalación de JAVA

Java es el principal requerimiento para ejecutar hadoop en cualquier sistema, asi que asegúrate que lo tienes correctamente instalado con el comando java -version

# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

de no aparecer de esta manera, necesitas ir a la liga de instalacion que comente mas arriba.

 

Paso 2: crear el usuario de Hadoop

Recomiendo crear un usuario normal (no root) para que funcione Hadoop. asi que crea una cuenta de sistema con los siguientes comandos

# adduser hadoop
# passwd hadoop

Una ves creado el usuario, switcheamos al usuario hadoop, para continuar trabajando, con el comando

# su - hadoop

después de crear la cuenta, le asignas una contraseña de tu elección, al terminar de hacer esto, es necesario que crees una llave ssh, para permitir que el servidor se pueda conectar consigo mismo a través de una sesión de ssh

# su - hadoop
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

al hacer esto, verificamos que se hayan creado adecuadamente las llaves anteriores, si es la primera ves que escribimos este comando, nos hara una pregunta el sistema operativo, le escribimos YES

$ ssh localhost
$ exit

(nota: si le pusimos un nombre a nuestro servidor, por decir TESTPROD o algo asi, reemplazamos la palabra localhost, por ej. ssh TESTPROD)

Paso 3: Descargamos Hadoop 2.6.0

Ahora descargamos Hadoop de la pagina de apache, si esta muy lento, podemos probar algun mirror que sea mas rápido en el momento, en esta secuencia de comandos, lo descargamos desde la linea de comando, luego lo descomprimimos con el comando tar y luego se genera una carpeta llamada hadoop-2.6.0 esa la renombramos a simplemente hadoop

$ cd ~
$ wget http://apache.claz.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
$ tar xzf hadoop-2.6.0.tar.gz
$ mv hadoop-2.6.0 hadoop

Paso 4: configurar el modo pseudo-distribuido en Hadoop

4.1  Configurar y setear las variables de ambiente

para hacer esto, nos vamos al directorio base de nuestro usuario hadoop, (por lo general es /home/hadoop) despues editamos el archivo .bashr

bash profile configurado para Hadoop
El archivo .bash_profile debe de quedar algo asi

c o .bash_profile o .profile esto depende de la distribución que tengamos instalada, para editar los archivos usamos nano o vi , segun los gustos de cada quien, al final del archivo, agregamos:

export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

después de eso, aplicamos los cambios en el perfil de nuestro usuario activo, eso se puede hacer, saliendo y volviendo a entrar al usuario hadoop o con el comando source

source .bashrc

Ahora editamos el archivo $HADOOP_HOME/hadoop/hadoop-env.sh y ponemos fija la variable del JAVA_HOME.

dentro del archivo anterior buscamos la linea que comience con export JAVA_HOME y la reemplazamos por:

export JAVA_HOME=/opt/jdk1.8.0_66/

donde /opt/jdk.. sea la dirección donde esta nuestra instalación de JAVA

4.2 Edita el archivo de configuración de la aplicación de Hadoop

Hadoop tiene muchos archivos de configuración diferentes, los cuales se necesitan configurar según los requerimientos de tu infraestructura, esta configuración es especifica para una implementacion de un solo nodo, primero nos cambiamos a la siguiente carpeta:

$ cd $HADOOP_HOME/etc/hadoop

dentro de esta carpeta editamos el archivo core-site.xml , donde ponemos lo siguiente (nota, el tag de configuration no debe de repetirse):

core-site

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

 

Editamos el archivo hdfs-site.xml

hdf-site

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>

Editamos mapred-site.xml

mapred-site

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

Editamos yarn-site.xml

yarn-site

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

4.3 Formateamos con Namenode

Ahora formateamos el namenode usando los siguientes comando, asegúrate donde se encuentra el directorio de almacenamiento en la salida del comando

$ hdfs namenode -format

si todo sale bien, en este comando te despliega una linea que dice Storage directory, allí es donde va a guardar tu información

Paso 5: Iniciamos el cluster de Hadoop

Ya vamos a iniciar el cluster utilizando los scripts que vienen dentro de la carpeta de hadoop, todos estos scripts se encuentran dentro del directorio sbin, necesitamos entrar allí y ejecutarlos todos de uno por uno, en este mismo orden, si marca algún error, verifica que todos los pasos anteriores se hayan hecho bien.

cd $HADOOP_HOME/sbin/

ahora ejecutamos start-dfs.sh

$ start-dfs.sh

dfs

Ahora ejecutamos start-yarn.sh

start-yarn.sh

yarn

Paso 6: accedamos a los servicios de Hadoop desde un navegador.

Los servicios de Hadoop Namenode por defecto se inician en el puerto 50070. asi que accede a tu servidor hacia ese puerto, puede ser desde dentro de la maquina física como localhost, o si estas en una maquina virtual, desde tu maquina Host poniendo la ip del servidor en ves de localhost

http://localhost:50070/

50070

 

Ahora accedamos al puerto 8088 para obtener información sobre el cluster y todas las aplicaciones

http://localhost:8088/

8088

 

Accedamos al puerto 50090 para obtener información sobre el namenode secundario

 

http://localhost:50090/

50090

 

Accedamos al puerto 50075 para obtener datos del datanode principal

http://localhost:50075/

50075

 

Paso 7: probemos Hadoop como nodo sencillo

7.1 Creemos los directorios HDFS necesarios para los siguientes comando

entramos a la carpeta $HADOOP_HOME/bin/ , desde aqui ejecutamos los siguientes comando, para crear las carpetas dentro del storage de HADOOP, esto se hace con el comando hdfs

$ ./hdfs dfs -mkdir /user
$ ./hdfs dfs -mkdir /user/hadoop

7.2 ahora a manera de ejemplo copiamos algún conjunto de archivos de texto dentro de las carpetas del storage HDFS
que acabamos de crear, para cuestiones de ejemplo, copiare los logs del servidor web, pero puedes meter los archivos que quieras, recuerda que estos archivos son los que serán o pueden ser analizados por medio del big data, así que lo ideal seria un compendio de muchísima información en texto plano.

$ hdfs dfs -put /var/log/httpd logs

7.3 ahora entramos con el navegador y ver el filesystem distribuido con la siguiente liga:

http://localhost:50070/explorer.html#/user/hadoop/logs

explora

 

7.4 si quisiéramos hacer lo opuesto y extraer datos del HDFS es con el comando

$ ./hdfs dfs -get logs /tmp/logs
$ ls -l /tmp/logs/

 

LISTO!, si acabaste exitosamente esta guía y no te quedaron claros algunos términos, necesitas leer nuestra pagina de explicación de big data, haciendo click aquí

 

Si todo quedo entendido, sigue la parte interesante y hacer funcionar el big data, puedes seguir este tutorial para utilizar el MapReduce y el WordCount

hadoop

El Oracle Enterprise Manager no inicia al terminar la instalación en Oracle Linux 6.5

El Oracle Enterprise Manager no inicia al terminar la instalación
El Oracle Enterprise Manager no inicia al terminar la instalación

Hace poco al instalar Oracle 11g en Oracle Linux 6.5 me tope con que al finalizar la instalación, no inicia el Enterprise Manager por errores del catalogo del enterprise manager dentro de la BD, a base de muchas pruebas y errores, ya di con el orden correcto para borrar el catalogo y volverlo a crear.

 

El Oracle Enterprise Manager no inicia al terminar la instalación

explicación: el Enterprise Manager es una consola web que te permite administrar completamente la instancia de base de datos e incluso administrar el ambiente RAC, el Enterprise Manager se inicia mediante su propio servidor web, el servicio se llama «emagent» y para prender y apagar el servicio se utiliza «emctl».

 

Para que el «emagent» pueda inicializar, necesita conectarse a la base de datos que se va a vigilar, para hacer esto ocupa su propio usuario (SYSMAN por default) y una serie de esquemas y tablas, a estas se les llama «repositorios», al instalar el Oracle 11g en Oracle Linux 6.5 el Enterprise Manager no inicia, esto viene en la nota de metalink 470246.1 y el bug 6111734.

 

Para solucionarlo, primero se elimina manualmente el usuario del repositorio y otras tablas, en este orden (con un usuario con permisos de sysdba):

Read more

Diferencia entre una corrupción lógica contra una corrupción física en Oracle

corrupción lógica contra una corrupción física en Oracle

Cuando hablamos de corrupción lógica, existen muchas fallas que se pueden definir como los siguientes tipos:

Modificación accidental o incorrecta de los datos de la aplicación, causada por un usuario o la misma aplicación.

En este escenario, por la falla o el error de un usuario o un aplicativo puede resultar en un bug, esto normalmente ocurre por cambios de información dentro del a base de datos como valores erróneos, un ejemplo podría ser cuando un DBA realiza un update pero se olvida de formular correctamente el query y en ves de solo modificar un solo row, accidentalmente modifica (y le da commit) a cientos de campos.

 

La corrupción de bloques vienen en dos tipos diferentes:

Corrupción física (media corrupt blocks): son bloques que obviamente tienen un daño en el disco duro físico. Cuando Oracle detecta una inconsistencia entre el CSN (Commit Secuence Number) en el encabezado (header) del bloque y el pie del bloque (footer) o en la estructura del bloque no esta presente o esta dañado, si esto ocurre Oracle muestra un error «ORA-01578: ORACLE data block corrupted» el intento de lectura fallara y lo escribe en el alert_log y en el trace_file, las corrupciones físicas son el resultado de problemas de infraestructura y esto puede presentarse por una gran variedad de razones. Las mas comunes son corrupciones del cache de los arreglos del storage, firmware del arreglo, bugs del filesystem, fallas de batería de la controladora de discos, fallas eléctricas, entre cientos de motivos mas, las corrupciones pueden ser reparadas usando el Oracle Recovery Manager, con un comando llamado blockrecover.

 

Las corrupciones de bloque lógicas: son bloques que tanto el header como el footer del CSN se encuentran en buen estado, pero tienen otra tipo de inconsistencia interna, por ejemplo cuando la estructura del header se encuentra asociado con un campo en el bloque, pero es diferente al numero del bloque, otro ejemplo es si el tamaño del bloque difiere de lo que dice en el header, al ocurrir esto puede lanzar el error ORA-00600, que es el error mas temido de los DBA’s esta excepción se escribirá en el alert y en el trace file. al igual que la corrupción física esto puede deberse a una enorme cantidad de causas diferentes, solo que tiende a ser una falla en el software de Oracle como un bug o corrupción de cache.

Regresar una tabla en el tiempo en Oracle con Flashback

volvereneltiempoRegresar una tabla en el tiempo en Oracle con Flashback.

Teniendo un tiempo sin actualizar porque he tenido mucho trabajo, dejare un aporte que espero que pueda serle de utilidad por lo menos a uno aqui hablare de como Regresar una tabla en el tiempo en Oracle con Flashback.

 

La función de UNDO de Oracle es algo que cualquier DBA debería de saber, de todas maneras lo explicare aquí por si alguien tiene alguna duda. En caso que dañemos o queramos recuperar una tabla modificada o eliminada siempre podemos recurrir a la función de «Flashback Table» con esto podemos desde hacer selects a una tabla de a como se encontraba en algún punto en el pasado como recuperarla en la misma tabla u otra, por si quisiéramos comparar datos.

 

Para activar el UNDO en nuestra base de datos, existen 2 variables que tienen que estar en el SPFILE o PFILE, que son UNDO_MANAGEMENT que es el que define si está activo el UNDO y la variable UNDO_RETENTION, que marca en segundos cuanto tiempo podemos recuperar nuestras tablas, a mayor cantidad de UNDO_RETENTION mayor tiene que ser el tablespace de UNDO.

 

Alter system set UNDO_MANAGEMENT=AUTO;
Alter system set UNDO_RETENTION=86400;

// 86,400 segundos equivalen a 1,440 minutos o 24 horas en base a esto puedes calcular la retención.

 

Si tenemos la base de datos con una instancia dinámica (SPFILE) podemos modificar los anteriores valores de la siguiente manera:

Para hacer un SELECT a una tabla de cómo se encontraba un día antes de estos momentos, se hace de la siguiente manera («usuario» es el nombre de usuario dueño de la tabla):

select * from usuario.tabla1 AS OF TIMESTAMP SYSDATE – 1;

Así de sencillo.

 

Si tenemos el undo para varios días y quiero hacer el select para una fecha y hora en específico, se hace de la siguiente manera:

select * FROM usuario.tabla1 AS OF TIMESTAMP TO_TIMESTAMP(‘2013-12-04 22:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);
// Con el anterior query hacemos que nos regrese la tabla a como estaba el «4 de diciembre del 2013»

 

Si quisiéramos crear una tabla que sea igual a otra tabla pero en una fecha anterior, se hace casi igual:
create table usuario.tabla_antes as select * FROM usuario.tabla1 AS OF TIMESTAMP TO_TIMESTAMP(‘2013-12-04 22:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);

 

Si queremos crear una vista dinámica que nos muestre como estaba una tabla hace una hora (de forma dinámica) es así:
CREATE VIEW usuario.haceunahora AS SELECT * FROM usuario.tabla AS OF TIMESTAMP (SYSTIMESTAMP – INTERVAL ’60’ MINUTE);

 

Esto es de una gran utilidad para los DBA que están empezando.

 

Si al hacer estas tablas muestra el error
ORA-01555 Snapshot Too Old
Esto significa que la tabla no se encuentra dentro de la retención del UNDO, esto puede ser por el tiempo configurado o por falta de espacio en el UNDO

 

Configurar replicacion en MySQL

Instalacion de la replicacion de MySQL en ambiente maestro-esclavo para alta disponibilidad

Crear instancia de DataGuard

Nota: la instalacion de Oracle RDBMS se instala en la BD primaria y Standby, en este caso en la standby solo tiene la instalacion. …

Desarrollo de aplicación de reconocimiento de rostros y emociones

Este es uno de los desarrollos hechos por nuestro equipo, tiene como funcionalidad ser un demo de la capacidad de nuestra …