文章目录

  • 概述
  • 1.准备Linux
  • 2.安装JDK
  • 3.克隆两台虚拟机
  • 4.免密登陆
  • 5.安装Hadoop
  • 6.配置Hadoop配置文件
  • 7.启动服务
  • 8.在集群上测试一个jar包-单词统计的功能
  • 问题总结

概述

  1. Hadoop完全分布式配置-具体步骤如下
默认前提:
1.在Windows平台下安装Vmware平台(默认已经安装)
2.在Vmware平台上安装Linux操作系统(默认已经安装)
这里我已安装的是 Vmware16 和 CentOS7.

1.准备Linux

  1. 网络设置NAT模式
    编辑——>虚拟网络编辑器——>更改设置(需要管理员权限)

·桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。
·NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信。
·仅主机:虚拟机与宿主机直接连起来如果是通过网线部署在不同的电脑上,应该选择桥接模式。
如果是选择NAT模式来用于设置本机局域网,则IP也要设置。

  1. 设置静态IP

    ·命令1:vi /etc/sysconfig/network-scripts/ifcfg-ens33
    ·命令2:service network restart #重启网络,使上面的设置生效
    ·命令3:ping www.baidu.com #可测试固定IP设置是否有效
    

    (1)执行命令1,修改配置文件。

     首先,修改部分:BOOTPROTO=static其次,添加部分:HDDR=刚刚复制的数字IPADDR=192.168.111.131 GATEWAY=192.168.111.254DNS1=8.8.8.8
    

(2)执行命令2,重启网络,使设置生效

(3)执行命令3,测试固定IP设置是否有效

  1. 修改主机名字

    ·命令1:vim /etc/hostname
    直接修改即可
    重启系统reboot,使设置生效
    

    修改前:

    修改后:

  2. 关闭防火墙

    ·永久性生效,重启后不会复原开启:systemctl enable firewalld关闭:systemctl disable firewalld
    ·即时生效,重启后复原开启:systemctl start firewalld关闭:systemctl stop firewalld
    ·查看防火墙运行状态:systemctl status firewalld
    

    永久性关闭防火墙,并reboot重启系统,然后用 systemctl status firewalld 查看防火墙的运行状态。

    永久关闭并重启后:

2.安装JDK

默认已经在Windows上安装 Xshell 和 Xftp
下面我们将通过Xshell和Xftp进行操作
  1. 首先连接Xshell

  2. 利用Xshell中的Xftp,把Windows中的 jdk 上传到 Linux 系统

    准备工作:在/opt文件夹下创建两个文件夹cd /optmkdir module  #module存放解压后文件mkdir source  #source存放原文件
    


  3. 解压缩 jdk

    ·命令:tar -zxvf jdk-8u181-linux-x64.tar.gz
    ·修改文件夹的名称:mv jdk1.8.0_181 jdk1.8
    ·移动到module文件夹中:mv jdk1.8 ../module
    

    解压后:
    改名后:

    移动后:

  4. 配置环境

    方法1:修改.bash_profile文件
    ·vim ~/.bash_profile
    ·在.bash_profile文件末尾加入:export JAVA_HOME=/opt/module/jdk1.8export PATH=$JAVA_HOME/BIN:$PATH
    ·然后执行以下命令,使环境变量配置立即生效source ~/.bash_profile方法2:修改/etc/profile文件
    ·vim /etc/profile
    ·在profile文件末尾加入:export JAVA_HOME=/opt/module/jdk1.8export PATH=$JAVA_HOME/bin:$PATH
    ·然后执行以下命令,使配置立即生效source /etc/profile·执行以下命令,查看java版本号:java -version
    
    ·方法一:更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。
    ·方法二:更为方便,因为所有用户的shell都有权使用这些环境变量,如果你的计算机仅仅作为开发使用时推荐使用这种方法,否则可能会给系统带来安全性问题。
    

    这里我采用的是方法二:

3.克隆两台虚拟机

前面我们已经完成了 虚拟机AY01 的准备工作和 JDK的安装。
下面我们将对该虚拟机进行克隆。

右键——>管理——>克隆
然后进行克隆:


选择 “创建完整克隆”

自行修改即可:



然后以同样的操作,完成第三台虚拟机的克隆即可。

克隆完成后,我们需要进行一些小操作:
·修改 虚拟机AY002 和 虚拟机AY003 的 主机名 和 IP地址修改主机名:vim /etc/hostname #直接改即可,新主机名在reboot重启后生效修改IP地址:vim /etc/sysconfig/network-scripts/ifcfg-ens33   #分别将AY002和AY003的IP地址改为192.168.111.132和192.168.111.133
·修改三台系统的hosts文件,使IP与主机名对应vim /etc/hosts内容如下:192.168.111.131 AY01192.168.111.132 AY02192.168.111.133 AY03

(1)修改前:


AY002:


AY003:


重启后:


(2)修改三台系统的hosts文件(注意是三台,每台的内容都一样)
具体内容如下图:

至此,我们完成了克隆的部分。

4.免密登陆

经过前面的操作,我们已经可以用Xshell来远程控制虚拟机AY02和虚拟机AY03,
下面我们的操作将在Xshell上进行(当然,也可以依然在Vmware平台上操作)
准备:首先要保证主机名、hosts、防火墙正确设置
  1. 配置每个节点本身公钥和私钥(即在每个节点执行如下两个命令:)

    (1)进入家目录:cd ~
    (2)生成公钥和私钥:ssh-keygen -t rsa·进入.ssh目录:cd .ssh
    执行上述指令,然后敲(三个回车),中间不要输入任何内容,在.ssh目录下就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
    


  2. 将生成的密钥分别发送给AY01、AY02、AY03

    ·命令1:ssh-copy-id AY01
    ·命令2:ssh-copy-id AY02
    ·命令3:ssh-copy-id AY03
    


    测试一下:(成功如下图 )

  3. 在 AY02 和 AY03 中重复上述操作
    最终结果如下:
    AY02:
    AY03:

    至此,我们完成了三台系统之间的免密登陆。

5.安装Hadoop

  1. 利用Xshell中的Xftp,把 Windows 中的 Hadoop-2.7.2上传到 虚拟机AY01的/opt/source文件夹中

  2. 解压 Hadoop-2.7.2 压缩包

    ·解压命令:tar -zxvf hadoop-2.7.2.tar.gz
    ·移动到/opt/module文件夹中:mv hadoop-2.7.2 ../module
    

    解压后:

    移动后:

  3. 配置 Hadoop 环境变量

    方法一:
    ·首先进入hadoop文件夹:cd /opt/module/hadoop-2.7.2/etc/hadoop
    ·配置hadoop-env.sh 配置文件1)修改 export JAVA_HOME=${JAVA_HOME} 为 export JAVA_HOME=/opt/module/jdk1.82)添加以下两条语句:export HADOOP_HOME=/opt/module/hadoop-2.7.2export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH方法二:
    ·首先进入hadoop文件夹:cd /opt/module/hadoop-2.7.2/etc/hadoop
    ·配置hadoop-env.sh 配置文件1)修改 export JAVA_HOME=${JAVA_HOME} 为 export JAVA_HOME=/opt/module/jdk1.8
    ·其次修改/etc/profile文件,在jdk的配置语句后面添加以下两条语句:export    HADOOP_HOME=/opt/module/hadoop-2.7.2export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    

    这里我采用的是方法二:


    这里,我们才只是完成了AY01中的hadoop的安装和环境配置,下面我们将完善Hadoop的配置文件,然后将配置完成的 Hadoop 拷贝给 AY02 和 AY03.

集群部署:

AY01 AY02 AY03
HDFS
NameNode YARN SecondaryNameNode
DataNode DataNode DataNode
NodeManager NodeManager NodeManager
ResourceManager

6.配置Hadoop配置文件

一共需要配置7个文件,这7个文件都在/opt/module/hadoop-2.7.2/etc/hadoop 文件夹下。
把配置信息写在文件的<configuration></configuration>之间
  1. core-site.xml

    ·vim core-site.xml
    在该文件中的<configuration></configuration>之间复制下列内容,注释不要复制,只复制<property></property>部分。
    <!-- 指定HDFS中NameNode的地址 -->
    <property><name>fs.defaultFS</name><value>hdfs://AY01:9000</value>
    </property><!-- 指定hadoop运行时产生文件的存储目录 -->
    <property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
    

  2. Hdfs 部分有3个文件:
    (2.1)hadoop-env.sh

    (此文件在安装Hadoop时已配置过,故可以省略)
    ·修改内容:export JAVA_HOME=/opt/module/jdk1.8
    

    (2.2)hdfs-site.xml

    ·vim hdfs-site.xml
    ·添加的内容如下:<property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name><value>AY03:50090</value>
    </property>
    

    (2.3)slaves

    ·vim slaves
    ·把原文件中的localhost删除掉,输入集群节点名:AY01AY02AY03
    

  3. yarn
    (3.1)yarn-env.sh

    ·vim yarn-env.sh
    ·修改内容如下:将 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 修改为 export JAVA_HOME=/opt/module/jdk1.8(JDK的实际路径)
    

    修改前:

    修改后:

    (3.2)yarn-site.xml

    ·vim yarn-site.xml
    ·添加下面<property></property>部分:
    <!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
    <!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>AY02</value></property>
    

  4. mapreduce
    (4.1)mapred-env.sh

    ·vim mapred-env.sh
    ·修改内容如下:将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 修改为 export JAVA_HOME=/opt/module/jdk1.8
    

    修改前:

    修改后:

    (4.2)mapred-site.xml

    ·hadoop文件夹下没有mapred-site.xml文件,但有一个mapred-site.xml.template文件,
    拷贝一份该文件,并把新拷贝的文件命名为mapred-site.xml
    命令为:cp mapred-site.xml.template mapred-site.xml
    ·然后再打开mapred-site.xml
    ·添加<property></property>部分:
    <!-- 指定mr运行在yarn上 -->
    <property><name>mapreduce.framework.name</name><value>yarn</value>
    </property>
    


  5. 分发 Hadoop文件夹

    自此,所有文件全部配置完毕,接下来我们需要把AY01节点的hadoop文件夹远程分发到AY02、AY03上的对应位置
    ·首先回到/opt/module文件夹下cd /opt/module
    ·然后执行如下命令:scp -r ./hadoop-2.7.2/ AY02:/opt/modulescp -r ./hadoop-2.7.2/ AY03:/opt/module
    

至此,三台系统的Hadoop配置完全一致。

7.启动服务

  1. 格式化 namenode

    根据前面的集群部署图可知,namenode在AY01节点上,因此只需要在AY01节点上进行格式化即可。
    ·首先,进入到hadoop目录下:cd/opt/module/hadoop-2.7.2
    ·格式化命令:bin/hdfs namenode -format
    

  2. 启动 namenode

    ·启动命令:sbin/start-dfs.sh
    ·可通过jps命令查看是否启动
    


  3. 启动 yarn

    根据之前集群部署的情况可知,我们把yarn部署在了AY02节点上,因此我们需要在AY02节点上启动yarn。
    ·启动yarn命令:sbin/start-yarn.sh
    ·通过jps命令查看是否启动
    



    AY03启动的服务有:

  4. 关闭命令

    ·yarn关闭命令:sbin/stop-yarn.sh
    ·hadoop关闭命令:sbin/stop-dfs.sh
    
    Hadoop启动和关闭命令:
    1.start-all.sh启动所有的Hadoop守护进程。(包括NameNode、Secondary NameNode、DataNode、JobTracker、TaskTrack)
    2.stop-all.sh停止所有的Hadoop守护进程。(包括NameNode、Secondary NameNode、DataNode、JobTracker、TaskTrack)
    3.start-dfs.sh启动Hadoop HDFS守护进程NameNode、Secondary NameNode 和 DataNode。
    4.stop-dfs.sh停止Hadoop HDFS守护进程NameNode、Secondary NameNode 和 DataNode。5.hadoop-daemons.sh start namenode单独启动NameNode守护进程
    6.hadoop-daemons.sh stop namenode单独停止NameNode守护进程
    7.hadoop-daemons.sh start datanode单独启动DataNode守护进程
    8.hadoop-daemons.sh stop datanode单独停止DataNode守护进程
    9.hadoop-daemons.sh start secondarynamenode单独启动SecondaryNameNode守护进程
    10.hadoop-daemons.sh stop secondarynamenode单独停止SecondaryNameNode守护进程
    11.start-mapred.sh启动Hadoop MapReduce守护进程JobTracker和TaskTracker12.stop-mapred.sh停止Hadoop MapReduce守护进程JobTracker和TaskTracker
    13.hadoop-daemons.sh start jobtracker单独启动jobtracker守护进程
    14.hadoop-daemons.sh stop jobtracker单独停止jobtracker守护进程
    15.hadoop-daemons.sh start tasktracker单独启动TaskTracker守护进程
    16.hadoop-daemons.sh stop tasktracker单独停止TaskTracker守护进程
    

至此,我们就算是完成了Hadoop集群完全分布式的搭建!!

8.在集群上测试一个jar包-单词统计的功能

  1. 在本地创建一个 word.txt 文件

    ·命令1:touch word.txt
    ·命令2:vi word.txt
    输入:
    小明 小张 小李 小明
    张三 王五 张三 小李
    

  2. 在根目录下创建一个 input 的文件夹

    ·命令:bin/hdfs dfs -mkdir /input
    
  3. 把 word.txt 文件上传到服务器中的 input 文件夹中

    ·命令:bin/hdfs dfs -put ./word.txt /input
    
  4. 查看是否上传成功

    ·命令:bin/hdfs dfs -ls /input
    

  5. 执行 wordcount 单词统计功能

    在执行此命令前,再次确认集群中所有节点的防火墙都已经关闭!
    
    ·命令:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
    
    ·output文件夹内有2个文件查看命令:bin/hdfs dfs -ls /output
    ·输出output文件夹文件的内容:bin/hdfs dfs -cat /output/*
    


至此,基本的完全分布式已经建立成功!!

  1. 删除文件系统上的 output 文件夹(了解)

    ·删除命令:bin/hdfs dfs -rm -r /output
    
  2. 删除output 文件夹的part-r-00000文件(了解)
    ·删除命令:bin/hdfs dfs -rm /output/part-r-00000
    
  3. yarn的浏览器页面查看(集群中已执行的任务)
    由于我们的yarn部署在 AY02 节点,该节点的固定IP为:192.168.111.132
    所以我们可以通过浏览器:http://192.168.111.132:8088/cluster
    查看yarn上已执行的任务。
    

问题总结

  1. 整理流程我参考的是centos6的文档,centos7的命令与其不同。如修改主机名、关闭防火墙等
  2. centos7无法连接Xshell的情况

【大数据】Hadoop完全分布式配置(超详细)相关推荐

  1. 大数据开发面试题总结-超详细

    1.文件上传: 总结: 客户端上传请求--->namenode检查,返回响应--->客户端真正的文件上传请求,包括文件名,文件大小--->namenode返回上传节点--->客 ...

  2. 2021年大数据Hadoop(七):HDFS分布式文件系统简介

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS分布式文件系统 ...

  3. 王家林 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程...

    这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...

  4. Hadoop大数据原理(2) - 分布式文件系统HDFS

    文章目录 1. 数据存储问题 2. RAID技术的原理和思路 2.1 常用RAID的原理介绍 2.2 RAID间的性能比较 3. 大数据时代的分布式文件系统 3.1 HDFS的稳固地位 3.2 HDF ...

  5. 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有

    [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.javascript视频教程 链接: http://pan.baidu ...

  6. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题

    王家林的"云计算分布式大数据Hadoop实战高手之路---从零开始"的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题 参考文章: (1)王家林的&quo ...

  7. 【大数据】大数据 Hadoop 管理工具 Apache Ambari(HDP)

    文章目录 一.概述 二. Ambari 与 HDP 关系 三.Ambari 与 Cloudera manager 的对比 1)开源性 2)支持的发行版 3)用户界面 4)功能和扩展性 5)社区支持和生 ...

  8. 2021年大数据Hadoop(三十):Hadoop3.x的介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop3.x的介绍 介绍 Hadoop 3.0新特性 ...

  9. 2021年大数据Hadoop(十四):HDFS的高可用机制

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 HDFS的高可用机制 HDFS高可用介绍 组件介绍 Nam ...

最新文章

  1. 严重: Dispatcher initialization failed java.lang.RuntimeException
  2. python 字典字符串转字典——urllib.request.Request发送get,post请求,发送json参数
  3. python mysql library popular_python之mysql入门详解(四)
  4. python从列表随机取出多个数据_【python】从数组随机取数据
  5. 现代软件工程讲义 0 课程概述
  6. android 高德地图 sh1,百度、高德地图获取发布版(Release)SHA1
  7. flutter: 根视图、根元素与根渲染
  8. 团队开发——用户需求报告
  9. 如何Python写一个安卓APP
  10. 【6G】算力网络技术白皮书整理
  11. QFP封装芯片手工焊接和拆卸技巧
  12. 转-如何使用iTunes制作iPhone铃声
  13. ue4掉落深渊返回地面
  14. 2021美业趋势:包装刺激消费、家用美容仪受追捧、内外兼修的美容时代
  15. idea 连接达梦数据库
  16. 小米10Pro手机相机特性分析
  17. 启动异常 Field XXX in XXXX required a bean of type XXXX that could not be found.
  18. lisp 焊缝_焊接领域中 AutoCAD的二次开发
  19. 真题集P110---2018年真题
  20. Win10系统U盘重装Win7系统教学

热门文章

  1. 【Python-GPU加速】基于Numba的GPU计算加速(一)基本
  2. linux open o direct,文件操作O_DIRECT使用
  3. 你却越早知道越健康的145条--健康提醒
  4. 刷题总结——影魔(HNOI2017 BZOJ4826 线段树+扫描线)
  5. fiddler 抓包详细教程
  6. 最新开源PHP在线小说txt生成器源码
  7. WORD调用Excel的 文本到语音 功能 让WORD有声朗诵
  8. 一元二次方程到规范场
  9. 一盏灯带你了解智能家居的3D打印过程
  10. yate学习--yateclass.h--class YATE_API Thread : public Runnable