(超详细)0基础利用python调用Hadoop,云计算1

本文涉及的产品
云防火墙,500元 1000GB
简介: (超详细)0基础利用python调用Hadoop,云计算

第一章配置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)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来

bf3a20f713964003af0bfe29103ef237.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包、文档、和官方案例


相关文章
|
7月前
|
Serverless 数据处理 云计算
|
7月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
756 1
|
4月前
|
机器学习/深度学习 持续交付 云计算
Python在云计算中的优势?
Python在云计算中的优势?【8月更文挑战第12天】
107 2
|
4月前
|
存储 分布式计算 监控
Hadoop在云计算环境下的部署策略
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。随着云计算技术的发展,越来越多的企业开始利用云平台的优势来部署Hadoop集群,以实现更高的可扩展性、可用性和成本效益。本文将探讨如何在公有云、私有云及混合云环境下部署和管理Hadoop集群,并提供具体的部署策略和代码示例。
169 0
|
7月前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
|
7月前
|
存储 开发工具 数据库
云计算:概念、优势与实践——附Python代码示例
云计算:概念、优势与实践——附Python代码示例
|
7月前
|
存储 大数据 数据挖掘
python数据分析——大数据和云计算
大数据和云计算作为当代信息技术的两大核心驱动力,正在以前所未有的速度改变着我们的生活、工作和思维方式。它们不仅为各行各业的创新提供了强大的技术支持,更是推动了整个社会的数字化转型。 从大数据的角度来看,它的核心价值在于通过对海量数据的收集、存储、分析和挖掘,发现其中的关联性和趋势,从而为决策提供更为科学、精准的依据。无论是商业领域的市场预测、消费者行为分析,还是公共服务领域的城市规划、交通管理,大数据都发挥着不可或缺的作用。同时,随着物联网、传感器等技术的普及,大数据的来源和种类也在不断扩展,这使得我们能够更全面地认识世界,把握规律。
111 1
|
7月前
|
分布式计算 Hadoop 大数据
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
334 1
|
7月前
|
分布式计算 Hadoop 大数据
|
7月前
|
开发工具 云计算 Docker