【大数据离线开发】3、Hadoop 2.X的安装与配置

Hadoop 2.X的安装与配置

3.1Hadoop安装部署的预备条件

  • 安装Linux和配置Linux

    配置Linux网卡信息
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    BOOTPROTO=static
    ONBOOT=yes
    ...
    IPADDR=192.168.X.51
    GATEWAY=192.168.X.2
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    NETMASK=255.255.255.0
    
    
    vi /etc/resolv.conf(学习中未使用)
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    重启网卡:servie network restart

    修改主机名
    hostnamectl set-hostname 主机名
    
    
    IP和主机名关系映射
    vi /etc/hosts
    192.168.157.111 bigdata111
    192.168.157.112 bigdata112
    192.168.157.113 bigdata113
    
  • 关闭防火墙、配置主机名(参考1.1.2小节)

    - 关闭防火墙:systemctl stop firewalld.service
    - 禁用防火墙:systemctl disable firewalld.service
    - 查看防火墙:systemctl status firewalld.service
    
    
    (学习中未使用过)
    -	关闭Selinux:vi /etc/selinux /config
    -	将SELINUX=enforcing改为SELINUX=disabled
    
  • Linux安装JDK

    解压jdk压缩包
    cd tools     //所有的tool都放到/root/tools下
    tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training/
    
    设置环境变量:vi ~/.bash_profile
    JAVA_HOME=/root/training/jdk1.8.0_144
    export JAVA_HOME
    
    PATH=$JAVA_HOME/bin:$PATH
    export PATH
    

    生效环境变量: source ~/.bash_profile

    检查是否生效
    [root@localhost ~]#echo $JAVA_HOME
    /root/training/jdk1.8.0_144
    
    [root@localhost ~]#java -version
    java version "1.8.0_144"
    ......
    
  • 安装hadoop

    解压hadoop安装包
    [root@bigdata111 tools]# tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
    
    设置Hadoop的环境变量 vi ~/.bash_profile
    HADOOP_HOME=/root/training/hadoop-2.7.3
    export HADOOP_HOME
    
    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export PATH	
    

    生效环境变量:source ~/.bash_profile

3.2Hadoop的目录结构

安装tree命令:rpm -ivh tree-1.6.0-10.e17.x86_64.rmp

在这里插入图片描述

3.3Hadoop安装部署的三种模式

3.3.1本地模式

特点:一台Linux系统,没有HDFS,只能测试MapReduce程序(本地数据:Linux的文件),不是运行在Yarn中,做一个独立的Java程序来运行

配置:hadoop-env.sh

25行 export JAVA_HOME=/root/training/jdk1.8.0_144

参数文件配置参数参考值
hadoop-env.shJAVA_HOME/root/training/jdk1.8.0_144

在这里插入图片描述

Demo程序:测试MapReduce程序

cd /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar

hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/input/data.txt ~/temp/output/wc

在这里插入图片描述

3.3.2伪分布模式

特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能

​ HDFS:NameNode + DataNode + SecondaryNameNode

​ Yarn: ResourceManager + NodeManage

参数文件配置参数参考值
hadoop-env.shJAVA_HOME/root/training/jdk1.8.0_144
hdfs-site.xmldfs.replication1
同上dfs.permissionsfalse
core-site.xmlfs.defaultFShdfs://:9000
同上hadoop.tmp.dir/root/training/hadoop-2.7.3/tmp
mapred-site.xmlmapreduce.framework.nameyarn
yarn-site.xmlyarn.resourcemanager.hostname
同上yarn.nodemanager.aux-servicesmapreduce_shuffle

1. 参数文件配置修改
hadoop-env.sh JAVA_HOME /root/training/jdk1.8.0_144

hdfs-site.xml

	<!--数据块的冗余度,默认是3-->
	<!--原则冗余度跟数据节点的个数保持一致,最大不要超过3-->
	<property>
	  <name>dfs.replication</name>
	  <value>1</value>
	</property>
	
	<!--是否开启HDFS的权限检查,默认:true-->
	<!--
	<property>
	  <name>dfs.permissions</name>
	  <value>false</value>			
	</property>
	-->

core-site.xml

	<!--配置HDFS主节点的地址,就是NameNode的地址-->
	<!--9000是RPC通信的端口-->
	<property>
	  <name>fs.defaultFS</name>
	  <value>hdfs://bigdata111:9000</value>
	</property>	
	
	<!--HDFS数据块和元信息保存在操作系统的目录位置-->
	<!--默认是Linux的tmp目录,一定要修改,不然重启会没有-->
	<property>
	  <name>hadoop.tmp.dir</name>
	  <value>/root/training/hadoop-2.7.3/tmp</value>
	</property>

mapred-site.xml

	<!--MR程序运行的容器或者框架是Yarn-->
	<!--默认没有这个文件,需要mv mapred-site.xml.template mapred-site.xml -->
	<property>
	  <name>mapreduce.framework.name</name>
	  <value>yarn</value>
	</property>		

yarn-site.xml

	<!--配置Yarn主节点的位置,也就是ResourceManager的地址-->
	<property>
	  <name>yarn.resourcemanager.hostname</name>
	  <value>bigdata111</value>      
	</property>		
	
	<!--NodeManager运行MR任务的方式是Shuffle洗牌-->
	<property>
	  <name>yarn.nodemanager.aux-services</name>
	  <value>mapreduce_shuffle</value>
	</property>	

2. 对HDFS的NameNode进行格式化

​ core-site.xml文件对NameNode目录设置为:/root/training/hadoop-2.7.3/tmp

​ 命令:hdfs namenode -format

​ 成功日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

在这里插入图片描述

3. 启动

  • HDFS: start-dfs.sh
  • Yarn :start-yarn.sh
  • 一键启动:start-all.sh

启动过程输入三次yes,四次密码

在这里插入图片描述

Web Console访问:

​ ip + hdfs端口:50070

​ ip + yarn端口:8088

4. 停止

  • stop-all.sh

停止过程输入四次密码(一台机器登录停止需要输入8次密码,需要配置免密码登录)

3.3.3全分布模式

在这里插入图片描述

特点:真正用于生产环境

  • 三台机器:bigdata112 bigdata113 bigdata114

环境准备(详见3.1 )

  1. 每台机器准备工作:安装JDK、关闭防火墙、设置主机名

    systemctl stop firewalld.service

    systemctl disable firewalld.service

  2. 设置主机名 vi /etc/hosts

    192.168.157.112 bigdata112

    192.168.157.113 bigdata113

    192.168.157.114 bigdata114

  3. 配置免密码登录:两两之间的免密码登录

    (1)在每台机器上产生公钥和私钥

    ​ ssh-keygen -t rsa

    (2)需要将每台机器的公钥复制给其他机器(下面的三句话,需要在每台机器上执行)

    ​ ssh-copy-id -i .ssh/id_rsa.pub root@bigdata112

    ​ ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113

    ​ ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114

  4. 保证每台机器的时间同步

    • 时间同步服务器

    • date -s 2022-05-12 三台机器同时设置时间一致

  5. 安装Hadoop的全分布环境(在主节点bigdata112上安装,同伪分布环境一致)

    (1)解压设置环境变量

    (2)修改参数配置文件如下

参数文件配置参数参考值
hadoop-env.shJAVA_HOME/root/training/jdk1.8.0_144
hdfs-site.xmldfs.replication2
同上dfs.permissionsfalse
core-site.xmlfs.defaultFShdfs://:9000
同上hadoop.tmp.dir/root/training/hadoop-2.7.3/tmp
mapred-site.xmlmapreduce.framework.nameyarn
yarn-site.xmlyarn.resourcemanager.hostname
同上yarn.nodemanager.aux-servicesmapreduce_shuffle
slavesDataNode的地址从节点1 从节点2

hadoop-env.sh

26行  export JAVA_HOME=/root/training/jdk1.8.0_144

hdfs-site.xml

<!--数据块的冗余度,默认是3-->
<!--原则冗余度跟数据节点的个数保持一致,最大不要超过3-->
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>

<!--是否开启HDFS的权限检查,默认:true-->
<!--
<property>
  <name>dfs.permissions</name>
  <value>false</value>			
</property>
-->

core-site.xml

<!--配置HDFS主节点的地址,就是NameNode的地址-->
<!--9000是RPC通信的端口-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://bigdata112:9000</value>
</property>	

<!--HDFS数据块和元信息保存在操作系统的目录位置-->
<!--默认是Linux的tmp目录,目录一定要存在,先创建,一定要修改,不然重启会没有-->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/root/training/hadoop-2.7.3/tmp</value>
</property>

mapred-site.xml

<!--MR程序运行的容器或者框架是Yarn-->
<!--默认没有这个文件,需要mv mapred-site.xml.template mapred-site.xml -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>	

yarn-site.xml

<!--配置Yarn主节点的位置,也就是ResourceManager的地址-->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>bigdata112</value>      
</property>		

<!--NodeManager运行MR任务的方式是Shuffle洗牌-->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

slaves: 配置的是所有的从节点

	bigdata113
	bigdata114

  1. 对HDFS的NameNode进行格式化

    core-site.xml文件对NameNode目录设置为:/root/training/hadoop-2.7.3/tmp(需要创建这个文件夹)

    命令:hdfs namenode -format

    成功日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

  1. 将bigdata112配置好的目录复制到bigdata113和bigdata114上

    ​ scp -r hadoop-2.7.3/ root@bigdata113:/root/training

    ​ scp -r hadoop-2.7.3/ root@bigdata114:/root/training

    -r :目录及其子目录

  1. 启动Hadoop集群(在主节点上)

    • start-all.sh
    • stop-all.sh

通过jps或者网页的方式观察主节点和分界点的区别

跟伪分布模式下一样,在主节点执行WordCount程序

在这里插入图片描述

  1. 验证

    命令行:hdfs dfsadmin -report

    网页:HDFS:http://192.168.157.112:50070/
    Yarn:http://192.168.157.112:8088

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4 免密码登录的原理和配置

在这里插入图片描述

免密码登录的配置

  1. 使用命令 ssh-keygen -t rsa 产生自己的公钥和私钥 , 一直enter

    • id_rsa是私钥

    • id_rsa.pub是公钥

在这里插入图片描述

  1. 将公钥copy一份给别人

  2. 收到发来的公钥,将它保存到~/.ssh/suthorized_keys(别人所有的公钥都会保存到这个文件)

在这里插入图片描述

在这里插入图片描述

  1. 随机产生一个字符串Hello

  2. 使用A发过来的公钥进行加密* * * * *,并且将加密后的字符串发给A

  3. A收到B发过来的加密字符串,使用自己的私钥进行解密:Hello

  4. 将解密后的字符串再发给B进行验证

  5. B收到A发来的解密字符串:Hello

  6. 对比第4部和第8步的字符串

    (*)结果一样:server A是我的合法用户,让A直接登陆

    (*)结果不一样:server A 也可以登录,但是需要输入密码

验证免密码登录

  • 远程登陆退出

在这里插入图片描述

  • 启动Hadoop的集群环境

在这里插入图片描述

3.5 主从节点的单点故障

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小卓仗剑走天涯

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值