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.
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.
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:
Post a Comment