2. Tutorial do tutorial do Hadoop sobre a construção de um cluster de ambiente distribuído (detalhado)
Prefácio
Este artigo apenas apresenta a instalação e implantação do Apache Hadoop versão 2.x, e os artigos subsequentes apresentarão a estrutura do Hadoop 2.x, o princípio de funcionamento cooperativo de vários módulos e detalhes técnicos. A instalação não é o objetivo, mas entender o Hadoop por meio da instalação é o objetivo.
1. Ambiente de implantação
O método parcial é realmente usar vários hosts Linux para implantar o Hadoop e planejar clusters de máquinas Linux para que cada módulo do Hadoop seja implantado em várias máquinas diferentes.
O seguinte demonstrará a implantação distribuída de um cluster Hadoop (incluindo 1 nó mestre e 2 nós escravos).
(1) Preparação
Prepare três servidores Linux :
192.168.2.110 (nó mestre)
192.168.2.111 (nó escravo)
192.168.2.112 (nó escravo)
Feche o firewall.
Instale o JDK e configure as variáveis de ambiente.
Por padrão, você instalou o JDK e as variáveis de ambiente configuradas. Instale e configure aqui. Não repita.
//192.168.2.110上配置如下:
/usr/local/jdk/jdk1.8.0_192/bin/java
//192.168.2.111上配置如下:
/usr/local/server/jdk1.8.0_171/bin/java
//192.168.2.112上配置如下:
/usr/local/server/jdk1.8.0_171/bin/java
Quer saber se a configuração foi bem-sucedida? Veja as variáveis globais:
echo $JAVA_HOME
(1) Três servidores configuram o tempo de sincronização:
yum install ntpdate
ntpdate cn.pool.ntp.org
(2) Três nomes de host de configuração de servidor:
vim /etc/sysconfig/network
//192.168.2.110上network配置如下:
NETWORKING=yes
HOSTNAME=node-1
//192.168.2.111上network配置如下:
NETWORKING=yes
HOSTNAME=node-2
//192.168.2.112上network配置如下:
NETWORKING=yes
HOSTNAME=node-3
(2) Três servidores definem mapeamento de ip e nome de host:
vim /etc/hosts
//192.168.2.110上hosts配置如下:
192.168.2.110 node-1
//192.168.2.111上hosts配置如下:
192.168.2.111 node-2
//192.168.2.112上hosts配置如下:
192.168.2.112 node-3
(3) O servidor do nó mestre é configurado com login sem senha SSH (configurado em 192.168.2.110) .Há
muitas maneiras de configurar o login sem senha SSH no Hadoop na Internet, o que é impressionante. Todos os caminhos levam a Roma, e o blogger compilou o método de configuração mais simples:
ssh-keygen -t rsa # 会有提示,都按回车就可以
//cat id_rsa.pub >> authorized_keys # 加入授权(非必须执行)
//chmod 600 ./authorized_keys # 修改文件权限(非必须执行)
ssh-copy-id node-1
ssh -o StrictHostKeyChecking=no node-1
ssh-copy-id node-2
ssh -o StrictHostKeyChecking=no node-2
ssh-copy-id node-3
ssh -o StrictHostKeyChecking=no node-3
ssh-copy-id : O comando pode preencher a chave pública gerada atualmente no arquivo authorized_keys em uma máquina remota.
ssh -o StrictHostKeyChecking = no : Ao conectar ao servidor pela primeira vez, um prompt para confirmar a chave pública irá aparecer. Isso fará com que certas tarefas automatizadas sejam interrompidas devido à conexão inicial com o servidor. Ou porque o conteúdo do arquivo ~ / .ssh / known_hosts foi esvaziado, a tarefa de automação foi interrompida. O comando de configuração StrictHostKeyChecking do cliente SSH pode aceitar automaticamente a nova chave pública ao conectar-se ao servidor pela primeira vez.
Se um erro for relatado: A autenticidade do host'node-2 (10.0.0.8) 'não pode ser estabelecida. Não entre em pânico, execute o seguinte comando novamente:
ssh -o StrictHostKeyChecking=no node-2
Se um erro for relatado: as permissões 0644 para '/ root / .ssh / id_rsa' estão muito abertas. Não entre em pânico, isso significa que as permissões dadas por /root/.ssh/id_rsa são muito abertas, execute os seguintes comandos para capacitar:
chmod 0600 /root/.ssh/id_rsa
(2) Trabalho de configuração
Transfira o hadoop-2.8.5 para o diretório / home / neijiang / (pode ser personalizado). As seguintes configurações são todas realizadas no servidor do nó mestre. Após a configuração ser concluída, copie o hadoop-2.8.5 do nó mestre para todos os nós escravos. Mas:
(Nota especial: como as variáveis de ambiente do hadoop não são configuradas no diretório hadoop-2.8.5, todas precisam ser configuradas manualmente para o nó escravo)
(1) Configure hadoop-env.sh
vim hadoop-env.sh
//192.168.2.110上hadoop-env.sh配置如下:
/usr/local/jdk1.8.0_171
(2) Modifique o arquivo de configuração core-site.xml
//192.168.2.110上core-site.xml配置如下:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/neijiang/hadoop-2.8.5/hadoopData</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-1:9000</value>
</property>
</configuration>
(3) Modifique o arquivo de configuração hdfs-site.xml:
//192.168.2.110上hdfs-site.xml配置如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node-2:50090</value>
</property>
</configuration>
(4) Modifique o arquivo de configuração mapred-site.xml.template:
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
//192.168.2.110上mapred-site.xml.template配置如下:
<configuration>
<!--指定mr运行时框架,这里指定在yarn上,默认是local-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5) yarn-site.xml
//192.168.2.110上yarn-site.xml配置如下:
<!--指定yarn的老大(resourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-1</value>
</property>
<!--NodeManager上运行的附属服务,需配置成mapreduce_shuffle,才可运行MapReduce程序的默认值-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(6) O arquivo escravos, no qual o nome do host do nó escravo é escrito
vim slaves
//192.168.2.110上slaves配置如下:
//删除原先的localhsot,写入如下内容:
node-1
node-2
node-3
(7) Adicionar hadoop às variáveis de ambiente
vim /etc/profile
//192.168.2.110上配置如下:
export HADOOP_HOME=/home/neijiang/hadoop-2.8.5/ #指向hadoop解压路径
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$HBASE_HOME/bin:$ZK_HOME/bin:$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(8) Copie o diretório raiz hadoop-2.10.0 configurado no nó mestre 192.168.2.110 para todos os nós escravos:
scp -r /home/neijiang/hadoop-2.8.5/ root@node-2:/home/neijiang/
scp -r /home/neijiang/hadoop-2.8.5/ root@node-3:/home/neijiang/
(9) Configure manualmente as variáveis de ambiente hadoop configuradas no nó mestre 192.168.2.110 para todos os nós escravos:
export HADOOP_HOME=/home/neijiang/hadoop-2.8.5 #指向hadoop解压路径
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(3) Começar a trabalhar
(1) Em relação à formatação de hdfs: a formatação é
necessária para a primeira inicialização. A essência da formatação é inicializar o sistema de arquivos e criar alguns arquivos de que você precisa;
após a formatação, o cluster é iniciado com êxito e a formatação subsequente não é necessária .
A operação de formatação deve ser realizada na máquina onde se encontra o nó mestre (Namenode) do cluster hdfs
Comando de formatação: hadoop namenode -format
(2) Modo de início
/home/neijiang/hadoop-2.8.5/sbin
hdfs启动: start-dfs.sh
yarn启动: start-yarn.sh
//等同于:start-all.sh
hdfs关闭: stop-dfs.sh
yarn关闭: stop-yarn.sh
//等同于:stop-all.sh
Você pode usar o comando jps em cada servidor de nó para ver as coisas de inicialização.
Se você se sentir útil, por favor, "Gosto", "Siga" e "Favorito"!