目录
一、 需要用到的主要东西 4
(1)配置环境 4
(2)配置设置 4
二、 装虚拟机 4
三、 配置静态网络,关闭防火墙 8
操作主机master: 8
- 设置静态IP 8
2.关闭防火墙 12
四、配置主机名,编辑hosts文件 14
1.配置机器名 14
2.配置hosts文件 14
五、使用SSH(Secure Shell)传输文件 16
六、配置SSH免密登录 18
七、 配置时间同步 19
八、 解压jdk包和hadoop包并安装jdk 20
九、 修改hadoop配置文件 21
1.hadoop-env. Sh 21
2.yarn-env.sh 22
3.core-site.xml 22
4.hdfs-site.xml 23
5.mapred-site.xml 24
6.yarn-site.xml 24
7.slaves 25
十、 配置hadoop的系统环境变量及创建目录 25
1.配置系统环境变量: 25
2.创建数据目录 26
十一、 Hadoop格式化 26
十二、 启动hadooop 27
1.使用start-all.sh启动Hadoop集群 27
2.Web UI查看集群是否成功启动 28
一、需要用到的主要东西
(1)配置环境
虚拟机管理软件:VMware
系统:CentOS 7
ssh软件:Xshell 7
Hadoop版本:2.7.7
jdk版本:jdk8
(2)配置设置
配置为一个主机master ,两个从机s1,s2
二、装虚拟机
装虚拟机前先确认虚拟机网络配置:打开VMware,点击左上角第二个选项编辑,打开虚拟网络编辑器
点击 VMnet8 勾选上 使用本地dhcp服务将IP地址分配给虚拟机(一般默认已勾选)安装时自动给虚拟机分配(动态)地址 确保网络配置不出问题 后面在取消勾选,动态地址修改成静态地址
确认完虚拟机网络配置后,创建新的虚拟机,安装CentOS-7-x86_64-DVD-2009.iso的系统,(先建立主机master)虚拟机名称master,磁盘大小稍微改大一点
一般选用网络适配器:NAT
NAT可用到动态分配地址功能(推荐使用NAT模式)
安装虚拟机时 鼠标隐身 键盘按Ctrl+Alt键 恢复鼠标
安装位置需要自己手动点击 然后点完成
网络和主机名点击进入
将以太网(ens33)设置成打开(机子差异不一定都是ens33)
软件选择(最小安装)
LINUX操作系统原始状态 无任何额外软件 LINUX操作系统本身无桌面
也可以选择GNOME桌面选项 安装一个带桌面的LINUX操作系统(占运行内存)
ROOT密码一定要设置 (记住密码)
重启后,进入该虚拟机
Login输入用户名,推荐使用用户名root登录,如果创建了用户可以使用用户用户命但是权限有限制,很多东西做不了
Password输入密码,LINUX控制台下输入密码,不会回显(不会显示有密码在输入) 输入后,按回车
同样上述步骤配置安装从机s1和s2
注意修改虚拟机名称分别为s1和s2
三、配置静态网络,关闭防火墙
把网络IP从动态配置成静态,因为几台机子之间要互相通信,需要用到IP地址,例如master向s1通信需要知道s1的IP地址,事先需要将s1的IP地址存在master中,master才能够从s1的IP地址找到s1 ;如果s1是动态地址s1重启后IP地址可能就改变,原本存在master中的s1的IP地址就没有作用了,导致master找不到s1他们之间就不联通了,把s1的IP地址从动态设置成静态,s1的IP地址就不会改变了,不会有丢失连接的情况,方便很多。
操作主机master:
1.设置静态IP
先检查网络是否正常,ping命令是检测连接该IP地址延迟,检测网络连接的有效手段,连了网才能去检测延迟
输入以下命令
Ping www.baidu.com
键盘按Ctrl+c键退出该命令
目的:如果不知道网络是否联通情况下就去配置静态IP,有可能到最后配置完网络不联通, 但是之前没有测过虚拟机网络是否可以联通,导致问题不清楚,这个网络不联通是配置过程中操作不当还是本身虚拟机问题,错误原因难排查
安装虚拟机前没有打开网络连接,网络是关闭的,要输入以下命令打开网络
service network restart
再去ping www.baidu.com,测试网络是否联通
进入网络配置文件
输入以下命令
先进入etc文件夹(使用绝对路径 cd / ):cd /etc
然后再进入sysconfig文件夹(使用相对路径 cd 不加/,在etc目录基础上进入):cd sysconfig
然后再进入network-scripts文件夹:cd network-scripts
然后查看该文件夹下的所有文件(不同计算机可能文件命名不同)
输入命令ls或ll(文件详细信息)
查看是否有文件为:ifcfg-ens33(不同计算机可能不相同 之前打开网络连接时 以太网右边括号的内容)
ls:
ll(文件详细信息):
使用vi编辑器打开ifcfg-ens33文件编辑
按键盘i键进入编辑模式
将BOOTPROTO=”dhcp”修改成BOOTPROTO=”static”
将ONBOOT该项修改成ONBOOT=”yes”
额外设置:
IPADDR(IP地址):
设在跟机器(跟宿主机同一个网段)同一个网段,通过查看VMware-编辑-虚拟网络编辑器-VMnet8-子网IP跟宿主机同一个网段,前三”.”位相同,最后一位自由填
NETMASK(子网掩码):
通过查看VMware-编辑-虚拟网络编辑器-VMnet8-子网掩码
GATEWAY(网关)(绝对不能填错,否则上不了网,IP填错可能可以上网,但是跟宿主机不在同一个网段,虚拟机跟宿主机不能联通) :
通过查看VMware-编辑-虚拟网络编辑器-更改设置-VMnet8-取消勾选“使用本地DHCP服务将IP地址分配给虚拟机”(不使用其动态地址,用静态地址)-NAT设置-查看网关IP
DNS(可设置一个,也可以设置两个,第二个是备用,一般设置成宿主机DNS,也可以用公共DNS,宿主机联网,虚拟机DNS用宿主机DNS基本能用起来):
ifcfg-ens33文件编辑为:
退出编辑模式:
键盘按Esc键盘
键盘再按Shift+i键盘
输入wq保存并退出
启用网络,输入命令:service network restart
测试网络是否联通:Ping www.baidu.com
2.关闭防火墙
机子间要联通,防火墙保护计算机安全,外来请求,防火墙挡下请求,不让外来计算机连入防火墙内计算机,防火墙内计算机不能被其他计算机连接,那么防火墙内的计算机就是安全的,防火墙原理。
计算机集群要求各计算机之间能互相连接,要关掉防火墙。
关闭防火墙:
输入命令:systemctl stop firewalld
输入命令:systemctl disable firewalld
查看防火墙状态:
输入命令:systemctl status firewalld
Active:inactive(dead)表明防火墙已关闭
VMware中编辑虚拟网络编辑器设置VMnet8不生效(可能无管理员权限)
ssh连接虚拟机连接不上,需手动配置
打开“网络和Internet设置”-点击“更改适配器”-VMnet8右键查看属性-点击IPv4协议-打开“属性”-配置“使用下面的IP地址”
各参数配置与之前配置ifcfg-ens33文件相应参数相同
从机s1、s2复制上述操作
设置IP地址时 一定要保证每个虚拟机上IP地址要独立 不要一样
四、配置主机名,编辑hosts文件
1.配置机器名
配置机器名给Linux系统起个名称,跟虚拟机名称不一样
输入命令:hostnamectl set-hostname master 第三个参数输入取的机器名称
重启配置才能生效
输入命令:reboot
2.配置hosts文件
给各IP地址取名字作用:如果master与s1联通时得先存有s1的IP地址,不以取名方式存IP地址,master ping s1时就要输入全部的s1的IP地址,给s1的IP地址取了名字,ping时可输入取的IP地址的名字s1;方便,意思明确。
用vi编辑器打开编辑
输入命令:vi /etc/hosts
从机s1、s2重复上述操作
检测主机与从机能否相互ping通,从机与从机能否相互ping通
master ping s1,s2
s1 ping master,s2
s2 ping master,s1
五、使用SSH(Secure Shell)传输文件
在两台机之间搭一个桥梁 使两台机之间可以互传文件(hadoop,jdk8)
ssh软件:Xshell 7
宿主机与虚拟机连接,以master为例
先在宿主机上ping虚拟机master
再从虚拟机master上ping宿主机
确保两台计算机相互连接才能正常使用Xshell7
打开软件Xshell7,新建会话-名称填master-主机填master的IP 地址-点击连接-接受密钥-登录用户名(root)-填Password
Xshell7登录上该虚拟机,相当于远程操控虚拟机
宿主机与虚拟机互传文件需先安装传文件工具
输入命令:yum install lrzsz -y
安装完毕后,输入命令:rz
选择 hadoop和jdk压缩包,传到虚拟机master
输入命令ls检测虚拟机master是否成功传入文件
六、配置SSH免密登录
Hadoop运行过程中需要管理远端Hadoop守护进程,启动后,NameNode是通过SSH(Secure Shell)来无密码登录启动和停止各个DataNode上的各种守护进程的。同理DataNode上也能使用SSH无密码登录到NameNode。
一般情况下,只需要从master单向SSH到slave
从master开始
输入命令:ssh-keygen -b 1024 -t rsa 一路回车
在~/.ssh/下生成文件 id_rsa、id_rsa.pub
输入命令ls -all查看.ssh文件
再进入.ssh文件夹,输入ls查看文件id_rsa、id_rsa.pub
ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中
输入命令:ssh-copy-id IP地址
master免密登录s1
同理免密登录s2和master(本机)
会生成authorized_keys文件, ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_keys.文件中
使用Vi编辑器查看authorized_keys文件
设置权限
不改权限可能master登录到s1和s2时还是需要密码
输入命令:chomd 600 authorized_keys
七、配置时间同步
保证几台机子间的时间同步
自动定时同步(设置系统定时任务)
—crontab -e
— 0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
— 分 时 日 月 周 命令 参数
时间不同步,差异很大,发送请求可能超时
八、解压jdk包和hadoop包并安装jdk
解压jdk包:
输入命令:tar -xzvf jdk-8u171-linux-x64.tar.gz
解压hadoop包:
输入命令:tar -xzvf hadoop-2.7.7.tar.gz
输入ls查看是否解压成功
配置jdk
使用vim编辑器编辑.bash_profile
添加安装jdk目录的路径
配置完成要source .bash_profile
测试下java命令
s1,s2上的jdk直接从master复制过去
按序执行下面两条命令:
scp -r jdk1.8.0_171 root@s1:~/
scp -r jdk1.8.0_171 root@s2:~/
九、修改hadoop配置文件
只需要在master上做,拷贝到从机s1和s2上
修改文件在hadoop下
均使用vim编辑器配置
1.hadoop-env. Sh
该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。
2.yarn-env.sh
该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。
3.core-site.xml
这个是hadoop的核心配置文件,这里需要配置的主要两个属性,
fs.defaultFS配置了hadoop的HDFS系统的命名,位置为主机namenode的9000端口;
hadoop.tmp.dir配置了hadoop的tmp目录的根位置。需要新建一个hadoopdata目录
fs.defaultFS一般给两台主机(master)以上用,而且两台主机是高可用的配置,单节点(单主机)用fs.default.name
hdfs://master设定主机名,可填maste也可填192.168.77.10(主机IP地址)
9000是端口
下面的标签是指定目录存hadoop运行产生的临时文件
4.hdfs-site.xml
这个是hdfs的配置文件,dfs.namenode.name.dir配置namenode数据存放位置,dfs.datanode.data.dir配置datanode数据存放位置
dfs.replication配置了文件块的副本数,一般不大于从机的个数。
value标签里的数值表示了几份副本。
5.mapred-site.xml
先重命名mapre-site.xml.template文件为mapred-site.xml文件
输入命令:mv mapre-site.xml.template mapred-site.xml
取值local、classic或yarn其中之一,如果不是Yarn,则不会使用Yarn集群来实现资源的分配。
指明Hadoop的MR将来运行于Yarn上。Yarn为资源调度系统。
6.yarn-site.xml
该文件为yarn框架的配置,主要是一些任务的启动位置
(resourcemanager)资源管理者,设成主机名
7.slaves
该文件里面保存所有slave节点的信息(说明:slaves文件中可以写ip地址,也可以写成/etc/hosts里从机的主机名,任选一种即可)
把主机master中配置好的hadoop文件夹拷贝到从机s1
同样的方法把主机master中配置好的hadoop文件夹拷贝到从机s2
十、配置hadoop的系统环境变量及创建目录
1.配置系统环境变量:
在master上演示
用vim编辑器追加代码到.bash_profile末尾
编辑完,要source .bash_profile文件才能生效
2.创建数据目录
输入命令:mkdir /root/hadoopdata
ls命令查看是否成功创建hadoopdata文件
十一、Hadoop格式化
只能格式化一次,多次格式化可能导致namenode或datanode启动不了或者其他问题,可能需要更换namenode或datanode配置目录或者其他解决方案
格式化命令:hdfs namenode -format
该命令在master上执行
十二、启动hadooop
1.使用start-all.sh启动Hadoop集群
输入jps命令检测是否启动成功
运行PI实例检查集群是否成功
2.Web UI查看集群是否成功启动
宿主机windows下载安装Xmanager7
在master上输入命令:yum -y install firefox安装火狐
配置X11
通过修改操作系统/etc/ssh/sshd_config配置文件,将X11Forwarding no 改为 X11Forwarding yes。
还有其他被注释的配置相关参数也启用
下载安装xorg-x11-xauth的rpm包
命令:yum install xorg-x11-xauth
下载安装xclock小程序,检验系统GUI
命令:yum install xclock
重启ssh服务
命令:systemctl restart sshd
测试运行xclok,若运行失败,重启主机master
再重新测试xclok
在Hadoop上启动Firefox浏览器,在浏览器地址栏中输入http://master:50070/,检查namenode和datanode是否正常。UI页面如下图所示。
在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入http://master:8088/,检查Yarn是否正常。页面如下图所示。