完全分布式安装部署,其实步骤上来说与伪分布式没有太大的区别,主要增加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——