Hive query with JOIN, GROUP BY and SUM does not return results

On Hive 0.11, and lower versions, if we set:

set hive.optimize.skewjoin=true; 
set hive.auto.convert.join=false;

A query with JOIN, GROUP BY and SUM does not return results.

But if we make the query a little more simple, using JOIN but not GROUP and SUM functions, We will GET RESULTS.

I have found that there are bugs reported recently:

https://issues.apache.org/jira/browse/HIVE-5888

and

https://issues.apache.org/jira/browse/HIVE-6041

This bug is related also with the previous one (https://issues.apache.org/jira/browse/HIVE-6520), already reported:

If we set:

set hive.optimize.skewjoin=true; 
set hive.auto.convert.join=true;

We will no have any output.

The reason is that the skew join in hive relies on a reduce phase to save skewed keys on local disk, but hive.auto.convert.join=true turns a mapreduce task into a mapjoin task in some scenarios.

As a result, there is no skewed keys generated by the mapjoin and the result is empty.

If you set hive.auto.convert.join=false to disable the auto conversion of a mapjoin, the performance is very bad because the reduce phase takes a very long time to process the skew keys.

 

This is expected to be resolved on version hive-0.13.0.

Publicado en Uncategorized | Etiquetado , | Deja un comentario

check system variables or environment variables on Hive

On Hive we can check values for system variables or environment variables with the command:

hive> set;

if we need to ask for a specific variable value, we can run:

hive> set hive.security.authorization.enabled; 
hive.security.authorization.enabled=false

More information:

https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration

Publicado en Uncategorized | Etiquetado , | Deja un comentario

Actualizar OpenSSL / Update to 1.0.1g

Actualizar OpenSSL a la utilma version en tres pasos:

1) compilamos e instalamos la ultima version de openssl version:
$ sudo curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install_sw

2) Reemplazamos la vieja libreria openssl por la nueva con un link simbolico
$ sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`

3) Probamos:

$ openssl version

Deberia devolver:

OpenSSL 1.0.1g

 

Publicado en Uncategorized | Etiquetado , | 2 comentarios

Stress Test: Bees With Machine Guns !

Hace unos días probé una herramienta sumamente interesante: Bees With Machine Guns !!

Esta es una herramienta para realizar pruebas de stress sobre los servicios Load Balancer y Autoscaling de Amazon AWS.

Luego de armar nuestra estructura de servidores, podremos generar una prueba de carga con las abejas. De esta manera, veremos actuar al servicio de Autoscaling creando nuevas instancias de nuestro servidor o decrementando las instancias si la carga disminuye.

Instalación:

$ git clone git://github.com/newsapps/beeswithmachineguns.git
$ easy_install beeswithmachineguns

Creamos archivo de Credenciales:

[Credentials]
aws_access_key_id = <your access key>
aws_secret_access_key = <your secret key>

Estas credenciales deben colocarse en el archivo .boto en nuestro home. Conteniendo la key y secret key que utilicemos en nuestra cuenta de Amazon AWS. Estas credenciales serán utilizadas por la aplicacion para crear las abejas, que no son otra cosa que instancias EC2.

Utilización:

bees up -s 4 -g public-sg -k hvivani-virg-1
bees attack -n 10000 -c 250 -u http://loadbalancer.hvivani.com/
bees down

La primera linea crea 4 abejas (instancias ec2) utilizando las credenciales del archivo .boto junto con los permisos seteados en ‘public-sg’ (Security Group definido en la región) y la key ‘hvivani-virg-1′ (llave privada utilizada para conectar a cualquier instancia en la región).

La segunda linea llama a las 4 abejas a atacar el sitio http://loadbalancer.hvivani.com/ con 10000 solicitudes de a 250 cada vez.

La ultima linea elimina las abejas (termina las instancias de ataque).

A jugar …

Publicado en Uncategorized | Etiquetado , , | Deja un comentario

Running on Molteno Reservoir – Cape Town

 

Registro Runkeeper: http://runkeeper.com/user/hvivani/activity/304377030

 

Publicado en Running & Cycling | Deja un comentario

Ejecución de comandos remotos con sudo / Execute remote commands with sudo

Hace unos días necesitaba ejecutar un par de comandos en un servidor remoto, para lo cuál tenemos una sintáxis como esta:

$ ssh -p66 hvivani@server "cd /home/hvivani/backup/; ls -l"

Vean que separamos los comandos que queremos ejecutar con “;”

Ahora bien, que pasa si necesito ejecutar algo así ?

$ ssh -p66 hvivani@server "cd /etc;sudo vi sudoers"

Obtendremos el siguiente error:

hvivani@server's password: 
sudo: sorry, you must have a tty to run sudo

Para ejecutar comandos remotos con sudo por ssh, deberemos utilizar el parámetro “-t” que creará una pseudo terminal tty para permitirnos la ejecución:

$ ssh -t -p66 hvivani@server "cd /etc;sudo vi sudoers"
Publicado en Uncategorized | Etiquetado , | Deja un comentario

Mi historia con Redhat/Fedora – My history with Redhat/Fedora

Versión en Español

Aquí un extracto de un mail donde detallaba mi historia con Fedora para la gente de Gulbac:

Fedora es una distro que tiene gente que la ama y gente que la odia porque allá por el 2003 Redhat decidió dividir las aguas entre lo comercial y lo comunitario.
Lamentablemente, la manera en que lo manejó no fué la mas prolija (al menos así se vió desde nuestro país, y desde mi punto de vista) y muchos se fueron a Debian u otras distros.
Yo venía trabajando desde los 90 con Redhat, inclusive instalé, en el 99, una red dual completa en el Colegio Peralta Ramos de Mar del Plata, porque iban a dar clases a los chicos con Redhat 7.

En el 2003, comencé con un desarrollo de Punto de Venta bajo linux con impresoras fiscales para la empresa donde trabajo ahora, y de golpe Redhat anuncia que no va a haber un Redhat 10 y que hay que tomar una decisión importante: O pagarle a Redhat por una versión estable con soporte, o instalar Fedora que es soportada por la comunidad.
Como ya había arrancado con el desarrollo, y como siempre, con cero presupuesto, seguí con Fedora. De hecho los primeros puntos de venta bajo linux que pusimos en la calle corrían con Fedora Core 1 y 2.
Pero, en ese momento, el riesgo fué muy alto. Si el proyecto moría, moría yo también… no se si me entienden.

Esos puntos de venta fueron premiados en el 2004 por su grado de innovación al ser uno de los primeros desarrollos privados para impresores fiscales bajo Linux.

La realidad hoy es que la comunidad Fedora desarrolla y luego redhat comercializa las versiones estables. Esto ha servido para mantener viva la distro, ya que la faz comercial es como el caballo que tira del carruaje. Hay un mercado de empresas que consumen Redhat, y por otro lado estamos los que remamos sin presupuesto (hablando de empresas) y usamos Fedora y/o CentOS.

Hoy en día sigo trabajando sobre la misma distro (hasta el 2010 tuve un servidor corriendo con Fedora Core 2 sin inconvenientes) mas que nada por que la conozco y le conozco las mañas, y he tenido la oportunidad de conocer la comunidad, que le ha dado mucho al software libre. La verdad es que no dejo de sorprenderme de como estos engranajes siguen haciendo girar este mundo contra viento y marea.
Por otro lado, no dejo de admirar y respetar al resto de las distros, ya que se que en el mundo Linux se trabaja poniendo huevos. No se hace nada sin esfuerzo o solo con labia.

Salud ! 


Here is an extract from an email detailing my story with Fedora for Gulbac’s people :

Fedora is a distro that has people who love it and people who hate it because back in 2003 Redhat decided to divide the waters between commercial and community versions.
Unfortunately , the way they handled it was not the most verbose (at least that was how we seen it from our country and from my point of view ) and many changed to Debian or other distros.
I had been working with Redhat since 90’s, in fact, at 99, I installed a full dual network at Peralta Ramos College of Mar del Plata, because they were going to teach the kids with Redhat 7.

In 2003 , I started with the development of POS under linux with fiscal printers for the company where I work now , and suddenly Redhat announces that there will be not a Redhat 10 and you have to make an important decision : Pay to Redhat for a stable supported version , or install Fedora which is supported by the community.
Since I had already started to develop, and as always, with zero budget, continued with Fedora. In fact the first outlets under linux we put on the streets ran with Fedora Core 1 and 2.
But , at that time, was very high risk . If the project died, I died too … Do I explain myself ?.

Those outlets were awarded in 2004 by its degree of innovation to be one of the first private development for fiscal printers under Linux.

The reality today is that the Fedora community develops and then Redhat commercializes the stable versions . This has served to keep alive the distro , as the commercial aspect is like the horse pulling the carriage. There is a market for companies who use Redhat, and, on the other hand, are those who paddled without budget ( talking about companies ) and use Fedora and / or CentOS .

Today I still work on the same distro (until 2010 had a server running Fedora Core 2 smoothly) just because I know it and I know the tricks it has, and have had the opportunity to meet the community, that has given much to free software. The truth is that I am inspired by how these gears are turning the world against all odds .
On the other hand, I keep my admiration and respect for the other distros , because I know that in the Linux world, everything is made with balls. Nothing is done without effort or only with quackery .

Cheers !

Publicado en Uncategorized | Etiquetado , , | Deja un comentario