Cluster con Raspberry pi 3 Modelo B con Hadoop + Spark

Material Usado:

  • 7 – Raspberry pi 3 modelo b
  • 7 – Sandisk ultra 16gb 80MB/s,c10,uhs
  • 7 – Cables de red Ethernet sin enganches, Cat6, 50cm, negro
  • 7 – Cargadores 5V 2.5A Micro USB
  • 1 – Switch TP-Link, modelo TL-SF1008D

añadidos o opcionales.

  • 1 teclado USB o bluetooch

Fotos de montaje:

 

 

 

 

 

 

 

 

 

Descargamos y instalamos en la tarjeta MicroSd:

entramos en la pagina oficial  y descargamos la imagen «Raspbian jessie lite»

web oficial: https://www.raspberrypi.org/downloads/raspbian/
imagen: https://downloads.raspberrypi.org/raspbian_lite_latest
con un programa como «imageUSB» cargamos la imagen y la grabamos en la tarjeta microsd
Pagina Oficial  y descarga Directa
Web Oficial: https://www.passmark.com
Descarga Directa: http://osforensics.com/downloads/imageusb.zip
– introducimos la microSd en la raspberry y conectamos todo el cableado, encendemos.
– conectamos el teclado o entramos desde SSH si disponemos de conexión ya y si es necesario pulsamos varias veces el INTRO.
Usuario: «pi»
clave: «raspberry»
* sin comillas
 ahora tecleamos los siguiente para poder configurar las raspberry
# sudo raspi-config

instalar Java

sudo apt-get update
sudo apt-get install oracle-java8-jdk

Descargar y instalar Haddop

wget http://apache.osuosl.org/hadoop/common/hadoop-3.0.0-alpha2/hadoop-3.0.0-alpha2.tar.gz
sudo mkdir /opt
cd ~
sudo tar -xvzf hadoop-3.0.0-alpha2.tar.gz -C /opt/
cd /opt
sudo chown -R hduser:hadoop hadoop-3.0.0-alpha2/
sudo nano /opt/hadoop-3.0.0-alpha2/etc/hadoop/

Descargar y instalar Spark

wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz    
sudo tar -xvzf spark-2.1.0-bin-hadoop2.7.tgz -C /opt/
sudo chown -R hduser /opt/spark-2.1.0-bin-hadoop2.7
source ~/.bashrc  
cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh       
SPARK_MASTER_IP=192.168.2.1    
SPARK_WORKER_MEMORY=512m

Creamos Superuser y group

sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
sudo adduser hduser sudo su hduser

~/.bashrc

# -- HADOOP ENVIRONMENT VARIABLES START -- #
export HADOOP_HOME=/opt/hadoop-3.0.0-alpha2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
# -- HADOOP ENVIRONMENT VARIABLES END -- #
export JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre

export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

sudo nano /etc/hosts

nodo1
nodo2
nodo3
nodo4
nodo5
nodo6
nodo7

/opt/hadoop-3.0.0-alpha2/etc/hadoop/core-site.xml

<configuration>
<property>
 <name>fs.default.name</name>
 <value>hdfs://nodo1:9000</value>
</property>
<property>
 <name>fs.default.FS</name>
 <value>hdfs://nodo1:9000</value>
</property>
</configuration>

/opt/hadoop-3.0.0-alpha2/etc/hadoop/hdfs-site.xml

<configuration>
<property>
 <name>dfs.replication</name>
 <value>6</value>
</property>
</configuration>

/opt/hadoop-3.0.0-alpha2/etc/hadoop/yarn-site.xml

<configuration>
<property>
 <name>yarn.resourcemanager.resource-tracker.address</name>
 <value>nodo1:8025</value>
 </property>
 <property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>nodo1:8035</value>
 </property>
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>nodo1:8050</value>
</property>
</configuration>

/opt/hadoop-3.0.0-alpha2/etc/hadoop/mapred-site.xml

 <configuration>
 <property>
 <name>mapreduce.job.tracker</name>
 <value>nodo1:5431</value>
 </property>
 <property>
 <name>mapred.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

/opt/hadoop-3.0.0-alpha2/etc/hadoop/slaves

nodo2
nodo3
nodo4
nodo5
nodo6
nodo7

/opt/hadoop-3.0.0-alpha2/etc/hadoop/master

nodo1

Permisos SSh, ENTODAS LAS SLAVES

su hduser 
cd ~  
cd .ssh  
ssh-keygen  
cp  ~/.ssh/id_rsa.pub  ~/.ssh/nodo-default
cat ~/.ssh/nodo-default >> ~/.ssh/authorized_keys  
ssh-copy-id hduser@nodo1  

Comprobar que entra en master sin clave

ssh hduser@nodo1

Ordenes de ejecución

Iniciar Dfs:
/opt/hadoop-3.0.0-alpha2/sbin/start-dfs.sh

Iniciar yarn:
/opt/hadoop-3.0.0-alpha2/sbin/start-yarn.sh

Iniciar todo:
/opt/hadoop-3.0.0-alpha2/sbin/start-all.sh

Comandos Comprovacion:
/opt/hadoop-3.0.0-alpha2/bin/hdfs dfsadmin -report

Estado DFs
/opt/hadoop-3.0.0-alpha2/bin/hadoop fs -df -h

Formatear dfs Nodo
/opt/hadoop-3.0.0-alpha2/bin/hdfs namenode -format

Crear directorio
/opt/hadoop-3.0.0-alpha2/bin/hadoop fs  -mkdir hdfs://nodo1:9000/testdir/

Crear archivo
/opt/hadoop-3.0.0-alpha2/bin/hadoop fs  -copyFromLocal /tmp/testFile.txt hdfs://nodo1:9000/testdir/testFile.txt
Nicolás Alarcón Escrito por: