Com a crescente realidade das tecnologias escaláveis de baixo custo e grande desempenho, o Big Data vem se afirmando cada dia mais como um conceito indispensável para as empresas, que precisam melhorar e acelerar as capacidades de decisão e com uma excelente adequação a realidade de crise financeira em escala mundial.
O mergulho neste oceano de soluções de Big Data, nos dá o prazer de redescobrir soluções conhecidas (como o datawarehousing e business inteligence) de uma forma livre e bem dinâmica. Livre por grande parte das soluções serem baseadas em soluções open source (adotada até mesmo por grandes fornecedores) e dinâmica pela grande vastidão de soluções.
Enfim, vamos ao que interessa, o objetivo é apresentar de forma simples de réplica entre uma base de dados Oracle e Hive.
Neste primeiro post, o objetivo é preparar o ambiente com tudo o que é necessário. Neste exemplo coloquei todos os componentes dentro de uma mesma VM, mas caso queriam, poder 2 VMs, uma com tudo que é o Hadoop + Hive e a outra com Oracle Database.
No segundo post, vamos configurar o mecanismo de replicação de Oracle para Hive.
Em um terceiro post irei abordar um initial load, ou carregamento total dos dados para Hive com o software Sqoop.
Para quem não conhece, Hive é uma base de dados mantida pela apache, que permite a trabalhar com os dados com linguagem SQL. Para mais detalhes, baste ir a página do hive na Apache, ou por aqui.
- Oracle Virtual Box
- CentOS Linux 6.7 64 Bits
- Hadoop 2.7.1
- Hive 0.12
- Oracle Database Server 11.2.0.4
- Oracle Goldengate 11.2.1
- Oracle Goldengate Adapters 11.2.1 (p16850747_112100_Linux-x86-64.zip)
# java -versionjava version “1.8.0_66” Java(TM) SE Runtime Environment (build 1.8.0_66-b17)Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
# adduser hadoop# passwd hadoop# su – hadoop$ ssh-keygen -t rsa$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ chmod 0600 ~/.ssh/authorized_keys$ ssh localhost$ exit
$ cd ~$tar xzf hadoop-2.7.1.tar.gz$ mv hadoop-2.7.1 hadoop
$ vi ~/.bashrc
export HADOOP_HOME=/home/hadoop/hadoopexport HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/binexport HADOOP_PREFIX=$HADOOP_HOMEexport HIVE_HOME=$HADOOP_HOME/hiveexport PATH=$HADOOP_HOME:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH
$ source ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
$ cd $HADOOP_HOME/etc/hadoop
<configuration><property><name>fs.default.name</name><value>hdfs://HOSTNAME:9000</value></property></configuration>
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value></property><property><name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value></property></configuration>
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>
$ hdfs namenode -format
20/03/16 16:32:56 INFO namenode.NameNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = hadoop.m04m.com/192.168.56.101…INFO namenode.NameNode: SHUTDOWN_MSG:/*********************************************SHUTDOWN_MSG: Shutting down NameNode at hadoop.m04m.com/192.168.56.101************************/
$ cd $HADOOP_HOME/sbin/$ ./start-dfs.sh$ ./start-yarn.sh
http://HOSTNAME:50070/
# groupadd hive# usermod -g hive -G hadoop hadoop# su – hadoop$ cd $HADOOP_HOME$ tar xzf hive-0.12.0-bin.tar.gz$ mv hive-0.12.0-bin hive$ chown -R hadoop hive
$ cd $HIVE_HOME$ export HDFS_DATA=/home/hadoop/hadoopdata/hdfs/datanode$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp$ $HADOOP_HOME/bin/hadoop fs -mkdir $HDFS_DATA/hive/warehouse$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp$ $HADOOP_HOME/bin/hadoop fs -chmod g+w $HDFS_DATA/hive/warehouse
$ bin/hiveLogging initialized using configuration in jar:file:/home/hadoop/hadoop/hive/lib/hive-common-0.12.0.jar!/hive-log4j.propertieshive>
hive> CREATE TABLE teste (col1 string);OK Time taken: 0.892 seconds
hive> SHOW TABLES;OKtesteTime taken: 0.185 seconds, Fetched: 1 row(s)
hive> DROP TABLE teste;OKTime taken: 1.452 seconds
cp libggjava_ue.so $OGG_HOME
cp libggjava_vam.so $OGG_HOME
cp flatfilewriter.so $OGG_HOME
cp -r ggjava $OGG_HOME