一、Hadoop是什么?
1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
2、主要解决,海量数据的存储和海量数据的分析计算问题。
3、广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
二、Hadoop的发展历史
1、Hadoop创始人Doug Cutting,为了实现与Google类似的全文搜索功能,他在Lucene框架基础上进行优化升级,查询引擎和索引引擎。
2、2001年年底Lucene成为Apache基金会的一个子项目。
3、对于海量数据的场景,Lucene框 架面 对与Google同样的困难,存 储海量数据困难,检 索海 量速度慢。
4、学习和模仿Google解决这些问题的办法 :微型版Nutch。
5、可以说Google是Hadoop的思想之源(Google在大数据方面的三篇论文):GFS --->HDFS、Map-Reduce --->MR、BigTable --->HBase。
6、2003-2004年,Google公开了部分GFS和MapReduce思想的细节,以此为基础Doug Cutting等人用 了2年业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。
7、2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。
8、2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS)分别被纳入到 Hadoop 项目 中,Hadoop就此正式诞生,标志着大数据时代来临。
9、名字来源于Doug Cutting儿子的玩具大象
三、Hadoop运行环境搭建
hadoop100 虚拟机配置要求如下(本文 Linux 系统全部以 CentOS-7.5-x86-1804 为例)
安装模板虚拟机,IP地址 192.168.10.100、主机名称hadoop100、内存 4G、硬盘 50G
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
4、关闭防火墙,关闭防火墙开机自启
注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
5、创建 atguigu 用户,并修改 atguigu 用户的密码
[root@hadoop100 ~]# useradd atguigu
[root@hadoop100 ~]# passwd atguigu
6、配置 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 这行下面。
7、在/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
8、卸载虚拟机自带的 JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e
--nodeps
- rpm -qa:查询所安装的所有rpm 软件包
- grep -i:忽略大小写
- xargs -n1:表示每次只传递一个参数
- rpm -e –nodeps:强制卸载软件