创建虚拟机:
- 点开VMware,在主页中点击创建新的虚拟机;
- 在向导中选择“自定义高级”,然后点击“下一步”;
- 在选择虚拟机兼容性时,直接点击“下一步”;
- 在安装客户机操作系统时,选择“稍后安装操作系统”,然后点击“下一步”;
- 然后选择“Linux”操作系统CentOS 64位,然后点击“下一步”;
- 在命名虚拟机中重命名虚拟机名字和安装路径,然后点击下一步;
- 在处理器配置和设置虚拟机内存时直接默认下一步;
- 在选择网络类型时,选择“NET地址转换”,然后点击下一步;
- I/O类型控制、磁盘类型、选择磁盘、指定磁盘容量、指定磁盘文件、都选择默认下一步;
- 最后显示核心参数,没有问题的即可点击完成,开始创建虚拟机。
虚拟机启动初始化——安装操作系统
- 编辑虚拟机——CD/DVD(IDE)——使用ISO映射文件(选择文件的路径即可);
- 开启虚拟机;
- 语言选择中文简体,点击继续;
- 选择安装位置,点击完成即可(不用修改内容);
- 选择软件选择,选择GNOME桌面;
- 选择网络与主机,打开以太网按钮,将主机名改成之前设置的主机名node-01,点击完成;
- 点击开始安装;
- 安装的同时,点击Root密码设置,设置自己的密码;创建用户(用户名为虚拟机名字,密码与之前的相同),确认完成即可。
- 安装完成之后,点击重启,待虚拟机重新启动完成之后,勾选同意许可证,点击完成配置,输入密码登录;
- 点击鼠标右键,选择终端,进入终端后,递归创建三个文件,用于后期文件放置mkdir -p /export/data mkdir -p /export/servers mkdir -p /export/software;
- 完成创建后,进入export目录下,查看是否有三个文件。
虚拟机克隆(这里采用完整克隆方式)
- 首先确保虚拟机是关闭的状态;
- 将鼠标放在刚刚创建的虚拟机上,右键——管理——克隆;
- 克隆方法选择完整克隆,修改虚拟机名字和安装路径,点击完成即可;
- 同样的方法再克隆一台虚拟机;
- 可以选择创建一个文件夹,将我们创建好的三台虚拟机放进文件夹中(右键——新建文件夹——命名——将虚拟机拖进文件夹)。
网络配置
- 确定本机环境:任务栏——右键——任务管理器——与VMware相关的的任务需要在运行状态;
- 点击VMware任务栏上的编辑——虚拟网络编辑器——选择NAT模式——点击更改设置——继续点击NAT模式——修改最下面的子网IP,统一改成192.168.121.0——点击NAT设置,将网关IP统一修改成192.168.121.2,点击确定——点击DHCP设置,把起始IP地址和结束IP地址修改成121,点击确定——点击应用,待配置完成后,再点击确定;
- 配置本机网络属性:进去电脑设置——网络——以太网——更改设配器选项——选择VMnet8,右键——属性——选择IPv4协议版——选择使用下面的IP地址——设置IP地址(在网段内即可),默认网关需要和第二步设置的网关相同——DNS服务器填写8.8.8.8——完成后点击确定;
- 主机名配置:开启三台虚拟机,登录,打开终端,使用 vi /etc/sysconfig/network修改主机名,修改成一致的(在修改前,确保自己是超级用户,使用su命令),如果文件中没有HOSTNAME,可以手动添加,完成后,保存;
- IP映射配置:使用vi /etc/hosts进入文件,配置ip,ip地址在之前设置的范围之内就可以,192.168.121.134 node-01 192.168.121.135 node-02 192.168.121.136 node-03,完成后保存退出;
- Mac地址配置:使用vi /etc/udev/rules.d/70-persistent-net.rules进入文件,修改Mac地址SUBSYSTEM="net",ACTION="add",DRIVERS="?*",ATTR{address}="",ATTR{type}="1",RERNEL="eth*",NAME="eth0" 注意address地址与本虚拟机的Mac地址相同(右键虚拟机——设置——网络适配器——高级——MAC地址),完成后保存退出;
- 配置静态IP地址:使用vi /etc/sysconfig/network-scripts/ifcfg-ens33进入文件,将BOOTPROTO修改成"static",确保MAC地址一致,添加静态IP,IPADDR=192.168.121.134(每台虚拟机要与IP映射时设置的相同)NETMASK=255.255.255.0 GATEWAY=192.168.121.2 DNS1=8.8.8.8,保存退出;
- 检查配置:使用service network restart重新启动,然后使用ifconfig查看,能够看到我们设置的IP地址,使用ping www.baidu.com能够与百度相连,就表示成功了。
SSH服务配置
- 查看是否安装SSH:使用命令rpm -qa | grep ssh,使用ps -e | grep sshd查看是否已启动SSH服务;
- 使用Xshell连接虚拟器:点开Xshell软件,新建会话,名称为虚拟机的名字,主机为虚拟机IP地址,点击“确定”,登录用户名为root,在输入密码;以相同方法连接另外两台虚拟机;
- 实现三台机器免密登录:先生成公钥私钥:使用命令ssh-keygen -t rsa产生密钥对,默认存放的位置可直接回车,(可以在.ssh/目录下用ls查看产生的密钥哦),使用相同的方法产生另外两个虚拟机的密钥对;拷贝公钥到同一台机器上:使用命令ssh-copy-id node-01复制node-01的公钥,选择yes,输入密码,同理将另外两台的公钥拷贝到node-01上;复制第一台机器的认证到其他机器上:分别在node-01上使用scp /root/.ssh/authorized_keys node-02:/root/.ssh scp /root/.ssh/authorized_keys node-03:/root/.ssh命令拷贝到其他两台机器上;
Hadoop集群部署(完全分布式模式)
- JDK安装:在/export/software/路径下,使用rz回车,选择jdk上传,完成后使用命令tar -zxvf jdk-8u211-linux-x64.tar.gz -C /export/servers/将jdk解压到/export/servers/目录下;对jdk进行重命名:mv jdk1.8.0_211/ jdk;
- 配置jdk环境变量:使用vi /etc/profile打开 /etc/profile文件,再文件中添加export JAVA_HOME=/export/servers/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar保存退出,使用source /etc/profile让文件生效,使用java -version查看jdk版本;
- Hadoop安装:在/export/software/目录下,使用rz-E回车,选择Hadoop上传,完成后使用命令tar -zxvf hadoop-2.7.6.tar.gz -C /export/servers/将Hadoop解压到/export/servers/目录下;
- 配置Hadoop系统环境变量:使用vi /etc/profile打开 /etc/profile文件,再文件中添加export HADOOP_HOME=/export/servers/hadoop-2.7.6 export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH保存退出,使用source /etc/profile让文件生效,使用hadoop version查看hadoop版本。
Hadoop集群配置
- 配置Hadoop集群主节点:先进入到hadoop的安装路径
- 修改hadoop-evn.h,找到java home相关配置,改成jdk安装路径,配置完成后保存退出;
- 修改core-site.xml,配置完成后保存退出;
fs.defaultFS hdfs://hadoop01:9000 hadoop.tmp.dir /export/servers/hadoop-2.7.6/tmp - 修改hdfs-site.xml,配置完成后保存退出;
dfs.replication 3 dfs.namenode.secondaty.http-address hadoop02:50090 - 修改mapred-site.xmll文件,将模板文件mapred-site.xml.template拷贝成mapred-site.xml文件(命令cp mapred-site.xml.template mapred-site.xml),配置完成后保存退出;
mapreduce.framework.name yarn - 修改yarn-site.xml,配置完成后保存退出;
yarn.resourcemanager.hostname hadoop01 yarn.nodemanager.aux-services mapreduce_shuffle - 修改slaves文件,打开该配置文件,先删除里面的内容,在配置node-01 node-02 node-03
- 将集群主节点的配置文件分发到其他主节点上:使用命令scp /etc/profile node-02:/etc/profile
-
scp /etc/profile node-03:/etc/profile scp -r /export/ node-02:/ scp -r /export/ node-03:/分发,完成后,在node-02和node-03上执行source /etc/profile。
-
格式化文件系统
- 初次启动hdfs集群时进行格式话,之后不再进行,使用命令hdfs namenode -format。
启动和关闭Hadoop集群(采用脚本一键启动)
- 在主节点上使用start-dfs.sh指令启动所有的HDFS服务进程(stop-dfs.sh关闭进程);
- 在主节点上使用start-yarn.sh指令启动所有的YARN服务进程(stop-yarn.sh关闭进程);
通过UI界面查看Hadoop运行
- 在window下配置IP映射:在本机C:WindowsSystem32driversetc中修改hosts文件,在文件中添加IP地址映射;
- 在运行之前关闭防火墙:使用service iptables stop关闭防护墙;
- 在浏览器中输入node-01:50070查看结果。
Zookeeper分布式集群部署
- 在/export/software/目录下,使用rz-E回车,选择上传Zookeeper上传,完成后使用命令tar -zxvf zookeeper-3.4.12.tar.gz -C /export/servers/将Zookeeper解压到/export/servers/目录下;
- Zookeeper相关配制
- 进入Zookeeper解压目录conf目录,复制配置文件zoo_sample.cfg并重命名zoo.cfg;修改zoo.cfg文件,设置数据文件目录和数据持久化路径;配置zk集群的服务器编号以及对应主机名、选举端口号和通信端口号,完成后保存退出;
- 创建myid文件:创建zkdata文件夹:mkdir -p /export/data/zookeeper/zkdata;在zkdata文件夹下创建myid文件,该文件里面的内容就是服务器编号;
- 配置环境变量:在/etc/profile 文件中添加export ZK_HOME=/export/servers/zookeeper-3.4.12 Export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
- 分发Zookeeper相关文件至其他服务器上:scp -r /export/servers/zookeeper-3.4.12/ node-02:/export/servers/ scp -r /export/servers/zookeeper-3.4.12/ node-03:/export/servers/;将myid分发并分别修改为2,3:scp -r /export/data/zookeeper/ node-02:/export/data/ scp -r /export/data/zookeeper/ node-03:/export/data/,修改myid的值,到node-02,进入/export/data/zookeeper/zkdata/,将myid的值修改为2,同理修改node-03;将profile文件分发:scp /etc/profile node-02:/etc/profile scp /etc/profile node-03:/etc/profile;
- 分别在三台服务器上刷新profile配置文件:source /etc/profile;
- 启动Zookeeper服务:依此在三台服务器上启动Zookeeper服务:zkServer.sh start (关闭服务zkServer.sh stop)。
- 配置Hadoop高可用集群
- 修改core-site.xml文件
fs.defaultFS hdfs://ns1 hadoop.tmp.dir /export/servers/hadoop-2.7.6/tmp ha.zookeeper.quorum node-01:2181,node-02:2181,node-03:2181 - 修改文件hdfs-site.xml
dfs.replication 2 dfs.namenode.name.dir file:/export/data/hadoop/name dfs.datanode.data.dir file:/export/data/hadoop/data dfs.webhdfs.enabled true dfs.nameservices ns1 dfs.ha.namenodes.ns1 nn1,nn2 dfs.namenode.rpc-address.ns1.nn1 node-01:9000 dfs.namenode.http-address.ns1.nn1 node-01:50070 dfs.namenode.rpc-address.ns1.nn2 node-02:9000 dfs.namenode.http-address.ns1.nn2 node-02:50070 dfs.namenode.shared.edits.dir qjournal://node-01:8485;node-02:8485;node-03:8485/ns1 dfs.journalnode.edits.dir /expoer/data/hadoop/journaldata dfs.ha.automatic-failover.enabled true dfs.client.failover.proxy.provider.ns1 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence shell(/bin/true) dfs.ha.fencing.ssh.privata-key-files /root/.ssh/id_rsa dfs.ha.fencing.ssh.connect-timeout 30000 - 修改文件mapred-site.xml
mapreduce.framework.name yarn - 修改文件yarn-site.xml
yarn.nodemanager.resource.memory-mb 2048 yarn.scheduler.maximum-allocation-mb 2048 yarn.nodemanager.resource.cpu-vcores 1 yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id yrc yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 node-01 yarn.resourcemanager.hostname.rm2 node-02 yarn.resourcemanager.zk-address node-01:2181,node-02:2181,node-03:2181 yarn.nodemanager.aux-services mapreduce_shuffle - 修改文件slaves node-01 node-02 node-03
- 修改hadoop-env.sh :export JAVA_HOME=/export/servers/jdk
- 将配置好的文件分发给另外两台服务器:scp -r hadoop-2.7.6/ node-02:/export/servers/ scp -r hadoop-2.7.6/ node-03:/export/servers/
- 修改core-site.xml文件
启动Hadoop高可用集群
- 启动集群各个结点的Zookeeper服务:cd /export/servers/zookeeper-3.4.12/bin ./zkServer.sh start
- 启动各个节点监控:hadoop-daemon.sh start journalnode
- 在node-01节点上格式化NameNode,并将格式化的目录复制到node-02中:hadoop namenode -format;scp -r /export/data/hadoop node-02:/export/data/
- 在node-01上格式化ZKFC:hdfs zkfc -formatZK
- 在node-01上启动HDFS:start-dfs.sh
- 在node-01上启动YARN:start-yarn.sh
所用软件及部分版本:CentOS 7.6.1810
hadoop-2.7.6
jdk-8u211-linux-x64.tar.gz
Xshell
VMware
WinSCP
ZooKeeper 3.4.12



