第一章配置Hadoop
前言
本次我们python+大数据的作业我选择附加一
利用hadoop+python实现,最近考完试有时间来完成。
这次我们用到的是Hadoop,利用python进行操作首先我们要配置我们的虚拟机
简介: MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:
(1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。
(2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
(3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理
简言之: mapreduce是一种计算引擎,可以把我们对大批量数据的计算通过抽象成map与reduce两个子任务进行计算从而更快的得到想要的结果。
下面我们来准备我们的hadoop的虚拟机这里我们基于的是centos7.5
集群搭建
2.1 模板虚拟机环境准备
0)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G
1)hadoop100虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例子)
(1)使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况
[root@hadoop100 ~]# ping www.baidu.com PING www.baidu.com (14.215.177.39) 56(84) bytes of data. 64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms 64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms
(2)安装epel-release
注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)
[root@hadoop100 ~]# yum install -y epel-release
(3)注意:如果Linux安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作
net-tool:工具包集合,包含ifconfig等命令
[root@hadoop100 ~]# yum install -y net-tools
vim:编辑器
[root@hadoop100 ~]# yum install -y vim
2)关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld [root@hadoop100 ~]# systemctl disable firewalld.service
注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙
3)在/opt目录下创建文件夹,并修改所属主和所属组
(1)在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module [root@hadoop100 ~]# mkdir /opt/software
(2)修改module、software文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module [root@hadoop100 ~]# chown atguigu:atguigu /opt/software
(3)查看module、software文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/ [root@hadoop100 opt]# ll 总用量 12 drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 module drwxr-xr-x. 2 root root 4096 9月 7 2017 rh drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 software
4)卸载虚拟机自带的JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rpm -qa:查询所安装的所有rpm软件包
grep -i:忽略大小写
xargs -n1:表示每次只传递一个参数
rpm -e –nodeps:强制卸载软件
5)重启虚拟机
[root@hadoop100 ~]# reboot
这样我们的基础虚拟机就弄好了,我们在此基础之上复制两个分别是Haoop101,和Hadoop102
2.2 克隆虚拟机
1)利用模板机hadoop100,克隆2台虚拟机:hadoop101 hadoop102
注意:克隆时,要先关闭hadoop100
2)修改克隆机IP,下面以hadoop100为例子说明
(1)修改克隆虚拟机的静态IP
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
DEVICE=ens33 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static NAME="ens33" IPADDR=192.168.10.100 PREFIX=24 GATEWAY=192.168.10.2 DNS1=192.168.10.2
(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EUNZenmL-1639641787977)(C:Users86157AppDataLocalTemps9634674668.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来
直接上传(img-iUJpKMVM-1639641787978)(C:Users86157AppDataLocalTemps9634685117.png)]
(3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MElwdgU8-1639641787979)(C:Users86157AppDataLocalTemps9634750321.png)]
(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。
3**)修改克隆机主机名,以下以hadoop100****举例说明**
(1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname hadoop100
(2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
添加如下内容
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104
4**)重启克隆机hadoop102**
[root@hadoop100 ~]# reboot
5**)修改windows的主机映射文件(hosts文件)**
(1)如果操作系统是window7,可以直接修改
(a)进入C:WindowsSystem32driversetc路径
(b)打开hosts文件并添加如下内容,然后保存
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入C:WindowsSystem32driversetc路径
(b)拷贝hosts文件到桌面
(c)打开桌面hosts文件并添加如下内容
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
(d)将桌面hosts文件覆盖C:WindowsSystem32driversetc路径hosts文件
2.3 在Hadoop100安装JDK
1)卸载现有JDK
注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK。详细步骤见问文档3.1节中卸载JDK步骤。
2)用XShel传输工具将JDK导入到opt目录下面的software文件夹下面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pgs6NP2R-1639641787980)(C:Users86157AppDataLocalTemps9634950345.png)]
3)在Linux系统下的opt目录中查看软件包是否导入成功
[atguigu@hadoop100 ~]$ ls /opt/software/
看到如下结果:
jdk-8u212-linux-x64.tar.gz
4)解压JDK到/opt/module目录下
[atguigu@hadoop100 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
5)配置JDK环境变量
(1)新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop100 ~]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
(2)保存后退出
:wq
(3)source一下/etc/profile文件,让新的环境变量PATH生效
[atguigu@hadoop100 ~]$ source /etc/profile
6)测试JDK是否安装成功
[atguigu@hadoop100 ~]$ java -version
如果能看到以下结果,则代表Java安装成功。
java version "1.8.0_212"
注意:重启(如果java -version可以用就不用重启)
[atguigu@hadoop100 ~]$ sudo reboot
2.4 在Hadoop100安装Hadoop
Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D624hHTP-1639641787980)(C:Users86157AppDataLocalTemps9635182977.png)]
2)进入到Hadoop安装包路径下
[atguigu@hadoop100 ~]$ cd /opt/software/
3)解压安装文件到/opt/module下面
[atguigu@hadoop100 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4)查看是否解压成功**
[atguigu@hadoop100 software]$ ls /opt/module/ hadoop-3.1.3
5)将Hadoop添加到环境变量
(1)获取Hadoop安装路径
[atguigu@hadoop100 hadoop-3.1.3]$ pwd /opt/module/hadoop-3.1.3
(2)打开/etc/profile.d/my_env.sh文件
[atguigu@hadoop100 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
在my_env.sh文件末尾添加如下内容:(shift+g)
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
保存并退出: :wq
(3)让修改后的文件生效
[atguigu@hadoop100 hadoop-3.1.3]$ source /etc/profile
6)测试是否安装成功
[atguigu@hadoop100 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3
7)重启(如果Hadoop命令不能用再重启虚拟机)
[atguigu@hadoop100 hadoop-3.1.3]$ sudo reboot
2.5 Hadoop目录结构
1)查看Hadoop目录结构
[atguigu@hadoop100 hadoop-3.1.3]$ ll
总用量 52
[root@hadoop100 hadoop-3.1.3]# ll 总用量 184 drwxr-xr-x. 2 1 1 183 9月 12 2019 bin drwxr-xr-x. 4 root root 37 11月 20 20:34 data drwxr-xr-x. 3 1 1 20 9月 12 2019 etc drwxr-xr-x. 2 1 1 106 9月 12 2019 include drwxr-xr-x. 3 1 1 20 9月 12 2019 lib drwxr-xr-x. 4 1 1 288 9月 12 2019 libexec -rw-rw-r--. 1 1 1 147145 9月 4 2019 LICENSE.txt drwxr-xr-x. 3 root root 4096 11月 28 16:12 logs -rw-rw-r--. 1 1 1 21867 9月 4 2019 NOTICE.txt -rw-rw-r--. 1 1 1 1366 9月 4 2019 README.txt drwxr-xr-x. 3 1 1 4096 11月 18 23:11 sbin drwxr-xr-x. 4 1 1 31 9月 12 2019 share drwxr-xr-x. 2 root root 22 11月 18 23:00 wcinput drwxr-xr-x. 2 root root 88 11月 18 23:01 wcoutput -rw-r--r--. 1 root root 46 11月 18 23:24 word.txt
2)重要目录
(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例