Estou tentando instalar esse comando do hadoop@ubuntu:/usr/local/mahout$:
mvn -DskipTests clean install e dar erro como este: The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE, o que pode ser?
A mensagem é bastante clara: você não setou a variável de ambiente JAVA_HOME
e como resolver?
Apontando a variável de ambiente JAVA_HOME
para o diretório de um JDK.
eu seguir esses passos aqui:
Instale OpenJDK no Ubuntu
sudo apt update
sudo apt install openjdk-8-jdk -y
java -version; javac -version
Instale OpenSSH no Ubuntu
sudo apt install openssh-server openssh-client -y
Criar usuário Hadoop
sudo adduser hadoop
su - hadoop
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
Conectar sem ssh local
ssh localhost
Baixe e instale o Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
tar xzf hadoop-3.2.4.tar.gz
Definindo como variáveis de ambiente
nano ~/.bashrc
Insira no final do arquivo:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/home/hadoop/hadoop-3.2.4
export HADOOP_INSTALL=$HADOOP_HOME
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/native"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
Atualizando bashrc
source ~/.bashrc
Configurando o hadoop-env.sh
sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Adquira por:
export JAVA_HOME=
Altere para:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Editar arquivo core-site.xml
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
Adicione no final (atencao com o )
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmpdata</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
Editar arquivo hdfs-site.xml
sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
Adicione no final (atencao com o )
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/dfsdata/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/dfsdata/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
Editar arquivo mapred-site.xml
sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
Adicione no final (atencao com o )
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Editar o arquivo yarn-site.xml
sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
Adicione no final (atencao com o )
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
Baixando o Reuters C50
cd ~
wget https://archive.ics.uci.edu/static/public/217/reuter+50+50.zip
unzip reuter+50+50.zip
mkdir C50
mv C50t* ./C50
Criando diretórios / Permissões
sudo mkdir /home/hadoop/tmpdata
sudo mkdir /home/hadoop/dfsdata/
sudo mkdir /home/hadoop/dfsdata/namenode
sudo mkdir /home/hadoop/dfsdata/datanode
sudo chmod 777 -R /home/hadoop/tmpdata/
sudo chmod 777 -R /home/hadoop/dfsdata/
sudo chmod 777 -R /home/hadoop/dfsdata/*
sudo chown hadoop:hadoop -R /home/hadoop/tmpdata/
sudo chown hadoop:hadoop -R /home/hadoop/dfsdata/
sudo chown hadoop:hadoop -R /home/hadoop/dfsdata/*
sudo chown hadoop:hadoop -R /home/hadoop/C50/*
Formato HDFS NameNode
hdfs namenode -format
Iniciando Serviços
cd ~/hadoop-3.2.4/sbin/
./start-dfs.sh
./start-yarn.sh
Executar: jps
Veja a lista dos módulos:
$ jps
72805 Jps
22308 DataNode
22680 ResourceManager
22825 NodeManager
22138 NameNode
22509 SecondaryNameNode
Se sim, abra o navegador e veja se carrega a página: http://localhost:9870
Instalando o mahout
cd ~
wget https://archive.apache.org/dist/mahout/0.12.2/apache-mahout-distribution-0.12.2-src.tar.gz
tar -xvf apache-mahout-distribution-0.12.2-src.tar.gz
sudo mv apache-mahout-distribution-0.12.2 /usr/local/mahout
Adicionar variáveis de ambiente
nano .bashrc
Adicionar:
export MAHOUT_HOME="/usr/local/mahout"
Altere o PATH para (OBS: Essa deve ser a última linha do arquivo)
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$MAHOUT_HOME/bin
Salve e execute
source .bashrc
Instalando utilitários
sudo apt-get install maven
sudo apt-get install curl
cd $MAHOUT_HOME
mvn -DskipTests clean install
Me diga aonde eu errei neste tutorial?
O diretório do seu JDK é realmente esse?
/usr/lib/jvm/java-8-openjdk-amd64
sim, esse mesmo, por que aqui está errado?
Dei uma revisada e copiei os dois JAVA _HOME e não apresentou mais a mensagem de erro
Outra questão:
Ao executar o comando: nano saida_clusters.txt era para ter algum arquivo, pois o meu está vazio
O que pode ser?