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然后重启虚拟机。
进入/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如果内容是这样,就表示成功。
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