Pentaho HA

Hola a todos,

Después de mucho tiempo estamos de vuelta y con ganas. Hoy vamos a montar una arquitectura de alta disponibilidad o HA con pentaho.

Alguna vez en algun proyecto os han pedido que pentaho o alguna aplicación  tenga alta disponibilidad , pero ¿que es alta disponibilidad?.

La alta disponibilidad y la tolerancia a errores no son lo mismo. Una definición de la alta disponibilidad es importante porque la tolerancia a errores se usa con frecuencia como sinónimo para describir cómo se implementa la alta disponibilidad.

Las soluciones de alta disponibilidad son de ámbito amplio y proporcionan un conjunto de recursos compartidos en todo el sistema que se integran para proporcionar los servicios necesarios predefinidos. La solución usa diferentes combinaciones de hardware y software estándar de la industria para minimizar el tiempo de inactividad y restaurar los servicios cuando el sistema o parte del sistema falla.

Una solución de tolerancia a errores se centra en el hardware y usa hardware especializado para detectar errores y conmutar de forma instantánea a un componente de hardware redundante. Este componente puede ser un procesador, una tarjeta de memoria, un sistema de alimentación, un subsistema E/S o un subsistema de almacenamiento. El conmutador a un componente redundante proporciona un alto nivel de servicio.

Cluster Pentaho

Aquí explicaremos como hacer para que pentaho tenga la posibilidad de ser un cluster y que cuando un de los frontales se pare , caiga o simplemente esta al 100% otro host ocupe su lugar sin que el usuario se de cuente.

Vamos a partir de tener ya instalados y configurados pentaho 5 en los dos host  hacia mysql  ok.

  • Jackrabbit Journal Configuration and Quartz

En esta direcciòn vamos a editar el fichero con vi por ejemplo

vi ../bi-server/Pentaho-solutions/system/jackrabbit/repository.xml

Y en ambos host buscamos el tag cluster y nos sale algo así:

  <Cluster id=”node1″>
<Journal class=”org.apache.jackrabbit.core.journal.MemoryJournal”/>
</Cluster>

Lo que hacemos es cambiar lo por esto

<Cluster id=”Unique_ID “>
<Journal class=”org.apache.jackrabbit.core.journal.DatabaseJournal”>
<param name=”revision” value=”${rep.home}/revision.log”/>
<param name=”url” value=”jdbc:mysql://HOSTNAME:PORT/jackrabbit”/>
<param name=”driver” value=”com.mysql.jdbc.Driver”/>
<param name=”user” value=”jcr_user”/>
<param name=”password” value=”password”/>
<param name=”schema” value=”mysql”/>
<param name=”databaseType” value=”mysql”/>
<param name=”janitorEnabled”value=”true”/>
<param name=”janitorSleep” value=”86400″/>
<param name=”janitorFirstRunHourOfDay” value=”3″/>
</Journal>
</Cluster>

Después lo que tenemos que hacer es cambiar la configuración de Quartz vamos al fichero de configuración y cambiamos estas propiedades:

../bi-server/pentaho-solutions/system/quartz/quartz.properties

  1. org.quartz.scheduler.instanceId = AUTO # esto es para añadir las instancias de manera automática
  2. org.quartz.jobStore.isClustered = true #activamos el modo cluster por defecto esta a false.
  3. org.quartz.jobStore.clusterCheckinInterval = 20000 # esta linea hay que añadirla para tener un intervalo de tiempo y que compruebe como esta.

Bien ya tenemos montado la solución de pentaho en modo cluster , sencillo y para toda la familia. Ahora vamos a por el paso siguiente  y es que cuando un usuario entre en pentaho lo hace a través de un tomcat por defecto y que pasa si ese tomcat se cae , no queremos que el usuario se de cuenta y se tenga que volver a logear en el queremos que no se de cuenta.

Aquí como he dicho antes hay varias soluciones yo he escogido esta por que me pareció interesante , pero hay mas cartas en la baraja .

  • Guardar las sesiones

Lo primero que vamos hacer es instalar un redis .

wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz
cd redis-stable
make

Y lo arrancamos

cd RedisDirectory/src
./redis-server –port 6379

Descargamos las librerías asociadas JREDIS , Tomcat Redis Session Manager y las librerías  de apache para que funcione todo Apache Commons Pool .

he instalamos todo en lib de cada uno de los tomcats, despues vamos a el fichero context.xml e insertamos .

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost" <!-- optional: defaults to "localhost" -->
port="6379" <!-- optional: defaults to "6379" -->
database="0" <!-- optional: defaults to "0" -->
maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) --> />

Y hacemos un restart de los tomcats.

  • Balanceador de Carga

Bien ya casi terminamos ahora lo que queremos es cerrar el circulo y lo que necesitamos es que todo el trafico se divida en los aplicativos .

Lo que vamos a usar es Ngix para esta tarea. Y configuramos para que haga de balanceador de carga.

       upstream tomcatcluster  {
                server host1:port1;
server host2:port2;
         }
aquí se definen los servidores back-end (instancias de Tomcat) a través de la directiva de servidor.
En cada directiva servidor mencionamos dirección IP del servidor y número de puerto HTTP
(No AJP número de puerto).

En segundo lugar delante (apoderado) la solicitud a los servidores de servicios de fondo
Este paso es presentar la solicitud a los bloques de aguas arriba, donde definimos los servidores back-end.

location / {
             proxy_pass http://tomcatcluster;
        }
aquí os dejo un video de como hacerlo que se que puede costar un poco entender esto

 Una vez tenemos esto ya se puede decir que tenemos pentaho en HA hay un punto que se añadir a esto y que se tratara en otro momento que es hacer que el punto de acceso al repositorio de pentaho sea también HA.

Entrevista a Marta

Como podeis ver despues de hacer la entrevista a Raul Murciano @happywebcoder  (o como yo lo llamo el Obama de ROR) y Jose Carlos Cortizo @josek_net  (el yoda de las recomendaciones) ahora os presento a Marta fue mi profesora en el Máster de Software y Hardware  Avanzados en la Rey Juan Carlos y consigo  no solo engancharme a una tecnología (GPU) sino a sacarme el PHD y a emprender e investigar .

Como en las otras ocasiones  hemos hecho unas preguntas y espero que os guste y os haga pensar sobre todo nos hemos enfocado en Big Data, Cloud, etc .. .

  • Big Data ¿próxima burbuja?
    • Probablemente.
  • ¿Cómo explicarías que es Big Data en 140 caracteres?
    • Capturar, compartir, almacenar, segmentar, visualizar y analizar grandes volúmenes de datos, capturados a gran velocidad y muy heterogéneos
  • Tú eres profesor , como ves el panorama para tu alumnos ¿emigrar,emprender,sufrir?
    • Hace un par de años que les recomiendo emigrar a casi todos, pero también hay que ser realistas, depende de su formación y experiencia previas, de su conocimiento de idiomas, de su situación personal, de sus expectativas.
  • Como ves la programación masiva por GPU para el mundo empresarial?, ¿tiene cabida en él?
    • Sí, pero sin obsesionarse. Cada sector debe buscar siempre la arquitectura más adecuada para ejecutar sus aplicaciones cumpliendo con sus necesidades de rendimiento y ajustándose a su presupuesto, pero también atendiendo a la formación de sus técnicos, a su estrategia tecnológica, etc.
  • OpenSource en tu opinión hacia donde tiende que ir, según la vista de un profesor.
    • Esta sería muy larga de contestar, pero resumiendo mucho: nuevas metodologías de desarrollo, orientación a servicios y nuevos modelos de negocio (la mayor parte de ellos asociados al Cloud y a los dispositivos móviles).
  • Cloud computing futuro?.
    • Supongo que BYOD y Personal Cloud, clouds híbridos y todo lo relacionado con dar soporte a Big Data, Smart Places e Internet of Things. Atención a los proveedores de telefonía como proveedores de servicios para los usuarios de dispositivos móviles. Y la bola de cristal no me da para más.
  • Como investigadora como ves el I+D+I ? crees que la fuga de cerebros y gente cualificada puede ser un problema a la largo plazo?
    • Ya está siendo un problema, y para mi, una de las causas de la crisis actual. No tiene sentido invertir en formar a personas para que luego creen valor en otros lugares

Tips para fechas

Buenas a todos hace mucho que no escribo en el blog y es por que he estado muy ocupado cambiando de países cosas del trabajo, me he decidido empezar a escribir algunos post que os pueden ser interesantes :D.

Una de las cosas que siempre me da problemas es el tiempo saber la semana, restar días o meses ese tipo de cosas, porque es cierto que en PDI por ejemplo hay pasos para ello (la calculadora por ejemplo) pero y esto es importante me he dado cuenta que no siempre son en formatos internacionales o eso me han dicho mis jefes de proyecto.

Para ello he creado una librería con cosas que he ido haciendo y que he pillado de varios sitios con cosas esta en mi repositorio de githib es GPL se puede modificar y mejorar.

Por otro lado también os dejo aquí una formula de sql MySQL:

SELECT year(CURDATE()) anio

, month(CURDATE()) mes
, mod(month(CURDATE())+10, 12) 2mes_ant
, case when month(CURDATE()) in (1,2) then year(CURDATE())-1 else year(CURDATE()) end anio_2mes_ant
FROM DUAL

 

Entrevista Jose Carlos Cortizo

 

Después de una entrevista con un crack ahi va otra de otro crack jose carlos cortizos , es forma parte de la gente Brainsins y su famoso sistema de recomendación, le hemos preguntado sobre sistemas de recomendaciòn,Opensource, BI y como siempre nos ha dado respuestas interesantes espero que os guste. Espero opiniones para la siguiente entrevista opiniones..

  • ¿Cómo explicarías que es data mining en 140 caracteres?

El análisis (utilizando técnicas de IA, estadística, etc.) de grandes cantidades de datos para extraer conocimiento útil para alguna empresa, actividad o persona.

  • ¿Dónde esta el límite de los sistemas de recomendación (es/será “posible” un recomendador que se ajuste en un índice aceptable a mis gustos)?

Muchos sistemas de recomendación ya se ajustan muy bien a los gustos de los usuarios, aunque hay cuando se diseña un sistema de recomendación hay que tener mil variables en mente. Es decir, un sistema de recomendación no es mejor porque todo lo que me recomiende esté 100% alineado con mis gustos, ya que en ese caso no me estaría sorprendiendo ni aportando valor. Por ejemplo, si Netflix me recomienda solo películas que, debido a que todas me interesan mucho, ya las conozco, entonces las recomendaciones no me aportan valor ninguno.

Una buena recomendación tiene que tener en cuenta varios aspectos fundamentales:

* El interés para el usuario (personalización)
* Los aspectos temporales (en algunos dominios las novedades aportan más valor, en otros dominios hay que potenciar la larga cola de productos aunque tengan más tiempo en el mercado)
* La diversidad que está relacionada con la serendipia. El sistema de recomendación ha de sorprendernos (gratamente), para poder ofrecer recomendaciones de calidad. Si me he leído “Canción de Hielo y Fuego”, que me recomiendes “El Señor de los Anillos” seguramente no me aporte valor, porque ya conoceré ese libro, pero si me recomiendas “Jonathan Strange & Mr. Norrell”, un libro también fantástico pero menos conocido, me estarás aportando el gran valor de descubrir un libro que no conocía pero me puede fascinar. Hay que tener en cuenta que las recomendaciones han de servir para descubrir información relevante, y descubrir siempre supone asumir riesgos.
* El contexto en el que estoy buscando información también es muy importante. Hay que tener en cuenta que los sistemas de recomendación ofrecen recomendaciones en función de mi comportamiento en un sitio, y ese comportamiento no siempre es el mismo, ni tiene que ver con mis intereses. Por ejemplo, si estoy buscando un regalo para un amigo, toda la información que busque no tiene que ver con mis intereses, si no con los de otra persona.

En definitiva, se pueden hacer mil cosas y mejorar de mil maneras los sistemas de recomendación, pero lo que es importante es darse cuenta que la evaluación de un sistema de recomendación no ha de estar únicamente ligada a los gustos de los usuarios.

¿Qué áreas recomiendas a tus alumnos para que profundicen de cara a un futuro profesional en la ingeniería informática (y porqué)?

Para mi todo pasa por la web, ya bien sea móvil, social, o desde cualquier perspectiva. Quien no esté cerca de la web, en unos años, lo tendrá muy jodido desde la perspectiva profesional. Desde otra perspectiva, creo que a los alumnos de informática, en general, les hace falta un “baño en emprendizaje”. Es una de las salidas profesionales donde resulta más fácil montar tu propio proyecto, y donde más oportunidades de negocio existen, y curiosamente los informáticos parece que somos los que menos nos damos cuenta.

Yo ya no entiendo la informática desligada de las oportunidades de negocio, y no entiendo como en las Universidades que imparten informática, no se trata el tema de los negocios, startups, etc.

  • ¿La segunda burbuja .com para cuando?

No creo que vuelva a haber una burbuja como la que hubo en el 2000. En el último año, casi cualquier noticia relevante relacionada con alguna .com, como el IPO de Groupon, el futuro IPO de Facebook, o la compra de Instagram, hacen que todo el mundo saque el tema de la burbuja y se pregunte cuando será la siguiente. Pero ya no estamos en el 2000 y las cosas han cambiado profundamente. En el 2000 todavía no había nadie en todo el sector que siquiera hubiera demostrado tener un modelo de negocio viable y los usuarios, con suerte, se contaban por millones. Ahora estamos hablando de cientos de millones de usuarios, o en el peor de los casos, varias decenas de millones, y ya tenemos referentes de gran éxito (como Google) que han demostrado modelos de negocio más que viables.

Está claro que muchas de las empresas de las que hablamos hoy, no existirán en unos meses/años, ya que sigue siendo un sector con mucho riesgo y variabilidad, pero también hay que ver que en subsectores como el ecommerce, ya se está hablando de miles de millones de facturación al año (solo en EEUU), y que “recién llegados”, como Facebook, ya han facturado casi 4.000 millones de dólares en 2011, con casi 1.000 millones de beneficio. No creo que estos números nos digan que estamos delante de una burbuja.

  • ¿Cuanto tiempo dedicas en tu día a día a las diferentes actividades (programar, universidad, empresa, etc)?

Esta es la pregunta del millón, ya que no lo tengo realmente controlado. Pero por hacer un desglose aproximado:

* A lo que más le dedico es a temas de gestión de la empresa (organización de tareas técnicas, hablar con mis socios para reorganizar prioridades, clientes, etc.). A esto le dedico aprox unas 30 horas a la semana.
* A desarrollar le dedico menos de lo que quisiera, en torno a 15/20 horas a la semana. Y dentro de esto, desarrollos “chulos” (que no sean arreglar cosas, o hacer pequeñas adaptaciones para clientes), aproximadamente algo menos de la mitad.
* Al tema docente le dedico aproximadamente 6 horas a la semana, lo justo para las clases y organizar alguna cosa, pero como ya solo soy profesor asociado, trato de hacerlo lo mejor posible con el mínimo esfuerzo, que si no no llego.
* Y luego dedico otras 6 horas a la semana a estudiar un MBA en la EOI (es online).
* Y a “procrastinar” (donde incluyo generar contenidos en los blogs, twitter, etc.) le dedico más de lo que debiera, unas 10 horas semana, pero como soy un friki y lo disfruto, casi ni me entero.

Si fuera capaz de organizarme mejor, y tuviera menos “cambios de tercio”, seguro que optimizaría mucho los tiempos, pero bueno, poco a poco :P

  • Las 5 gemas de tu día a día: ¿que 5 tecnologías son un requerimiento para el área de data mining/recomendación? (englobando desde software hasta lenguajes)

Complicado, ya que hay que mirar mil cosas. Pero cualquier sistema de este tipo tiene que estar sustentando en una serie de principios, y podemos asociar a algunos de estos principios algunas tecnologías:

1.- Analizar adecuadamente los datos: estadística, algoritmos de aprendizaje, filtrado colaborativo, etc.
2.- Estar adaptado a las necesidades de los clientes: aquí es muy importante ofrecer datos de analítica de los resultados, así que controlar temas de analítica web es imprescindible
3.- Todas las características de un software B2B (seguridad, fiabilidad, escalabilidad, etc.): esto está relacionado con mil cosas, pero tener buenos conocimientos de administración de sistemas y configuración de los servidores que utilizas (apache, glassfish, mysql, etc.) es algo crítico

Nosotros a nivel de tecnología utilizamos: Java como lenguaje en el backend, Glassfish como servidor de aplicaciones, MySQL (sobre RDS) como Base de Datos, y para el front básicamente Zend (PHP), bastante JQuery, HighCharts para las gráficas, etc.

  • ¿Como conseguís hacer una recomendación cuando no tenéis información del usuario por que entra por primera vez?

Pues básicamente “generalizando”, y en función de qué tipo de página esté visitando, la generalización es una u otra. Por ejemplo, si llega a la home de la tienda, le podemos mostrar productos más vendidos, los últimos productos, etc. Si es en página de producto, productos similares o complementarios a los que está viendo el usuario. Desde nuestro panel de control permitimos a nuestros clientes que configuren el comportamiento de los recomendadores, ya que en cada dominio, el tipo de recomendaciones a ofrecer varía sustancialmente.

Ahora bien, en lo que hay que trabajar es en tener siempre información sobre los usuarios ;)

  • ¿Futuro de los sistemas de recomendación?

La personalización, en general, es ya una parte importante de la Web tal y como la conocemos. De hecho Facebook, Twitter, etc. han triunfado porque el elemento social les permite ofrecer una experiencia de uso personalizada para cada usuario. En sitios menos “sociales”, como las tiendas online, la personalización pasa por las recomendaciones, y otra serie de elementos, así que las tiendas que quieran cautivar a sus usuarios, necesitan instalar un sistema de este tipo.

¿Por que emprender y sabiendo que la idea es la punta de la flecha que se necesita como esqueleto además de la idea para emprender?
Yo creo que uno ha de emprender porque quiere emprender. Es decir, porque tiene ganas de sacar un proyecto adelante, de hacer crecer una idea y convertirla en algo útil para la sociedad (y si es rentable, mejor que mejor). Emprender significa riesgo, significa seguir un camino algo más complejo, y enfrentarte a mil situaciones distintas cada día, así que o estás convenido o estás jodido.

En cuanto a lo que necesitas además de la idea, yo empezaría diciendo que la idea a veces casi es lo de menos. Y espero que no se me entienda mal, las buenas ideas son muy importantes, pero si no hay un buen equipo detrás, que le eche narices al asunto, se comprometa, y desarrolle un producto que realmente sea útil a sus clientes, entonces la idea no vale nada. Además ideas buenas tenemos todos, lo realmente complicado es ejecutar las ideas. Por resumir puntos básicos:

* Un buen equipo (a ser posible perfiles complementarios, que ayuda muchísimo a tener una visión más global)
* Orientación a ventas (o resultado), ya que los técnicos solemos centrarnos en el producto, y aunque un buen producto es un requisito, todavía más es venderlo
* Pasión y ganas (para pegarse contra todo lo que vendrá en nuestra contra)

  • Tú eres profesor , como ves el panorama para tu alumnos ¿emigrar,emprender,sufrir?

Pues la cosa no es que esté muy bien, pero también ha habido momentos mucho peores. Por ejemplo, en informática ahora sigue habiendo trabajo (y mucho), mientras que después de la burbuja, no había trabajo para casi nadie en el sector, y a pesar de eso todo el mundo salió adelante. Lo que hay que hacer es ser resolutivos con la vida de uno mismo, y buscar de forma proactiva maneras de encontrar un hueco donde uno esté haciendo lo que quiere, y le permita vivir de ello. Eso se puede conseguir buscando trabajo, o montando una empresa o emigrando, dependerá de la visión de cada uno y de lo que le apetezca hacer en la vida.

Pero vamos, dentro de que las cosas no están bien, creo que tenemos la suerte de trabajar en un sector donde ahora mismo la crisis se mide en unos términos muy distintos a la de otros sectores.

  • Este es un Blog de Bi siendo tu quien me introdujo en este mundo (cosa que te doy las gracias), dinos como ves esta tecnología?

Pues como casi todas las tecnologías, el tema BI, tuvo su momento y ahora se habla bastante menos del tema. Y no es porque haya perdido importancia, si no porque los “buzzwords” se reconvierten. Ahora el tema de moda es Big Data, y hasta los que trabajan en BI prefieren hablar de Big Data. Y esto, en el fondo, es bueno, ya que el concepto sigue estando ahí y por otra parte, el que haya perdido cierto poder mediático significa que los conceptos de fondo se están integrando de forma mucho mas transversal.

Las empresas ya hablan de dashboards operativos, cuadros de mando, etc. lo que quiere decir que la necesidad la tienen, y por tanto el tema BI sigue siendo muy relevante (y lo será cada día más, según las empresas almacenen más y más información sobre su operativa).

  • OpenSource tu opinión hacia donde tiende según la vista de un profesor/emprendedor

Para empezar, mi visión global sobre el Open Source es que ha cambiado radicalmente el panorama TI C, aunque por otro lado ya se ha normalizado dentro del sector. Es decir, si hace 10 años esto parecía una batalla entre libre y propietario, ahora ves soluciones de todo tipo y no tanta polémica.

Como profesor, creo que el software libre es una herramienta perfecta para que los alumnos de carreras como informática puedan aprender de una forma práctica, contribuyendo a proyectos libres, o liberando los desarrollos que hacen. Por desgracia, todavía no tenemos esta mentalidad en España y en casi ninguna Universidad se motiva a los alumnos a que contribuyan a proyectos Open Source como una forma de aprendizaje.

Como emprendedor, creo que el Open Source ha permitido que estemos en un punto donde montar una empresa tecnológica es realmente viable. Si no fuera por los Apache, MySQL, RoR, etc. montar una startup de Internet supondría un desembolso inicial en licencias que harían inviable la mayoría de los proyectos.

No nos damos cuenta, pero a nivel económico y global, el Open Source ha contribuido de forma radical a una transformación económica a gran escala.

Camino de ida y vuelta

Buenas a todos,

hace ya mucho que no hago un post, no es por falta de ganas ni por falta de temas, sino por tiempo.Pero ahi va.

Desde hace tiempo en Pentaho hay una bicefalia , es decir, entre la CE y la EE, empieza haber cambios grandes , ¿por que?, pues la respuesta es facil Pentaho no le interesa la CE. La semana pasada hable con un par de partners de Pentaho uno Español y otro de UK  y me confirmaron las sospechas , el nuevo CEO tiene la inatencion de cerrar Pentaho y pasar a un modelo mas cerrado por eso los avances van siempre a la EE. Lo unico que falta segun me conetaron es convencer a Julian que ha sido el mas reticente a este cambio pero a la larga Pentaho sera cerrado.

Como nos va a afectar a los que usamos y desarrollamos para la CE pues la verdad no estoy muy seguro pero nos va a perjudicar, eso seguro. El abandono por parte de Pentaho de la version CE tiene su maxima expresion en PEntaho4. El cambio a mejor , todo hay que decirlo tiene cosas que son muy inetresantes y que se reclamava hace mucho tiempo como:

  1. Parametrizar vistas de manera fácil
  2. Rankis  en las vistas
  3. Roles de Mondrian
  4. etc…

pero el cambio mas fuerte no han sido esos sino el enfoque sobre el agil BI y hadoop que solo se puede ver en la version de pago.

A todo esto la verdad el CEO Quentin Gallivan , no se si va a luchar por el modelo cerrado pero el que se quede al mando de la version CE tiene que empezar a pensar en el futuro de esta linea quizá un cambio en el modelo de negocio seria lo suyo y centrase en el mundo del Bi hacia las NOSql y la nube.

Solo el tiempo lo sabre pero esto es un camino de ida y vuelta pero¿ Pentaho es Bi open Source?

Opiniones.