1、安装VMWare Workstation略过
【注意】VMWare Workstation服务需要启动:
2、安装操作系统
本次演示使用的是默认的操作系统为:centos7,操作系统安装过程略过。
3、需要准备的环境包:
机器:虚拟机3台
JDK:1.8
Hadoop:2.6.0
Hadoop下载地址:[http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/
4、检查VMWare Workstations网络配置
【图1】点击虚拟网络编辑:
【图2】选择NAT模式,剪辑NAT设置
【图3】记住圈红的位置
5、Linux安装后需要检查的项
此处网络配置器的选项必须是NAT模式
如需要改:
点击编辑虚拟机设置
选择网络适配器,更改为NAT模式,点击确定按钮关闭窗口,至此:虚拟机加基础设置完成。
框架介绍:
IP | 进程 |
---|---|
192.168.206.110 | master、namenode、jobtracker |
192.168.206.120 | slave1、datanode、tasktracker |
192.168.206.130 | slave2、datanode、tasktracker |
6、开启虚拟机,配置ip及节点信息,关闭防火墙,添加Hadoop用户:
进入网络配置文件夹下:命令:
cd /etc/sysconfig/network-scripts/
ifcfg-ens333即是我们需要配置的文件
使用vi或者vim打开文件:能看到如下相识的信息,使用按键i或者insert进行文件操作
【注】如果提示vi或者vim不存在,使用yum install vim -y 或者 yum install vi -y 进行vim 或者vi软件安装
上下图对比,必须保持和下图的配置一致,ip根据说明进行处理。操作后的结果:
DNS1表示我们使用网关作为本地的dns地址,DNS2使用的免费的dns地址。
重启后检查网络畅通:使用ping命令进行网络检测,如下则是网络畅通:
关闭防火墙:
Centos7查看防火墙命令:
systemctl status firewalld.service
Centos7关闭命令:
systemctl disable firewalld.service
Centos7查看防火墙命令:
service iptables status
Centos7关闭命令:
service iptables stop
chkconfig iptables off
7、修改主机名称和映射地址
Centos7中提供一个工具进行主机名修改
hostnamectl set-hostname 需要修改的主机名
Centos6中修改/etc/sysconfig/network 文件
使用命令:
vim /etc/sysconfig/network
// 或者
vi /etc/sysconfig/network
修改好 hostname的值为你要修改的主机名
进行主机映射使用vim编辑命令:
vim /etc/hosts
8、同步时间
查看系统时间设置:
使用date命令
核对虚拟机系统时间是否和本机时间一致,如果不一致,需要同步时间和本机一致:
使用的命令如图所示:
1 | cd /usr/share/zoneinfo/Asia/ | 进入文件夹 |
---|---|---|
2 | ls | 查看文件夹里面的文件 |
3 | cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | 复制上海的市区信息到 /etc/loclatime文件夹下 |
如果需要提示覆盖文件信息,输入yes回车进行覆盖 |
同步时间设置:
a,安装时间同步工具:ntp,命令:
yum install ntp -y
9、免密登录
切换用户为普通用户
在用户根路径下创建.ssh文件夹,命令:
cd /root/master mkdir .ssh
生成ssh秘钥:ssh-keygen -t rsa 一直回车
验证结果:cd .ssh
在.ssh文件夹下进行免秘钥生成并修改文件权限,命令:
cat id_rsa.pub >> authoryzed_keys
ls
文件权限修改:
在其他所有节点尽心上述同样操作;用户也是之前创建的master用户,将文件生成的授权命令传递到masternode节点:使用scp将masternode的文件发送到其他节点:
ssh通道构建完成。
10、安装jdk
使用root用户配置:
下载jdk地址:http://www/oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
按照下图加载jdk:
将下载后的jdk安装包上传到服务器的root目录下:
将jdk-8u191-linux-x64.tar.gz压缩包下载移动到/opt路径下:
使用tar命令在路径下压缩jdk安装包:
使用ls查看解压结果:
配置环境变量:
使用vi或者vim编辑/etc/profile文件
移至光标最后一行:
进行环境配置:
配置结果如上:其中JAVA_HOME就是jdk的解压路径。
使用命令source使配置生效并验证:
source /etc/profile
java -version
JDK 配置完成
【注】在后续的操作中,使用的均是hadoop用户。如需要使用root,会做特殊说明。
上传&配置hadoop(配置完master后,将、/url/local/software/整个目录内容copy带其他机器)
1)、创建目录:
mkdir /usr/local/software/hadoop
2)、上传hadoop包装hadoop-2.9.0.tar.gz到 /usr/local/software/hadoop/
3)、解压:
tar -zxvf hadoop-2.9.0.tar.gz
4)、追加环境变量vi /etc/profile(其它机器也要相应配置一次hadoop环境变量)
# hadoop environment
export HADOOP_HOME=/usr/local/software/hadoop/hadoop-2.9.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
5)、使环境变量生效:
source /etc/profile
6)、确认环境变量配置OK:
7)、创建HDFS存储目录:
cd /usr/local/software/hadoop
mkdir hdfs
cd hdfs
mkdir name date tmp
/usr/local/software/hadoop/name --存储NameNode文件–
/usr/local/software/hadoop/data --存储数据–
/usr/local/software/hadoop/tmp --存储临时文件–
8)、修改/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME为实际路径
否则启动集群时,会提示路径找不到
9) 修改/usr/local/software/hadoop/hadoop-2.9.0 /etc/hadoop/yarn-env.sh文件,设置JAVA_HOME为实际路径:
10) 配置/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml
增加hadoop.tmp.dir 和 fs.default.name
11) 配置/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml
dfs.replication:默认值3
dfs.permissions:默认值为true,设置为true有时候会遇到数据因为权限访问不了;设置为false可以不要检查权限就生成dfs上的文件
12) 配置/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml
cd /usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
mapreduce.framework.name:指定mapreduce运行在yarn平台,默认为local
13) 配置/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml
yarn.resourcemanager.hostname:指定yarn的resourcemanager的地址
yarn.nodemanager.aux-services:reducer获取数据的方式
yarn.nodemanager.vmem-check-enabled:意思是忽略虚拟内存的检查,如果安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是在实体机上,并且内存够多,可以将这个配置去掉
14) 配置/usr/local/software/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,将里面的localhost删除,配置后内容如下:
15) copy整个/usr/local/software/hadoop/目录到其它机器
scp -r hadoop root@slave1:/usr/
scp -r hadoop root@slave2:/usr/
启动Hadoop
1) 启动之前需要格式化一下。因为master是namenode,slave1和slave2都是datanode,所以在master上运行
hadoop namenode -format
格式化成功后,可以看到在/usr/local/software/hadoop/hdfs/name目录下多了一个current目录,而且该目录下有一系列文件,如下:
2) 执行启动(namenode只能在master上启动,因为配置在master上;datanode每个节点上都可以启动)
执行 start-all.sh
master上执行jps,会看到NameNode, SecondaryNameNode, ResourceManager
其它节点上执行jps,会看到DataNode, NodeManager
3) 在wins上打开网页,查看HDFS管理页面 http://192.168.0.104:50070查看,提示无法访问
在master上,执行以下命令关闭防火墙,即可访问(为了能够正常访问node节点,最好把其它机器的防火墙也stop了)
systemctl stop firewalld.service
HDFS管理首页
HDFS Datenodes页
访问Yarn管理页: http://192.168.206.100:8088
4)通过主机名也可以访问的设置
win7为例,需要将以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中
192.168.206.100 master
192.168.206.120 slave1
192.168.206.130 slave2
Over!!!搭建成功!!!
- 运行实例
cd /usr/local/hadoop/hadoop-2.9.0/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.9.0.jar pi 5 10
END!