Hadoop完全分布式安装

2019-12-21 14:19:28 浏览数 (1)

完全分布式安装部署,其实步骤上来说与伪分布式没有太大的区别,主要增加2台虚拟机部署称为一个3台的集群

环境的准备

在现有基础上克隆出来2台虚拟机,并且修改网段IP ,以及主机名称 映射路径 hosts ,关闭防火墙,创建独立hadoop用户,赋予sudo权限

完成以上的环境准备之后,应该手头上存在3台虚拟机,并且防火墙已经关闭,而且设置好了主机名称以及映射地址

集群的规划

主要需要配置的组件: HDFS(负责存储) Yarn HistoryServer

集群的安装

在集群安装之前,必须要安装JDK环境

配置Hadoop完全分布式环境,从配置文件开始

首先解压hadoop安装路径到/opt/app中

代码语言:javascript复制
sudo tar -zvxf hadoop-2.7.2.tar.gz -C /opt/app/

1 修改Hadoop-env.sh 中 JAVA_HOME路径

代码语言:javascript复制
export JAVA_HOME=/opt/app/jdk1.8.0_181

2 配置core-site.xml 配置文件

代码语言:javascript复制
<property><name>fs.defaultFS</name><value>hdfs://hadoop01:8020</value></property><property><name>hadoop.tmp.dir</name><value>/opt/app/hadoop-2.7.2/data/tmp</value></property>

3 配置hdfs-site.xml

代码语言:javascript复制
<property><name>dfs.namenode.secondary.http-address</name><value>hadoop02:50090</value></property><property><name>dfs.namenode.http-address</name><value>hadoop01:50070</value></property>
<property><name>dfs.permissions.enabled</name><value>false</value></property>

dfs.namenode.secondary.http-address: 设置secondaryNameNode服务进程的主机位置

dfs.namenode.http-address:NameNode WEB界面访问的地址配置

dfs.permissions.enabled:HDFS的权限验证 默认开启 需要关闭

Yarn配置

配置yarn.site.xml配置文件

代码语言:javascript复制
<property><name>yarn.resourcemanager.hostname</name><value>hadoop03</value></property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><!--<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>

yarn.resourcemanager.hostname:指定Resourcemanager 在指定节点上

配置mapred

配置mapred-site.xml配置文件

代码语言:javascript复制
<property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop03:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop03:19888</value></property>

现在是完全分布式的环境,所以还需要配置savles文件,把从节点的主机名称添加进去

hadoop01

hadoop02

hadoop03

在分发之前,需要把etc/hosts 文件下配置好的映射地址分发到不同的节点上 保证每个节点上的hosts文件都是一样的

可以使用scp命令在不同的节点之间进行拷贝,命令使用方式如下

代码语言:javascript复制
sudoscp /etc/hosts hadoop03:/etc/hosts

分发hadoop到不同的节点上

代码语言:javascript复制
sudoscp -r /opt/app/hadoop-2.7.2/ hadoop03:/opt/app/

要记住: 如果使用sudo 在分发之后要记得修改权限为hadoop

格式化:namenode

在节点分发完成之后,在hadoop01节点上格式化namenode

代码语言:javascript复制
bin/hadoopnamenode -format

启动进程

先单个节点启动HDFS测试:

在hadoop01上启动namenode 与datanode

代码语言:javascript复制
sbin/hadoop-daemon.sh start namenodesbin/hadoop-daemon.sh start datanode

接下来在其他节点上启动datanode

代码语言:javascript复制
sbin/hadoop-daemon.sh start datanode

在单节点上启动Yarn测试

在Hadoop03上启动resourcemanager

代码语言:javascript复制
sbin/yarn-daemon.sh start resourcemanager

接下来在不同的节点上启动nodemanager

配置完ssh免密码登录之后就可以 使用start-all.sh 或者stop-all.sh

——END——

0 人点赞