Hadoop学习指南:探索大数据时代的重要组成——运行环境搭建

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云防火墙,500元 1000GB
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Hadoop学习指南:探索大数据时代的重要组成——运行环境搭建

Hadoop运行环境搭建(开发重点)

模板虚拟机环境准备

数据来源层

安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G

hadoop100 虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例)

使用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 

安装epel-release

注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,

适用于RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方

repository 中是找不到的)


[root@hadoop100 ~]# yum install -y epel-release 
注意:如果Linux安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作
  • net-tool:工具包集合,包含ifconfig等命令
[root@hadoop100 ~]# yum install -y net-tools  
  • vim:编辑器
[root@hadoop100 ~]# yum install -y vim

关闭防火墙,关闭防火墙开机自启

[root@hadoop100 ~]# systemctl stop firewalld 
[root@hadoop100 ~]# systemctl disable firewalld.service 

==注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙 ==

创建atguigu用户,并修改atguigu用户的密码

[root@hadoop100 ~]# useradd atguigu 
[root@hadoop100 ~]# passwd atguigu 

配置atguigu用户具有root权限,方便后期加sudo执行root权限的命令

[root@hadoop100 ~]# vim /etc/sudoers

修改/etc/sudoers 文件,在%wheel这行下面添加一行,如下所示:

## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL 
## Allows people in group wheel to run all commands 
%wheel  ALL=(ALL)       ALL
atguigu   ALL=(ALL)     NOPASSWD:ALL

注意:atguigu 这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了atguigu具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以atguigu要放到%wheel这行下面。

在/opt目录下创建文件夹,并修改所属主和所属组

  • 在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module 
[root@hadoop100 ~]# mkdir /opt/software 
  • 修改module、software 文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module  
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software 
  • 查看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 
  • 查看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 

卸载虚拟机自带的JDK

注意:如果你的虚拟机是最小化安装不需要执行这一步。

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps  
• 1

➢ rpm -qa:查询所安装的所有rpm软件包

➢ grep -i:忽略大小写

➢ xargs -n1:表示每次只传递一个参数

➢ rpm -e –nodeps:强制卸载软件

重启虚拟机

[root@hadoop100 ~]# reboot

克隆虚拟机

利用模板机hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104

注意:克隆时,要先关闭hadoop100

修改克隆机IP,以下以hadoop102举例说明

(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.102 
PREFIX=24 
GATEWAY=192.168.10.2 
DNS1=192.168.10.2 

(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8

(3)查看Windows系统适配器VMware Network Adapter VMnet8 的IP地址

(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系

统VM8网络IP地址相同。

修改克隆机主机名,以下以hadoop102举例说明

(1)修改主机名称

[root@hadoop100 ~]# vim /etc/hostname 
hadoop102

配置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 
192.168.10.105 hadoop105 
192.168.10.106 hadoop106 
192.168.10.107 hadoop107 
192.168.10.108 hadoop108 

重启克隆机hadoop102

[root@hadoop100 ~]# reboot

修改winddows的主机映射文件(hosts文件)

(1)如果操作系统是window7,可以直接修改

(a)进入C:\Windows\System32\drivers\etc路径

(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:\Windows\System32\drivers\etc路径

(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:\Windows\System32\drivers\etc路径hosts文件


在hadoop102安装JDK

卸载现有JDK

注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK


用XShell传输工具将JDK导入到opt目录下面的software文件夹下面

在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop102 ~]$ ls /opt/software/ 
• 1

看到如下结果:

jdk-8u212-linux-x64.tar.gz

解压JDK到/opt/module目录下

[atguigu@hadoop102 software]$ tar -zxvf jdk-8u212-linux
x64.tar.gz -C /opt/module/

配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 ~]$ 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@hadoop102 ~]$ source /etc/profile

测试JDK是否安装成功

[atguigu@hadoop102 ~]$ java -version 

如果能看到以下结果,则代表Java安装成功。

java version "1.8.0_212"

注意:重启(如果java -version可以用就不用重启

[atguigu@hadoop102 ~]$ sudo reboot

在hadoop102安装Hadoop

Hadoop下载地址:Hadoop

1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面

2)进入到Hadoop安装包路径下

[atguigu@hadoop102 ~]$ cd /opt/software/ 

3)解压安装文件到/opt/module下面

[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C 
/opt/module/

4)查看是否解压成功

[atguigu@hadoop102 software]$ ls /opt/module/ 
hadoop-3.1.3 

5)将Hadoop添加到环境变量

(1)获取Hadoop安装路径

[atguigu@hadoop102 hadoop-3.1.3]$ pwd 
/opt/module/hadoop-3.1.3

(2)打开/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 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@hadoop102 hadoop-3.1.3]$ source /etc/profile

6)测试是否安装成功

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop version 
Hadoop 3.1.3

7)重启(如果Hadoop命令不能用再重启虚拟机)

[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot

Hadoop 目录结构

查看Hadoop目录结构

[atguigu@hadoop102 hadoop-3.1.3]$ ll 
总用量 52 
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 bin 
drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 etc 
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 include 
drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 lib 
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 libexec -rw-r--r--. 1 atguigu atguigu 15429 5月  22 2017 LICENSE.txt -rw-r--r--. 1 atguigu atguigu   101 5月  22 2017 NOTICE.txt -rw-r--r--. 1 atguigu atguigu  1366 5月  22 2017 README.txt 
drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 sbin 
drwxr-xr-x. 4 atguigu atguigu  4096 5月  22 2017 share 

重要目录

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib 目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin 目录:存放启动或停止Hadoop相关服务的脚本

(5)share 目录:存放Hadoop的依赖jar包、文档、和官方案例


总结:

Hadoop是大数据处理的重要工具,搭建Hadoop的运行环境是学习和应用Hadoop的第一步。通过安装JDK和配置Hadoop,我们可以轻松搭建一个强大的分布式计算平台,实现大规模数据处理和存储。


通过学习Hadoop的搭建和配置,我们能够深入了解Hadoop的运行原理和机制。在后续的学习和实践中,我们将探索更多Hadoop的功能和应用,为大数据处理和分析提供更加全面和高效的解决方案。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
149 6
|
1月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
49 5
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
49 3
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
64 2
|
1月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
60 0
|
1月前
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
43 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
17天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
62 2
|
18天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
57 1
|
26天前
|
存储 SQL 分布式计算
大数据学习
【10月更文挑战第15天】
32 1
|
1月前
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
28 1