root/123456
三台虚拟机都必须有一个普通用户,且用户名统一,hadoop/123456
三台机器:hadoop01-03
子网:192.168.163.0
网关:192.168.163.1
主网:192.168.163.2
三台机器配置:
192.168.163.201 hadoop01
192.168.163.202 hadoop02
192.168.163.203 hadoop03
内存都给2G
启动命令:
启动的时候:
关闭防火墙;service iptables stop/sudo service iptables stop
hdfs:start-dfs.sh hadoop01下操作
yarn:start-yarn.sh hadoop03下操作
关闭命令:
关闭虚拟机时,先关闭集群,再关机
关闭hdfs:stop-dfs.sh hadoop01下操作
关闭yarn:stop-yarn.sh hadoop03下操作
----------------------------------------------------------------------------------------------------------------------------
集群规划
hadoop01 hadoop02 hadoop03
hdfs namenode
datanode datanode datanode
secondarynamenode
MapReduce
yarn resourcemanager
nodemanager nodemanager nodemanager
----------------------------------------------------------------------------------------------------------------------------
软件环境
1.vmware
2.centos6.7_64位版
3.hadoop2.7.6
4.JDK1.8_64位
链接:https://pan.baidu.com/s/1pwV2la_wtnugVRZlHy-uBg
提取码:73pz
复制这段内容后打开百度网盘手机App,操作更方便哦
----------------------------------------------------------------------------------------------------------------------------
准备工作
1.配置IP和网关
(1)根据主机来配置虚拟机
每台机器上进行设置IP
举例:
IPADDR=192.168.163.201
NETMASK=255.255.255.0
GATEWAY=192.168.163.1
(2)修改主机名
vi /etc/sysconfig/network
改名即可
(3)然后在hosts文件中进行配置主机映射
vi /etc/hosts
192.168.163.201 hadoop01
192.168.163.202 hadoop02
192.168.163.203 hadoop03
(4)确保可以ping通即可(内网外网都试试)
2.为普通用户配置sudoer权限,三个集群都要改
①切换到root用户
su
②编辑文件
vi /etc/sudoers
:wq!//强制保存退出
su -hadoop//切换到普通用户
3.关闭防火墙/关闭selinux
sudo service iptables stop
4.关闭selinux
sudo vi /etc/sysconfig/selinux
5.更改系统启动级别为3
sudo vi /etc/inittab
6.配置免密登录-SSH
三台之间都做免密登录
要求:三台机器都是普通用户,,且用户名统一
三台一起做:
(1)ssh-keygen/生成秘钥
三次回车
(2)ssh-copy-id/远程拷贝秘钥
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
(3)测试 ssh hadoop01
(4)退出 exit
注意:(3)、(4)循环三次
7.四台服务器做时间同步
搭建的集群的,必须都要时间同步
(1)手动时间同步
date - s ‘ ’
(2)搭建时间同步服务器
使用现成的:
sudo ntpdate ntp1.aliyun.com
date命令检查一下
只要运行不报错,就是对的!
8.在本地用软件远程连接
(1)配置本地vmare8的网关和虚拟机保持一致,即可远程连接了!
安装工作
----------------------------------------------------------------------------------------------------------------------------
1.安装JDK
先一个节点配置,完成之后,在远程发送到别的节点
(1)上传JDK安装包
采用xftp工具上传安装包
新建一个apps文件夹,将jdk和hadoop都放在里面
(2)解压JDK
cd apps
tar -xvzf jdk-8u11-linux-x64.tar.gz
(3)配置JDK环境变量
sudo vi /etc/profile
大G拉到最底,insert插入,esc退出编辑,:wq保存退出
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_11
export PATH=$PATH:$JAVA_HOME/bin
(4)生效环境变量
source /etc/profile
(5)验证是否安装成
java -version
2.安装Hadoop
(1)解压hadoop
tar -xvzf hadoop-2.7.6.tar.gz
(2)配置环境变量
目录介绍
sudo vi /etc/profile
大G拉底,i插入
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(3)只要修改配置文件,都要立即生效
source /etc/profile
(4)验证 hadoop命令
hadoop version
(5)修改hadoop配置文件
规划主从节点
配置文件路径: cd /home/hadoop/apps/hadoop-2.7.6/etc/hadoop
需求修改6个配置文件
1)hadoop-env.sh (hadoop环境配置文件,配置JDK)
顺序:/etc/profile -> 启动hadoop hadoop-env.sh
vi hadoop-env.sh
配置JDK环境
修改如下
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_11
2)core-site.xml (hadoop的公共配置项)
vi core-site.xml
全部放在这个标签里面!
//文件系统访问入口hdfs的访问url:hdfs://namenode节点的主机名/ip:端口号
<property>
<!-- hdfs的主节点 namenode的 访问入口 hdfs://hadoop01:9000 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!-- /hadoop的相关数据存放目录,配置家目录下某个目录 -->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
3)修改 hdfs-site.xml (hdfs的相关配置)
vi hdfs-site.xml
//1.namenode的相关数据存储目录
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的相关数据存储目录</description>
</property>
//2.datanode的相关数据存储目录
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>
//3.HDFS 的数据块的副本存储个数,为随时down机做备份,3个节点给两个就好
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
//4.secondarynamenode 运行节点,和namenode不同节点。帮助namenode来恢复
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4)修改 mapred-site.xml(配置MapReduce相关文件。集群只有 mapred-site.xml.template,可以从这个文件进行复制)
复制语句:cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!--指定MapReduce的资源调度框架,yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)修改 yarn-site.xml
vi yarn-site.xml
//指定yarn主节点
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
//指定yarn上允许运行的主程序
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6)修改 slaves 文件,配置从节点(datanode , nodemanager)
vi slaves
hadoop01
hadoop02
hadoop03
一行一个,不能有多余空格和换行
hadoop02 hadoop03
(6)远程发送hadoop安装包到其他节点
先在hadoop02 和 hadoop03上创建apps文件夹
cd apps
1)JDK安装包
scp -r jdk1.8.0_11 hadoop02:/home/hadoop/apps/
scp -r jdk1.8.0_11 hadoop03:/home/hadoop/apps/
2)Hadoop安装包
scp -r hadoop-2.7.6 hadoop02:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop03:/home/hadoop/apps/
3)/etc/profile (环境变量文件)
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop03:/etc/
只要修改配置文件,都要立即生效:source /etc/profile,全盘执行
(7)在所有节点验证
jdk:java -version
hadoop:hadoop version
(8)格式化文件系统hdfs(只能在主节点执行:hadoop01)
hadoop namenode -format
见到这句话,才算成功。否则先修正错误,再重新格式化!
如果格式化成功,一定不要重新格式化!!
(9)启动
1)文件系统hdfs(任一节点执行皆可以)
start-dfs.sh
在其他节点验证启动,jps
2)操作系统yarn (去yarn节点执行,hadoop03)
start-yarn.sh
3)网页验证
如果进不去则是防火墙没关! 命令:service iptables stop
永久关闭防火墙:chkconfig iptables off
hdfs:http://namenode的主机名:50070
yarn:http://resourcemanager的主机名:8088
(10)关机问题
关闭虚拟机时,先关闭集群,再关机
关闭hdfs:stop-dfs.sh hadoop01下操作
关闭yarn:stop-yarn.sh hadoop03下操作
重启的时候:
关闭防火墙;service iptables stop/sudo service iptables stop
hdfs:start-dfs.sh
yarn:start-yarn.sh