1.软件及版本
a.VMware Workstation Pro
b.CentOS-6.8-x86_64-minimal
c.hadoop-2.7.3.tar
d.jdk-8u91-linux-x64
e.XShell5
f.Xftp5
2.安装VMware
和正常软件一样双击安装
输入序列号
http://www.epinv.com/post/6304.html
3.配置虚拟机
安装注册完成后打开VMware进行虚拟网络的相关设置
注意圈出的地方,接下来是新建一个虚拟机
注意安装位置,虚拟机还是很占内存的,建议放在非系统盘
磁盘大小不用纠结,不会占用你全部设置的大小,建议写大一点。这样一个裸机就建立完成了,下面要安装系统。
一定要注意选取启动时连接!单机确定完成这一步。接下来安装操作系统
4.安装操作系统
进入虚拟机,鼠标会消失,按住 CTL+ALT就可以显示鼠标。
5.网络设置
本次配置集群用到的LINUX命令如下(老手直接略过):
指定IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
照着下面的图敲,注意HWADDR UUID每个机器是不同的
配置dns解析
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
设置主机名称
vi /etc/sysconfig/network
主机名地址映射
vi /etc/hosts
重启网络服务
service network restart
测试网络
输入任意网址,可以连接上就可以了
注意
这时,虚拟机并没有安装文本编辑器需要下载安装,命令如下
yum install vim -y (耐心等待 三分钟左右完成)
这时网络环境已经配置完成
6.安装配置Xshell 5 Xftp5
Xshell是远程登录软件,和直接在虚拟机上操作一样,只是操作方便且有附加功能。
Xftp用于WINDOWS和LINUX之间文件传输
安装比较简单和QQ等常用软件类似,不占用篇幅,只介绍配置。
配置Xshell
7.安装JDK HADOOP
安装JDK
1.进入文件目录:cd /usr/local
2.解压JDK:rpm -ivh ./jdk-8u91-linux-x64.jdk
3.输入java验证安装是否成功
4.配置环境变量:vim /etc/profile
```
JAVA_HOME=/usr/java/jdk1.8.0_91
JRE_HOME=/usr/java/jdk1.8.0_91/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
```
5.使环境变量生效
```
source /etc/profile
```
安装HADOOP
1.进入文件目录:cd /usr/local
2.解压HADOOP:tar –xvf ./hadoop-2.7.3.tar.gz
3.修改目录名称:mv hadoop-2.7.3 hadoop
4.修改hadoop-env.sh:vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改export JAVA_HOME 语句为 export JAVA_HOME=/usr/java/default
5.修改环境变量:vi /etc/profile
最后加上:export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
6.使环境变量配置生效:source /etc/profile
7.在任意目录测试hadoop命令 观察是否安装成功
8.关闭虚拟机复制3份
9.开机后参照之前的步骤各自配置网络,主机名
注意:
配置hosts文件时每一个节点的IP以及hostname都要加上
ip分配如下
VMware克隆后,重启网络会出现问题,
解决方案如下:
首先,打开/etc/udev/rules.d/70-persistent-net.rules内容如下面例子所示:
# vi /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:8f:89:97", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:50:bd:17", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
记录下,eth1网卡的mac地址00:0c:29:50:bd:17
接下来,打开/etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
将 DEVICE="eth0" 改成 DEVICE="eth1" ,
将 HWADDR="00:0c:29:8f:89:97" 改成上面的mac地址 HWADDR="00:0c:29:50:bd:17"
最后,重启网络
# service network restart
正常了。
10.集群配置
1.配置core-site.xml
在所有的节点上都应该修改:vim /etc/hadoop/core-site.xml
2.配置hdfs-site.xml
仅在master节点上配置
3.格式化HDFS
输入:hdfs namenode -format
11.启动集群
在master上:hadoop-daemon.sh start namenode
在slave上:hadoop-daemon.sh start datanode
分别各自输入JPS可以观察到:
出现以上的现象说明集群配置好了 关闭集群
hadoop-daemon.sh stop master(slaveX)
12.集中管理集群及免密钥登录
集中管理集群
修改master上slaves文件,每一个slave占一行
vim /usr/local/hadoop/etc/hadoop/slaves
免密钥登录配置
在slave上:
1.cd .ssh
2.ssh-keygen -t rsa (按四下回车)
在目录下会出现私钥id_rsa和公钥id_rsa.pub
3.ssh-copy-id slave2 ;ssh-copy-id slave2 ;ssh-copy-id slave3 ;ssh-copy-id master
把生成的公钥copy到所有的节点上(包括master)。
在目录下会生成 authorized_keys 文件,这样就可以实现免密钥登录
用ssh X 测试。
启动集群
在master上:
启动集群:start-dfs.sh
停止集群:stop-dfs.sh