Wednesday, May 13, 2015

Microsoft’s Open Sourcing of ASP.NET

Under an Apache License on GitHub.
Seems that RedHat’s Truth Happens video http://www.redhat.com/v/mov/TruthHappens.mov needs another line:
First they ignore you…
Then they laugh at you…
Then they fight you…
Then you win.
And then they realize you had the right idea all along and adopt your practices for themselves.

Source:
https://jamesdixon.wordpress.com/2015/04/12/microsofts-open-sourcing-of-asp-net/

Pentaho Labs Apache Spark Integration

Good news from Pentaho!!!
"Today at Pentaho we announced our first official support for Spark . The integration we are launching enables Spark jobs to be orchestrated using Pentaho Data Integration so that Spark can be coordinated with the rest of your data architecture. The original prototypes for number of different Spark integrations were done inPentaho Labs, where we view Spark as an evolving technology. The fact that Spark is an evolving technology is important.
Let’s look at a different evolving technology that might be more familiar – Hadoop. Yahoo created Hadoop for a single purpose ­ indexing the Internet. In order to accomplish this goal, it needed a distributed file system (HDFS) and a parallel execution engine to create the index (MapReduce). The concept of MapReduce was taken from Google’s white paper titled MapReduce: Simplified Data Processing on Large Clusters. In that paper, Dean and Ghemawat describe examples of problems that can be easily expressed as MapReduce computations. If you look at the examples, they are all very similar in nature. Examples include finding lines of text that contain a word, counting the numbers of URLs in documents, listing the names of documents that contain URLs to other documents and sorting words found in documents.
When Yahoo released Hadoop into open source, it became very popular because the idea of an open source platform that used a scale-out model with a built-in processing engine was very appealing. People implemented all kinds of innovative solutions using MapReduce, including tasks such as facial recognition in streaming video. They did this using MapReduce despite the fact that it was not designed for this task, and that forcing tasks into the MapReduce format was clunky and inefficient. The fact that people attempted these implementations is a testament to the attractiveness of the Hadoop platform as a whole in spite of the limited flexibility of MapReduce.
What has happened to Hadoop since those days? A number of important things, like security have been added, showing that Hadoop has evolved to meet the needs of large enterprises. A SQL engine, Hive, was added so that Hadoop could act as a database platform. A No-SQL engine, HBase, was added. In Hadoop 2, Yarn was added. Yarn allows other processing engines to execute on the same footing as MapReduce. Yarn is a reaction to the sentiment that “Hadoop overall is great, but MapReduce was not designed for my use case.” Each of these new additions (security, Hive, HBase, Yarn, etc.) is at a different level of maturity and has gone through its own evolution.
As we can see, Hadoop has come a long way since it was created for a specific purpose. Spark is evolving in a similar way. Spark was created as a scalable in-memory solution for a data scientist. Note, a single data scientist. One. Since then Spark has acquired the ability to answer SQL queries, added some support for multi-user/concurrency, and the ability to run computations against streaming data using micro-batches. So Spark is evolving in a similar way to Hadoop’s history over the last 10 years. The worlds of Hadoop and Spark also overlap in other ways. Spark itself has no storage layer. It makes sense to be able to run Spark inside of Yarn so that HDFS can be used to store the data, and Spark can be used as the processing engine on the data nodes using Yarn. This is an option that has been available since late 2012.
In Pentaho Labs, we continually evaluate both new technologies and evolving technologies to assess their suitability for enterprise-grade data transformation and analytics. We have created prototypes demonstrating our analysis capabilities using Spark SQL as a data source and running Pentaho Data Integration transformations inside the Spark engine in streaming and non-streaming modes. Our announcement today is the productization of one Spark use case, and we will continue to evaluate and release more support as Spark continues to grow and evolve.
Pentaho Data Integration for Apache Spark will be GA in June 2015. You can learn more about Spark innovation in Pentaho Labs here: www.pentaho.com/labs.
I will also lead a webinar on Apache Spark on Tuesday June 2, 2015 at 10am/pt (1pm/ET). You can register athttp://events.pentaho.com/pentaho-labs-apache-spark-registration.html."
Source:

Saturday, May 09, 2015

Parallel Computing with R and Redis

pdiR - Integrating PDI (Pentaho Data Integration) with R in an easy way for you

Pentaho folks,

It is to soon to say anything about our new open source project called pdiR, but feel free to try it and tell us your thougths here.

pdiR
Integrating PDI (Pentaho Data Integration) with R in an easy way for you.

pdiR = PDI (Pentaho Data Integration) + R

An easy way to use PDI (Pentaho Data Integration) with R.

Turn R into a powerful R web server.

Run your R Scripts in PDI (Pentaho Data Integration) without having to config anything.

Simply pull this image from Docker Hub and start your pdiR server.

You can run your R script in a Sparkl / Pentaho Dashboard.

You can create amazing things when you integrate PDI with R.

But it is not an easy task, that's why we create this project, to help you.

We will help you with the correct PDI version, the correct PDI/R plugin, the correct JDK, the correct
environment and you will just focus on your R Script and your business needs.

Links:
https://github.com/it4biz/pdiR
https://registry.hub.docker.com/u/it4biz/pdir/  

Changelog

pdiR 5.3
(JDK): Java SE Development Kit 7u79.
pdi-ce-5.3.0.0-213.zip.
RScriptPlugin-0.0.4.
biserver-ce-5.3.0.0-213

How to install Redis on Ubuntu Linux | Some commands

What is Redis?

Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs.

Links:
http://redis.io/
https://github.com/antirez/redis

How to install Redis on Ubuntu Linux
# sudo apt-get install redis-server

How to run the Redis Server
# redis-server



Some commands:
# redis-cli

caiomsouza@ubuntu:~$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> quit
caiomsouza@ubuntu:~$ redis-cli -h 10.4.101.33

# redis-cli --version

Thursday, May 07, 2015

Passo a Passo da Instalação do Plugin R-Script-executor no PDI 5.3.0 e Configuração do Plugin R-Script- executor no Sparkl

Esse documento foi escrito por André Sammarco (sammarco.andre@gmail.com), sendo o resultado de um trabalho de pesquisa que começou em Janeiro de 2015 com a Comunidade Pentaho de São Paulo de forma presencial, e teve seu resultado formal apresentado no dia 06/05/2015 no encontro Online da Comunidade. É importante agradecer algumas pessoas que participaram e contribuiram de alguma forma nesse projeto de pesquisa comunitário, sendo elas (as pessoas mais envolvidas nesse trabalho): Emannuel Roque, Caio Moreno de Souza (eu), Caio Cardoso Lucena e André Sammarco.

Se houver alguma dúvida que não foi esclarecida veja as referências ou entre em contato:
sammarco.andre@gmail.com, caiomsouza@gmail.com ou diretamente com nossa comunidade.

O que é o R?

O software R é uma caixa de Pandora. Desenvolvido de forma colaborativa por pessoas em volta do mundo, a difusão de seus pacotes e versões não seria diferente. Seus pacotes são desenvolvidos na “esperança” de solução de uma variedade de problemas que envolvem cálculos matemáticos, estatísticos, gráficos, web services, algoritmos de geomapeamento etc, abrangindo assim várias áreas de estudo. Portanto, o R não é um software estatístico. Pode crer, quando achares que seu problema não tem solução, o R tem uma, na forma de pacote milagroso.
O código fonte do R está disponível sob a licença GNU GPL e as versões binárias pré-compiladas são fornecidas para Windows, Macintosh, e muitos sistemas operacionais Unix/Linux. Para mais informações, veja (ref 11 ao final).
 
A integração do R com o PDI (Pentaho Data-Integration) nos dá o poder de processar e transformar uma quantidade massiva de dados em conhecimento, de forma ágil e flexível. Ainda, é possível tornar essa integração altamente disponível com BA Server, em que o usuário final através de seus dashboards (produzidos com tecnologia Sparkl) extrai e visualiza instantaneamente conhecimento de seus dados.


Instalação do Plugin R-Script-executor no PDI
Passo 1 - Ambiente de Instalação, Configuração e versões dos Softwares utilizados:
1.     Sistema Operacional: Linux OpenSuse 11.3 64-bits. Site: https://software.opensuse.org/developer/
2.     Versão do Java (JDK):  Java SE Development Kit 7u79. Site: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
3.     Versão do BA Server: biserver-ce-5.3.0.0-213 . Site http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/5.3/biserver-ce-5.3.0.0-213.zip/download
4.     Versão do PDI: pdi-ce-5.3.0.0-213. Site: http://sourceforge.net/projects/pentaho/files/Data%20Integration/5.3/pdi-ce-5.3.0.0-213.zip/download
5.     Versão do R: R version 3.1.3 (2015-03-09) -- "Smooth Sidewalk". Site: http://download.opensuse.org/repositories/devel:/languages:/R:/patched/SLE_11_SP3/ ou http://cran.r-project.org/.
6.     Versão do Plugin: RScriptPlugin-0.0.4. Site: http://dekarlab.de/download/RScriptPlugin-0.0.4.zip (também pode ser baixado pelo Marketplace do PDI)

Passo 2 - Pré-requisitos: Instalação e configuração: ítens 1, 2, 3, 4 e 5 (Passo 1). Acesso a nível de administrador do Sistema Operacional.

Passo 3 - Preparando o ambiente para a instalação:
Esteja certo de ter instalado e configurado o JDK (ítem 2), assim como configurado suas variáveis de ambiente (veja referência 1 ao final), antes de instalar o R. Caso você tenha atualizado o seu JDK após a instalação do R, utilize o comando:
sudo R CMD javareconf JAVA_HOME =

obs.: comando utilizado somente para usuário de MAC e Linux.
Execute o R pela linha de comando.


Passo 4 - Instalação do pacote rJava para utilização do R com PDI:
Na linha de comando do R digite:
Sys.setenv(“FORCE_NATIVE”=1);    (Força a instalação do pacote 64-bit e não 32-bit)

install.packages(“rJava”, type=’source’);  (Comando para a instalação do pacote)


Aparecerá a mensagem abaixo e uma lista de opções dos locais para baixar o pacote.
--- Please select a CRAN mirror for use in this session ---

(seleciono sempre 12, ou seja, Brasil SP2).

Preste atenção nas mensagens de instalação, para saber se o pacote foi instalado corretamente ou não.
Em ambiente Windows, o próprio R pergunta se a instalação será feita somente para o usuário da sessão e jogará a pasta do pacote em:
C:\Users\usuario_sessao\Documents\R\win-library\3.1\rJava

No Linux, essa pasta será:
/usr/lib64/R/library/rJava


Configurando as variáveis de ambiente do Sistema Operacional (pode variar de acordo com a administração do sistema veja ref. 2 ao final):
No final do arquivo /etc/profile, inserir as linhas:
R_HOME=  instalação do R>  (No meu caso /usr/lib64/R)

export R_HOME

(execute o comando Sys.getenv("R_HOME"); no R para obter esse caminho)
R_LIBS_USER= (No meu caso /usr/lib64/R/library)

export R_LIBS_USER

(execute o comando Sys.getenv("R_LIBS_USER"); no R para obter esse caminho)
PATH=.:$PATH:$R_HOME/bin

export PATH


O PDI utilizará esses caminhos para saber onde buscar o executável do R e também os pacotes instalados pelos usuários e que possivelmente serão utilizados em seus scripts.
Faça logout e login para garantir que todas as variáveis de ambiente serão carregadas pelo Sistema. Após o login confira cada uma delas pelo comando:
echo $NOME_DA_VARIÁVEL


Passo 5 - Configuração do PDI

Na linha de comando, faça
cd /(pasta instalação do pdi)/data-integration/plugins/steps             (colocaremos o plugin aqui)

wget http://dekarlab.de/download/RScriptPlugin-0.0.4.zip                    (faz download do plugin)

unzip RScriptPlugin-0.0.4.zip                                                                           (extrai o plugin na pasta)



Feito isso, copiar o arquivo:
cp /usr/lib64/R/library/rJava/jri/libjri.so /(pasta instalação do pdi)/data-integration/libswt/linux/x86_64/libjri.so

Essa lib é utilizada pelo pdi para executar o Step “Execute R Script”.
Sem ela o PDI acusará o erro:
“jri not found in java.library.path”


Por fim, a pasta “java.library.path” está definida no arquivo “spoon.sh” da seguinte forma:
LIBPATH=$BASEDIR/../libswt/linux/x86_64/     (No meu caso, por estar utilizando Linux 64-bits)

Mas essa pasta seria, conforme abaixo:
/(pasta instalação do pdi)/libswt/linux/x86_64/    (No meu caso, /opt/libswt/linux/x86_64/)

Portanto, a pasta errada.
Altere essa linha do arquivo spoon.sh (conforme seu Sistema Operacional):
LIBPATH=$BASEDIR/libswt/linux/x86_64/                                   (retirar “../”)

  
Configuração do Plugin R-Script-executor no Sparkl
O plugin do R não é nativo do BA server e por isso devemos copiar os arquivos referentes a este plugin para o BA server.
mkdir (pasta intalação do biserver-ce)/biserver-ce/pentaho-solutions/system/ketttle/plugins/steps                  

(deixamos no mesmo padrão de pastas do PDI)

Copie a pasta do plugin R que está em /data-integration/plugins/steps para a recém criada no BA server.



Para não ter que alterar nenhum dos arquivos originais de inicialização do BA Server, crie um arquivo start-server.sh em ”(pasta intalação do biserver-ce)/biserver-ce/”:

sudo –u (usuário de execução do BA server) JAVA_HOME=$JAVA_HOME R_HOME=$R_HOME ./start-pentaho.sh

 Crie outro arquivo ”stop-server.sh” e troque “./start-pentaho.sh” para “./stop-pentaho.sh” conforme acima.



Pare o BA server e apague todos os arquivos de log em

(pasta intalação do biserver-ce)/biserver-ce/tomcat/logs



Crie uma transformação simples “teste.ktr” com o plugin R que servirá como endpoint.

Cole em

 (pasta intalação do biserver-ce)/biserver-ce/pentaho-solutions/system/(dashboard_sparkl)/endpoints/kettle/teste.ktr



Copie a libjri.so para /usr/lib64, pois agora estaremos utilizando o BA server para executar essa transformação, e é nessa pasta que ele está procurando a lib.

Qualquer dúvida em relação a essas pastas é só analisar o arquivo:

(pasta intalação do biserver-ce)/biserver-ce/tomcat/logs/pentaho.log



Inicie o BA server através do script criado, vá até sua aplicação sparkl e execute seu endpoint.

Caso ocorra algum problema, analise o log conforme acima. Os dois problemas mais comuns são: variável R_HOME nula e “jri not found in java.library.path”.

Erros encontrados:
No campo Path to R script, não utilizae a variável ${Internal.Transformation.Filename.Directory} que instancia dinamicamente o diretório da aplicação. O step não funciona com essa variável.
 
Referências:
1.     Site: https://wiki.archlinux.org/index.php/Environment_variables, Ensina a instanciar as variáveis de ambiente de acordo com a administração do Sistema Operacional.
2.     Site: http://wiki.pentaho.com/display/EAI/R+script+executor, Ensina a instalar o plugin do R no PDI.
3.     Site: http://dekarlab.de/wp/?p=57, Exemplos de uso do plugin.
4.     Site: http://dekarlab.de/wp/?p=100, Transformação teste e plugin para baixar.
5.     Site: http://comments.gmane.org/gmane.comp.lang.r.rosuda.devel/638, Ensina configurar o ambiente de instalação do rJava no R.
6.     Site: http://binfalse.de/2011/02/20/talking-r-through-java/
7.     Site: http://inquidia.com/news-and-info/data-science-and-ncaa-bracketology-%E2%80%93-part-1, Aplicação de uso do plugin do R.
8.     Site:http://wiki.pentaho.com/download/attachments/25045431/Data_Science_Pack.mp4?version=1&modificationDate=1416521772000, Video que mostra estudo de Caso com o step R .
9.     Livro: Fundamentos de Programação em R, Fernando Amaral, Ensina conceitos básicos da linguagem.
10.  Site: http://forums.pentaho.com/forum.php, Fórum Pentaho para esclarecer dúvidas e contribuir com a comunidade.
11.  Site: http://pt.wikipedia.org/wiki/R_(linguagem_de_programação), O que é o Software R.
12.  Site: http://cran.r-project.org/doc/contrib/Landeiro-Introducao.pdf, Apostila introdutória sobre o uso do R.

Wednesday, May 06, 2015

Encontro da Comunidade Pentaho Online ensinando agora o passo a passo de como integrar o Pentaho Data Integration com o R



R é uma linguagem de programação/software gratuíto para análises estatísticas e gráficos. A linguagem R é amplamente utilizada por estatísticos e analistas de dados para análise de dados e desenvolvimento de softwares estatísticos. A popularidade do R tem aumentando significativamente todo ano.

Como o R foi adotado pela comunidade científica, praticamente todos os algoritmos/técnicas novas são lançadas/desenvolvidas no R, tornando-o um software extremamente dinâmico e atual. Além de ser gratuíto, o R é facilmente integravel com SPSS, SAS e Microsoft Excel (entre outros), permitindo que os usuários continuem utilizando ferramentas mais familiares porém adicionando todas as funcionalidades do R.

Como integrar o Pentaho Data Integration com o R

Pessoal,

Alguns meses atrás começamos um trabalho na Comunidade Pentaho de São Paulo de estudo do Weka, R e integrações com o PDI.

Agora neste momento estamos ensinando como integrar o Pentaho Data Integration com o R.

Para participar agora clique no link:



R é uma linguagem de programação/software gratuíto para análises estatísticas e gráficos. A linguagem R é amplamente utilizada por estatísticos e analistas de dados para análise de dados e desenvolvimento de softwares estatísticos. A popularidade do R tem aumentando significativamente todo ano.

Como o R foi adotado pela comunidade científica, praticamente todos os algoritmos/técnicas novas são lançadas/desenvolvidas no R, tornando-o um software extremamente dinâmico e atual. Além de ser gratuíto, o R é facilmente integravel com SPSS, SAS e Microsoft Excel (entre outros), permitindo que os usuários continuem utilizando ferramentas mais familiares porém adicionando todas as funcionalidades do R.