Hadoop集群搭建
服务器配置以及JDK的安装
硬件准备
(1)硬件准备
服务器准备:VMware12/10/14
CentOS6.8 下载网址:http://vault.centos.org/
(2)网络环境准备:
NAT方式:不需要做任何网络设置,只要宿主主机上网即可上网
IP地址,子网掩码,网关,DNS(外网)
LINUX系统环境准备:
修改主机名: vim /etc/sysconfig/network
修改HOSTNAME=自定义
reboot
配置主机IP地址:
三种方式:
(1)修改配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改:
BOOTPROTO=改为"static"
添加:
IPADDR=192.168.19.136
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
DNS1=192.168.19.2
(2)图形界面:编辑里设置(修改IP地址,子网掩码,网关,DNS)
(3)setup方式:
在命令终端输入 setup, 选择“Network Configuration” ,然后按回车键,选择“Device Configuration”,按回车键,选中“eth0”,按回车键。
修改完重启网络:serevice network restart
检查:ifconfig
关闭防火墙:
检查防火墙状态:service iptables status
关闭防火墙:service iptables stop
开机不启动:chkconfig iptables off
添加内网域名:
修改配置文件:vim /etc/hosts 格式:IP 主机名
同步网络时间:
修改时区:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步网络时间:ntpdate cn.pool.ntp.org
查看当前时间:date 或者date —R
在root用户下:yum -y install lrzsz
转换为普通用户安装jdk:
(1)准备软件:jdk-8u73-linux-x64.tar.gz
(2)把软件传到 Linux 服务器上去(我的上传目录是/home/theone/Desktop/software)
(3)把软件解包解压缩到当前目录下,使用命令:tar -zxvf jdk-8u73-linux-x64.tar.gz
(4)配置环境变量,使用命令:vim /home/theone/.bash_profile在最后加入两行信息;
export JAVA_HOME=/home/theone/Desktop/software/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
(5)让配置文件立即生效,使用命令:
source /home/theone/.bash_profile
(6)检测JDK是否安装成功,
使用命令:java -version
如果检测出java版本信息则配置成功
查看cpu使用状况: free, free -g
关闭虚拟机开启时有界显示:
vim /etc/inittab 最后一行init5改为3 执行init 3 reboot一下
ssh免密登陆
进入普通用户
1 su 普通用户名
2 cd
3 ls -a
4 cd .ssh/
5 ssh-keygen 建立密钥对 默认rsa形式 (ssh-keygen -t 类型)
6 cp id_rsa.pub authorized_keys 将密钥对复制到授权列表
7 chmod 600 authorized_keys 更改为只准自己可读可写的模式
8 scp authorized_keys theone@hadoop01:/home/theone/.ssh/方法一:使用scp远程传输到搭建的服务器上
9 scp authorized_keys hadoop02:$PWD 方法二:相同主机名引用环境变量到服务器相同目录下
10 ssh 主机名 登录到不同的服务器上
11 进入.ssh下
12 ssh-keygen
13 cat id_rsa.pub >> authorized_keys 追加到authorized_keys
14 chmod 600 authorized_keys
15 scp 传输到其他两部虚拟机
16 在另一台虚拟机重复10–15
Hadoop2.6.5-分布式集群搭建
1.集群简介
Hadoop集群:
HDFS集群:
NameNode(老大)
DataNode(小弟)
负责海量数据的存储
YARN集群
YARN集群:ResourceManageer(老大)
NodeManager(小弟)
负责海量数据运算时的资源调度
MapReduce不是一个集群,它是一个应用开发包
集群规划:
hostname HDFS YARN
master NameNode+DataNode(主节点) NodeManager+ResourceManager
hadoop01 DateNode+secondarynamenode NodeManager
hadoop02 DateNode NodeManager
2.安装包准备(普通用户下)
(1)准备安装包:hadoop-2.6.5.tar.gz
(2)上传到Linux服务器上去(我的上传目录是/home/theone/Desktop/software)
(3)解压:tar -zxvf hadoop-2.6.5.tar.gz
3.主要配置文件讲解
cd Desktop/software/hadoop-2.6.5/etc/hadoop/
1.配置环境变量hadoop_env.sh
vim hadoop-env.sh
jdk路径:/home/theone/Desktop/software/jdk1.8.0_73/
2.配置核心组件core-site.xml
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/theone/hadoopData/temp</value>
</property>
3.配置文件系统hdfs-site.xml
Namenode存放元数据和日志位置
DataNode存储数据的目录
数据块副本的数量 最好时虚拟机数量减一
SecondaryNameNode安装节点和默认的web管理端口
vim hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/theone/hadoopData/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/theone/hadoopData/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop01:50090</value>
</property>
4.配置计算框架mapred-site.xml
-
指定使用yarn运行Map Reduce程序,默认为local(单机)
vim mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
5.配置yarn系统 yarn-site.xml
指定yarn集群的老大所在的节点
NodeManager上运行的附属服务,也可以理解为reduce获取数据的方式
vim yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6.配置slaves文件
指定集群中所有DateNode节点
vim slaves
master
hadoop01
hadoop02
4.分发到从节点
scp -r /home/theone/Desktop/software/hadoop-2.6.5 hadoop01:$PWD
scp -r /home/theone/Desktop/software/hadoop-2.6.5 hadoop02:$PWD
5.配置Hadoop系统环境变量
1.需要在每个节点上都进行配置:
vim /home/theone/.bash_profile
2.添加Hadoop的安装目录
export HADOOP_HOME=/home/theone/Desktop/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.立即成效
source /home/theone/.bash_profile //立即执行
hadoop version //检查是否安装成功
6.启动Hadoop集群
1.初始化文件系统
该操作需要在主节点master上执行: hdfs namenode -format
出现: has been successfully formatted 表示成功
如果出现: Exception ,出问题
2.启动HDFS集群: start-dfs.sh
3.启动YARN集群: start-yarn.sh
4.验证:
1,执行jps命令:
2,web UI 界面:
查看HDFS集群信息:
web管理界面地址是 http://192.168.19.130:50070
或者 http://master:50070 (windows/system32/drivers/etc/hosts中写入ip和主机名)
namenode节点:50070
查看MapReduce运行状态信息:
web管理界面地址是 http://192.168.19.130:8088
或者 http://hadoop01:8088
ResourceManager的节点: 8088
3.命令验证
查看集群状态:
hdfs dfsadmin -report
检查YARN集群,使用提交 Map Reduce例子程序的方法进行测试
cd Desktop/software/hadoop-2.6.5/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 10 10
检查HDFS集群,使用命令:
hadoop fs -ls /
hadoop fs -ls hdfs://master:9000/
浏览器进入master:50070 Untilities/Browse the file system
5.补充说明
单步启动进程:
hadoop-daemon.sh start datanode
hadoop-daemon.sh start namenode
hadoop-daemon.sh start secondarynamenode
yarn-daemon.sh start nodemanager
yarn-daemon.sh start resourcemanager
windows下配置主机映射 :
windows/system32/drivers/etc/hosts中写入ip和主机名
HDFS初始化目录结构:
在搭建Hadoop集群时使用如下命令初始化文件系统:
hdfs namenode -format(只是初始化NameNode)
NamdNode在format初始化时形成两个标识:
clusterID:集群ID
blockpoolID:数据块池ID
新的DateNode加入时,会获取这两个标识作为自己工作目录中的标识
NameNode工作目录的VERSION内容: cat VERSION
对应的DateNode工作目录中的VERSION内容:
cd hadoopData/data/current/
ls
cat VERSION
一旦NameNode重新format后, NameNode 的身份标识已变,而 DataNode 如果依然持有原来的 clusterID,就不会被 NameNode 识别。
6,多次格式化的结果: DataNode启动不成功。解决分案:
方法一:删除所有节点的NameNode和DataNode工作目录,重新格式化
方法二:将DataNode工作目录中的clusterID修改成NameNode工作目录中的clusterID,之后启动DataNode