当前位置: 首页 > news >正文

CentOS7部署Hadoop2.7.5全分布式群集

思路

  1. 安装虚拟机
  2. 安装JDK
  3. 克隆
  4. 安装HADOOP
  5. 配置ssh
  6. 搭建hadoop集群 
    1. 配置hadoop-env.sh
    2. 配置hadoop-core-site.xm
    3. 配置hadoop-hdfs-site.xm
    4. 配置hadoop-mapred-site.xml
    5. 配置hadoop-yarm-site.xml
  7. 配置slave
  8. 发送hadoop文件到所有机子上
  9. 测试

安装虚拟机

VMware Workstation 12.5.7 PRO 安装 CentOS7

安装JDK

linux安装最新版JDK

克隆

我是直接克隆虚拟机,要是有服务器或者自安装也可以。 
点击完整克隆 
这里写图片描述 
这里写图片描述

安装HADOOP

CentOS7安装单机版Hadoop

配置HADOOP

修改UUID

vim /etc/sysconfig/network-scripts/ifcfg-ens33

这里写图片描述 
因为克隆过来的UUID是相同的,可以删除重新生成,也可以修改其中一个数就可以了,里面的数值是16进制的,在这范围内就可以。

修改计算机名

hostnamectl –static set-hostname hadoop01

这里写图片描述

修改映射

vim /etc/hosts

192.168.164.137 hadoop01 www.hadoop01.com
192.168.164.136 hadoop02 www.hadoop02.com
192.168.164.138 hadoop03 www.hadoop03.com
  • 1
  • 2
  • 3

这里写图片描述 
CentOS7克隆之后IP地址是自动分配的,所以不需要自己设置 
查询本机IP

ifconfig

检验是能联通,在win的cmd ping一下 
这里写图片描述 
改名之后可以通过名字来在虚拟机之间通讯 
这里写图片描述

配置SSH

cd /root/.ssh 
ssh-keygen -t rsa


ssh-copy-id hadoop01 
ssh-copy-id hadoop02 
ssh-copy-id hadoop03 
# hadoop01,hadoop02,hadoop03是我的主机名,主机名自己设置的

搭建全分布环境

规划

主机名称IP地址功能
hadoop01192.168.164.137NameNode,DataNode,ResourceManager,NodeManager
hadoop02192.168.164.136DataNode,NodeManager
hadoop03192.168.164.138DataNode,NodeManager
所有机子都需要配置
1.JDK 
2.SSH免登陆 
3.Hadoop集群

配置hadoop-env.sh

vim /usr/local/hadoop-2.7.5/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.5/etc/hadoop/
  • 1
  • 2
  • 3

配置core-site.xml

vim /usr/local/Hadoop-2.7.5/etc/Hadoop/core-site.xml

<configuration>
<!-- configuration hdfs file system namespace -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
<!-- configuration hdfs cache size of the operation -->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
<!-- configuration hdfs Temporary data storage directory -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/mshing/bigdata/tmp</value>
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

配置hdfs-site.xml

vim /usr/local/hadoop-2.7.5/etc/hadoop/hdfs-site.xml

<configuration>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/hadoopdata/dfs/name</value>
    </property>

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

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/hadoopdata/dfs/data</value>
    </property>

    <property>
        <name>dfs.chechpoint.dir</name>
        <value>/home/hadoop/hadoopdata/checkpoint/dfs/cname</value>
    </property>

    <property>
        <name>dfs.http.address</name>
        <value>hadoop01:50070</value>
    </property>

    <property>
        <name>dfs.secondary.http.address</name>
        <value>hadoop01:50090</value>
    </property>

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>false</value>
    </property>

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

</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

配置mapred-site.xml

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml 
vim etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

配置yarn-site.xml

vim etc/hadoop/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop01:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop01:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop01:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop01:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop01:8088</value>
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

配置slaves

vim etc/hadoop/slaves

这里写图片描述

远程分发到服务器上

scp -r /usr/local/hadoop-2.7.5/ hadoop02:/usr/local/ 
scp -r /usr/local/hadoop-2.7.5/ hadoop03:/usr/local/

启动之前需要格式化

启动之前,在namenode服务器上先格式化,只需格式化一次就好了

hadoop namenode -format

这里写图片描述

测试

启动namenode,datanode,ResourceManager,NodeManager节点

全启动:

start-all.sh

模块启动:

start -dfs.sh 
start -yarn.sh

单个进程启动/停止:

hadoop-damon.sh start/stop namenode 
hadoop-damons.sh start/stop datanode 
yarn-damon.sh start/stop namenode 
yarn-damons.sh start/stop namenode 
mr-jobhistory-daemon.sh start/stop historyserver

验证 
在三台机子分别输入

jsp

就可以看到启动的进程了

相关文章:

  • idea + github项目颜色区分
  • 客户端向hdfs读写数据流程
  • CAS原理分析
  • Java中静态跟非静态的区别总结
  • Spring IOC原理解读 面试必读
  • spring ioc原理(看完后大家可以自己写一个spring)
  • 非可抢占式和抢占式进程调度的区别是什么?
  • 【数据结构】ArrayList原理及实现学习总结
  • Java集合:HashMap源码剖析
  • 从原则、方案、策略及难点阐述分库分表
  • IDEA,WebStorm ,pyCharms 2018注册码 (2018jetbrain所有产品都可以)
  • css如何让div显示在最上层
  • XMind制作思维导图——添加子标题
  • JAVA中的Random()函数,获取随机数
  • FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Brief introduction of how to 'Call, Apply and Bind'
  • C学习-枚举(九)
  • Elasticsearch 参考指南(升级前重新索引)
  • EventListener原理
  • Fastjson的基本使用方法大全
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS 颜色设置看我就够了
  • Js基础——数据类型之Null和Undefined
  • OSS Web直传 (文件图片)
  • React中的“虫洞”——Context
  • text-decoration与color属性
  • Vue官网教程学习过程中值得记录的一些事情
  • WePY 在小程序性能调优上做出的探究
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 仿天猫超市收藏抛物线动画工具库
  • 深度学习在携程攻略社区的应用
  • 双管齐下,VMware的容器新战略
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • ​什么是bug?bug的源头在哪里?
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (力扣)循环队列的实现与详解(C语言)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 解决重复提交问题
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Bugku]密码???[writeup]
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [Cocoa]iOS 开发者账户,联机调试,发布应用事宜
  • [E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)