搭建完全分布式系统
(本人小白一个,第一次写文章有什么错误欢迎指点,不喜勿喷。)
(基于centos7.4系统搭建vmware)
前期准备三台服务器
- 关闭防火墙
//关闭命令
systemctl disable fiewalld
//查看状态
systemctl staus fiewalld
- 配置静态ip
//使用命令进入网路文件配置目录
cd /etc/sysconfig/network-scripts
vi ifcfg-网卡名称
IPARRD=IP地址
NETMASK=子网掩码
GATWAY=网关
DNS1=
- 修改主机名
vi /etc/hostname
- 修改hosts
vi /etc/hosts
- 配置本地hosts
解压两个包
接下来开始修改配置文件profile:
##JAVA_HOME
export JAVA_HOME=jdk的目录
export PATH=$PATH$:$JAVA_HOME/bin
##HADOOP_HOME
export HADOOP_HOME=自己hadoop的地址
export PATH=$PATH$:$HADOOP_HOME/bin
export PATH=$PATH$:$HADOOP_HOME/sbin
开始配置ssh免密登陆
生成公钥和私钥
在主节点上执行
ssh-keygen -t rsa
///连续敲三次回车
///公钥和私钥默认保存的地址为:~/.ssh, .rsa为私钥,rsa.pub为公钥
将公钥拷贝到所有节点(有几台就拷贝几台)
ssh-copy-id 192.68.xx.xx
配置集群
配置核心文件(以下配置文件的位置:hadoop-2.7.4/etc/hadoop目录下):
配置core-site.xml文件:
代码:
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop003:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
(2)HDFS配置文件:配置hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop005:50090</value>
</property>
YARN配置文件
配置yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop003</value>
</property>
<!-- 日志聚焦功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>ture</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
MapReduce配置文件
配置mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置 mapred-site.xml
先到mapred-site.xml存放的文件夹: cd /opt/module/hadoop-2.7.2/etc/hadoop
开始执行复制命令:
命令:cp mapred-site.xml.template mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop003:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop003:19888</value>
</property>
集群启动(群起)
配置slaves
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
vim /opt/module/hadoop-2.7.4/etc/hadoop/slaves
添加自己的主机名:
hadoop003
hadoop004
hadoop005
同步所有修改配置到各个节点
启动集群:
(1)如果集群是第一次启动,需要格式化NameNode
(注意格式化之前,一定要先停止上次启动的所有
namenode和datanode进程,然后再删除data和log数据)
格式化命令:bin/hdfs namenode -format
(2)启动HDFS
命令: sbin/start-dfs.sh
(3)启动YARN
命令: sbin/start-yarn.sh
注意:NameNode和ResourceManger如果不是同一台机器,
不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
(4)启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver