虚拟机配置及克隆--Hadoop学习笔记

it2025-11-20  15

Hadoop概述

Hadoop2.X组成

Hadoop包括Common、HDFS、Yarn、MapReduce

Common辅助工具HDFS数据存储 NameNode:存储文件元数据,可以理解为目录DataNode:本地文件系统存储文件块数据,即实实在在的数据SecondaryNameNode:监控HDFS状态的辅助后台程序 Yarn资源调度 ResourceManager(RM):处理客户端请求,监控NodeManager,监控ApplicationMaster,资源调度与分配NodeManager(NM):管理单个节点上的资源,处理RM、ApplicationMaster的命令ApplicationMaster(AM):Container:资源抽象,封装 MapReduce计算 Map阶段:并行处理输入数据Reduce阶段:对Map结果汇总

虚拟机环境配置

CentOS7中,如果选择GNOME桌面,无法自定义安装程序,因此系统会安装openjdk 1.7和1.8两个版本,默认是1.8-u102,我们需要删除这两个。

先查看

[root@hadoop101 ~]# rpm -qa|grep java

再删除对应的版本号

[root@hadoop101 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64 [root@hadoop101 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64

接着,配置网络

vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" DEVICE="ens33" ONBOOT="yes" IPV6_PRIVACY="no" IPADDR=192.168.133.130 GATEWAY=192.168.133.2 NETMASK=255.255.255.0 DNS1=192.168.133.2

关闭防火墙

[root@hadoop101 ~]# systemctl stop firewalld.service

防火墙开机禁用

[root@hadoop101 ~]# systemctl disable firewalld.service

接着,开启虚拟机ip和名称的映射,进入/etc/hosts修改

[root@hadoop104 opt]# vim /etc/hosts

添加下面内容

192.168.133.131 hadoop102 192.168.133.132 hadoop103 192.168.133.133 hadoop104

然后可以克隆另一台虚拟机。

克隆完成后只要改ip和hostname,其他的不用改。

修改ip,进入文件修改

[root@hadoop101 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改hostname,先查看当前hostname,和前一台机器一样是叫hadoop101

[root@hadoop101 ~]# hostname

这里改成hadoop102

[root@hadoop101 ~]# hostnamectl set-hostname hadoop102

然后重启虚拟机。

安装JDK和Hadoop

进入/opt/目录,创建两个文件夹software、module,并且删除无用的rh/文件夹

[root@hadoop102 /]# cd /opt/ [root@hadoop102 opt]# mkdir software [root@hadoop102 opt]# mkdir module [root@hadoop102 opt]# rm -rf rh/

这里software存放安装包,module是安装目录。

现在可以看看opt/文件夹下的内容

[root@hadoop102 opt]# ll 总用量 0 drwxr-xr-x. 2 root root 6 10月 21 14:22 module drwxr-xr-x. 2 root root 6 10月 21 14:21 software

再将JDK和Hadoop的tar包放进software目录。

software目录内容

[root@hadoop102 opt]# cd software/ [root@hadoop102 software]# ll 总用量 377944 -rw-r--r--. 1 root root 243900138 10月 21 14:28 hadoop-2.8.2.tar.gz -rw-r--r--. 1 root root 143111803 10月 21 14:28 jdk-8u261-linux-x64.tar.gz

将tar包解压到module目录

[root@hadoop102 software]# tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/module/ [root@hadoop102 software]# tar -zxvf hadoop-2.8.2.tar.gz -C /opt/module/

查看module目录

[root@hadoop102 software]# cd .. [root@hadoop102 opt]# cd module/ [root@hadoop102 module]# ll 总用量 0 drwxr-xr-x. 9 502 dialout 149 10月 20 2017 hadoop-2.8.2 drwxr-xr-x. 8 10143 10143 273 6月 18 14:59 jdk1.8.0_261

配置环境变量,编辑profile文件

[root@hadoop102 jdk1.8.0_261]# vim /etc/profile

在文件末尾插入

##JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_261 export PATH=$PATH:$JAVA_HOME/bin ##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.8.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin

然后

[root@hadoop102 hadoop-2.8.2]# source /etc/profile

这样Java和Hadoop就可以用了,通过java -version和hadoop命令查看是否安装完成。

也可以用scp或rsync命令去拷贝。scp是直接拷贝,rsync是拷贝差异文件速度更快。

除此之外,还有xsync命令,循环复制文件到所有节点的相同目录下。

虚拟机的相关配置

在虚拟机上安装完Java和Hadoop并配置好环境变量之后,先创建input文件夹# mkdir input,在/opt/module/hadoop-2.8.2目录下创建该文件夹,。/opt/software/文件夹下存放Java和Hadoop的安装包,/opt/module/是存放Java和Hadoop安装的位置,这里Hadoop是2.8.2、JDK是1.8 。

将.xml文件拷贝到input文件夹下

[root@hadoop-1 hadoop-2.8.2]# cp etc/hadoop/*.xml input/

查看拷贝结果

[root@hadoop-1 hadoop-2.8.2]# ls input/ capacity-scheduler.xml core-site.xml hadoop-policy.xml hdfs-site.xml httpfs-site.xml kms-acls.xml kms-site.xml yarn-site.xml

运行jar包

[root@hadoop-1 hadoop-2.8.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar grep input/ output 'dfs[a-z.]+'

注意:这里是把输入放在input文件夹,把输出放在output问价夹,input文件夹是前面创建的,output不能自己创建待会会程序自己创建。

接着查看output是不是创建了

[root@hadoop-1 hadoop-2.8.2]# ll 总用量 124 drwxr-xr-x. 2 502 dialout 194 10月 20 2017 bin drwxr-xr-x. 3 502 dialout 20 10月 20 2017 etc drwxr-xr-x. 2 502 dialout 106 10月 20 2017 include drwxr-xr-x. 2 root root 187 10月 21 09:31 input drwxr-xr-x. 3 502 dialout 20 10月 20 2017 lib drwxr-xr-x. 2 502 dialout 239 10月 20 2017 libexec -rw-r--r--. 1 502 dialout 99253 10月 20 2017 LICENSE.txt -rw-r--r--. 1 502 dialout 15915 10月 20 2017 NOTICE.txt drwxr-xr-x. 2 root root 88 10月 21 09:44 output -rw-r--r--. 1 502 dialout 1366 10月 20 2017 README.txt drwxr-xr-x. 2 502 dialout 4096 10月 20 2017 sbin drwxr-xr-x. 4 502 dialout 31 10月 20 2017 share

再进入output文件夹,

[root@hadoop-1 hadoop-2.8.2]# cd output/ [root@hadoop-1 output]# ll 总用量 4 -rw-r--r--. 1 root root 11 10月 21 09:44 part-r-00000 -rw-r--r--. 1 root root 0 10月 21 09:44 _SUCCESS

查看part-r-00000文件的内容

[root@hadoop-1 output]# cat part-r-00000 1 dfsadmin

如果内容是这样,就表示成功。

Word Count案例

hadoop目录下创建wcinput文件夹,创建wc.input文件,并在文件里面写入任意字母文本

[root@hadoop-1 hadoop-2.8.2]# mkdir wcinput [root@hadoop-1 hadoop-2.8.2]# cd wcinput/ [root@hadoop-1 wcinput]# ll 总用量 0 [root@hadoop-1 wcinput]# touch wc.input [root@hadoop-1 wcinput]# vim wc.input

接着,运行

[root@hadoop-1 hadoop-2.8.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar wordcount wcinput/ wcoutput

类似上面的wcinput/是已经创建好的,作为输入;wcoutput是未创建的作为输出位置

进入wcoutput查看

[root@hadoop-1 hadoop-2.8.2]# cd wcoutput/ [root@hadoop-1 wcoutput]# ll 总用量 4 -rw-r--r--. 1 root root 131 10月 21 10:27 part-r-00000 -rw-r--r--. 1 root root 0 10月 21 10:27 _SUCCESS

查看part-r-00000文件,里面是计数结果

[root@hadoop-1 wcoutput]# cat part-r-00000

最新回复(0)