Pages

Google Ads

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.

No comments: