准备工作:

安装jdk

克隆2台虚拟机完成后:新的2台虚拟机,请务必依次修改3台虚拟机的ip地址和主机名称【建议三台主机名称依次叫做:master、node1、node2 】(虚拟机的克隆,前面的博客,三台虚拟机都要开机)

这里我们安装的是Hadoop2.7.6版本:https://hadoop.apache.org/releases.html

1、设置主机名与ip的映射,修改配置文件命令:vi /etc/hosts

2、将hosts文件拷贝到node1和node2节点

命令:

scp /etc/hosts node1:/etc/hosts

scp /etc/hosts node2:/etc/hosts

这里我们可以在bin目录下面写一个分发的脚本

cd /bin/

vim xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in master node1 node2
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done

注意:完成上述操作后,三台需要刷新一下配置环境变量的文件:source /etc/profile

4、关闭防火墙(三台都要操作),使用命令:service iptables stop

5、关闭防火墙的自动启动(三台都要操作),使用命令:chkconfig iptables off

6、设置ssh免密码登录(只在Master 这台主机操作)

主节点执行命令  ssh-keygen -t rsa     产生密钥 一直回车

执行命令

7、将密钥拷贝到其他两个子节点,命令如下:

ssh-copy-id -i node1

ssh-copy-id -i node2

实现免密码登录到子节点。

8、将hadoop的jar包先上传到虚拟机/usr/local/module,使用xftp来上传

 9、解压Hadoop

tar -xvf hadoop-2.7.6.tar.gz -C /usr/local/soft/

10、配置环境变量

这是我配置的环境变量,一定要有jdk和Hadoop

vim /etc/profile

export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
export REDIS_HOME=/usr/local/soft/redis/
export PATH=$PATH:$REDIS_HOME/bin
export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

分发给node1与node2:xsync  /etc/profile

三台都需要:source /etc/profile

11、修改配置文件

hadoop 配置文件在/usr/local/soft/hadoop-2.7.6/etc/hadoop/

cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/

11.1、hadoop-env.sh : Hadoop 环境配置文件
vim hadoop-env.sh
修改JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

11.2、slaves : 从节点列表(datanode)
vim slaves
增加node1, node2

11.3、core-site.xml : hadoop核心配置文件
vim core-site.xml

在configuration中间增加以下内容

<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property> <property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>

11.4、hdfs-site.xml : hdfs配置文件

vim hdfs-site.xml

在configuration中间增加以下内容

<property>
<name>dfs.replication</name>
<value>1</value>
</property> <property>
<name>dfs.permissions</name>
<value>false</value>
</property>

11.5、yarn-site.xml: yarn配置文件

vim yarn-site.xml

在configuration中间增加以下内容

<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property> <property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property> <property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property> <property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property> <property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>

 11.6、mapred-site.xml: mapreduce配置文件

在这里需要重命名mapred-site.xml.template

命令:mv mapred-site.xml.template mapred-site.xml

vim mapred-site.xml

在configuration中间增加以下内容

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property> <property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>

12、将hadoop安装文件同步到子节点

xsync  /usr/local/soft/hadoop-2.7.6

13、格式化namenode

hdfs namenode -format

14、启动hadoop

在Hadoop的sbin目录下执行:

    /usr/local/soft/hadoop-2.7.6/sbin

    启动命令:start-all.sh

15、访问hdfs页面验证是否安装成功

http://master:50070

用Java内部命令jps来看是否成功

这里同样我们可以使用脚本查看三台节点的jps

在cd /bin/ 目录下 vim jpsall

#!/bin/bash

for i in hadoop102 hadoop103 hadoop104
do
echo =============== $i ===============
ssh $i "$*" "/usr/local/soft/jdk1.8.0_212/bin/jps"
done

16、如果安装失败
stop-all.sh
再次重启的时候
1需要手动将每个节点的tmp目录删除: 所有节点都要删除
rm -rf /usr/local/soft/hadoop-2.7.6/tmp
然后执行将namenode格式化
2在主节点执行命令:
hdfs namenode -format
3启动hadoop
start-all.sh

完全分布式Hadoop2.X的搭建的更多相关文章

  1. Spark 1.6.1分布式集群环境搭建

    一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...

  2. hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用

    一.HDFS的相关基本概念 1.数据块 1.在HDFS中,文件诶切分成固定大小的数据块,默认大小为64MB(hadoop2.x以后是128M),也可以自己配置. 2.为何数据块如此大,因为数据传输时间 ...

  3. Hadoop完全分布式集群环境搭建

    1. 在Apache官网下载Hadoop 下载地址:http://hadoop.apache.org/releases.html 选择对应版本的二进制文件进行下载 2.解压配置 以hadoop-2.6 ...

  4. hadoop完全分布式集群的搭建

    集群配置: jdk1.8.0_161 hadoop-2.6.1 linux系统环境:Centos6.5 创建普通用户  dummy 准备三台虚拟机master,slave01,slave02 hado ...

  5. Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包)

    Tags: Hadoop Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包) Centos7.5安装分布式Hadoop2.6.0+Hbase ...

  6. hadoop学习笔记(五)hadoop伪分布式集群的搭建

    本文原创,如需转载,请注明作者和原文链接 1.集群搭建的前期准备   见      搭建分布式hadoop环境的前期准备---需要检查的几个点 2.解压tar.gz包 [root@node01 ~]# ...

  7. 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)

    版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...

  8. 原生态hadoop2.6平台搭建

     hadoop2.6平台搭建 一.条件准备 软件条件: Ubuntu14.04 64位操作系统,jdk1.7 64位,Hadoop 2.6.0 硬件条件: 1台主节点机器,配置:cpu 8个,内存32 ...

  9. ZooKeeper 完全分布式集群环境搭建

    1. 搭建前准备 示例共三台主机,主机IP映射信息如下: 192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3 2.下载ZooKeeper, 以  ...

随机推荐

  1. 我的大学Android开发学习之路——从开始到微信/支付宝/抖音Offer

    前言 笔者2016年高考考入华中科技大学计算机科学与技术专业. 2017年底(大二寒假)拿到今日头条(字节跳动)深圳研发中心Android开发实习生Offer,在深圳研发中心实习至2018年3月. 2 ...

  2. Android系统编程入门系列之服务Service齐头并进多线程任务

    在上篇文章中初步了解了Android系统的四大组件之一的服务Service,在服务内可以执行无用户交互的耗时操作任务,但是包括之前关于界面系列文章在内,生命周期方法都是在主线程内被系统回调的.如果直接 ...

  3. SpringCloud升级之路2020.0.x版-11.Log4j2 监控相关

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford Log4j2 异步 ...

  4. linux的iptables设置

    添加规则 -A 在链末尾追加一条规则 -I 在链开头或某序号前插入一条规则 查看规则 -L 列出所有规则 -n 数字显示地址和端口信息 -v 详细信息 -line-numbers 显示规则序号 删除规 ...

  5. 1051 Pop Sequence (25分)栈

    刷题 题意:栈的容量是5,从1~7这7个数字,写5个测试数据 做法:模拟栈 #include<bits/stdc++.h> using namespace std; const int m ...

  6. 9、改善深度神经网络之正则化、Dropout正则化

    首先我们理解一下,什么叫做正则化? 目的角度:防止过拟合 简单来说,正则化是一种为了减小测试误差的行为(有时候会增加训练误差).我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好 ...

  7. 【Tools】SSHUsage

    SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制.还能对操作者进行认证(authentication)和授权(authorization ...

  8. mysql优化: 内存表和临时表

    由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法.但内存表和临时表的区别且并不熟悉,需要查找资料了.一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时 ...

  9. 【spring 注解驱动开发】spring自动装配

    尚学堂spring 注解驱动开发学习笔记之 - 自动装配 自动装配 1.自动装配-@Autowired&@Qualifier&@Primary 2.自动装配-@Resource& ...

  10. springCloud之路API路由网关Zuul

    1.简介 简单的理解就是,相当于在所有服务的调用前加了一层防火墙, 主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的接口细节,提高系统的安全性: 官方文档:http ...