Hadoop完全分布式安装

Hadoop完全分布式安装

一.集群搭建前期准备

1.三台机器防火墙都是关闭的

2.确保三台机器网络配置畅通

3.三台机器确保/etc/hosts⽂件配置了ip和hostname的映射关系

4.确保三台机器配置了ssh免密登录认证

二.前期环境搭建 免密登录

1.修改主机名为server1,配置hosts文件

vi /etc/hosts
192.168.61.2 server1
192.168.61.3 server2
192.168.61.4 server3

2.下载相关软件

net-tool:工具包集合,包含ifconfig等命令
yum install -y net-tools 
实时同步文件:
yum install -y rsync

3.克隆三台机器后设置免密登录(三台机器都需要设置)

生成公钥与私钥(三次回车)
ssh-keygen
向目标主机发送公钥(输入密码)
ssh-copy-id server1
ssh-copy-id server2
也需要对自己设置免密
ssh-copy-id master

三.安装jdk和Hadoop

1.上传安装包至/opt下的新文件夹中,module(存放数据)sofeware(存放安装包)

2.解压文件至/opt/module中

tar -zxvf hadoop-2.7.7.tar.gz -C /opt/module/
tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/

四.配置环境变量和文件(Hadoop配置文件位于/opt/module/hadoop-2.7.7/etc/hadoop下)

1.配置环境变量

vi /etc/profile
在文件末尾添加,将路径更改为你的安装路径
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/module/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

保存退出
source /etc/profile  使环境变量立即生效
输入命令 java -version 验证 JDK 是否安装成功:

2.配置hadoop-env.sh 文件

vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_333

3.配置核心文件core-site.xml

vi core-site.xml
<configuration>

    <!-- 指定 NameNode 的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>

    <!-- 指定 Hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.7/data</value>
    </property>
    
    <!-- 配置 HDFS 网页登录使用的静态用户为master-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>master</value>
    </property>

</configuration>

4.HDFS 配置文件hdfs-site.xml

vi hdfs-site.xml
<configuration>

	<!-- nn(NameNode) web 端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>
    
	<!-- 2nn(SecondaryNameNode) web 端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>server2:9868</value>
    </property>
    
</configuration>

5.YARN 配置文件yarn-site.xml

vi yarn-site.xml
<configuration>

    <!-- 指定 MR 走 shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定 ResourceManager 的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>server1</value>
    </property>

	<!-- 开启日志聚集功能 -->
	<property>
	    <name>yarn.log-aggregation-enable</name>
	    <value>true</value>
	</property>
	
	<!-- 设置日志聚集服务器地址 -->
	<property>  
	    <name>yarn.log.server.url</name>  
	    <value>http://master:19888/jobhistory/logs</value>
	</property>
	
	<!-- 设置日志保留时间为 7 天 -->
	<property>
	    <name>yarn.log-aggregation.retain-seconds</name>
	    <value>604800</value>
	</property>

</configuration>

6.MapReduce 配置文件mapred-site.xml(将mapred-site.xml.template改名成mapred-site.xml即可 mv命令)

vi mapred-site.xml
<configuration>

	<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

	<!-- 历史服务器端地址 -->
	<property>
	    <name>mapreduce.jobhistory.address</name>
	    <value>master:10020</value>
	</property>
	
	<!-- 历史服务器 web 端地址 -->ha
	<property>
	    <name>mapreduce.jobhistory.webapp.address</name>
	    <value>master:19888</value>
	</property>

</configuration>

6.配置workers/slaves文件

vi workers/slaves
添加主机
master
server2
server3
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行

7.文件分发

我们上面的操作都只是在主节点 server1 中进行,现在我们需要把所有文件分发给从机 server2 server3

分发环境变量
rsync -r /etc/profile server1:/etc/profile
rsync -r /etc/profile server2:/etc/profile
分发 JDK 和 Hadoop
scp -r /opt/module server1:/opt
scp -r /opt/module server2:/opt
source /etc/profile     使环境变量立即生效

五.启动集群

如果集群是第一次启动,则需要先格式化 NameNode 节点

hdfs namenode -format

格式化完成后,启动集群

在主节点中运行
start-dfs.sh
在 ResourceManager 节点中运行
start-yarn.sh 

或者

在主节点中运行
start-all.sh
在 ResourceManager 节点中运行
start-yarn.sh 

在主节点中启动历史服务器
mr-jobhistory-daemon.sh start historyserver

启动完成后,输入 jps 命令检查各节点是否正常:

在本地浏览器中查看 Hadoop web 界面:http://192.168.61.2:9870

六.集群规划

server1server2server3
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager

节点分析

名称作用
NameNode也称为 nn,管理文件系统的命名空间,维护文件系统树以及整个树上所有文件和目录,负责协调集群中的数据存储
SecondaryNameNode帮助 NameNode 缓解压力,合并编辑日志,减少 NameNode 启动时间
ResourceManager一个仲裁整个集群可用资源的主节点,帮助 YARN 系统管理其上的分布式应用
NodeManagerYARN 中单节点的代理,它管理 Hadoop 集群中单个计算节点
DataNode负责真正存储数据的节点,提供来自文件系统客户端的读写请求

7.番外配置

在HDFS配置文件中修改安全模式阀值,达到关闭安全模式的目的
在hdfs-site.xml中设置安全阀值属性,属性值默认为0.999f,如果设为1则不进行安全检查
永久退出安全模式:
<property>
  <name>dfs.safemode.threshold.pct</name>
  <value>0.999f</value>
  <description>
    Specifies the percentage of blocks that should satisfy
    the minimal replication requirement defined by dfs.replication.min.
    Values less than or equal to 0 mean not to wait for any particular
    percentage of blocks before exiting safemode.
    Values greater than 1 will make safe mode permanent.
  </description>
</property>
关闭网页hdfs对权限的操作验证
# 直接关闭 HDFS 权限验证,在 hdfs-site.xml 文件中添加如下配置:
<property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>
  • 33
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值