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

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

猜你喜欢

转载自blog.csdn.net/liuliusix/article/details/109220141
今日推荐