1.1Hodoop是什么?
1)Hadoop 是一个由Apache基金会所开发的分布式系统基础框架。
2)主要功能是处理海量数据的存储和海量数据的分析计算问题。
3)在广义上来说,Hadoop并不是单指一个技术和工具,它代表一个更广泛的概念——Hadoop生态圈。
1.2Hadoop发展历史(了解)
创始人:Doug Cutting
Hadoop的大数据思想之源是来自Google在大数据方面的的三篇论文
GFS --->HDFS
Map-Reduce --->MR
BigTable --->HBase
1.3Hadoop三大发行版本(了解)
Hadoop三大发行版本:Apache、Cloudera、Hortonworks。
Apache 版本最原始(最基础)的版本,对于入门学习最好。2006
Cloudera 内部集成了很多大数据框架,对应产品 CDH。2008
Hortonworks 文档较好,对应产品 HDP。2011
Hortonworks 现在已经被 Cloudera 公司收购,推出新的品牌 CDP。
(1)高可靠性:Hadoop底层维护多个数据副本,所以即便Hadoop某个计算元素或储存故障,也不会导致数据的丢失。
(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
(4)高容错性:能够自动将失败的任务重新分配。
1.5 Hadoop组成
这边给大家强化一个关于面试或者刷题中出现的一个问题:
所谓的 Hadoop1.X、2.X、3.X的区别?
1.5.1 HDFS框架概述
Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。
HDFS中包含了主要的三个组件:
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、
文件权限),以及每个文件的块列表和块所在的DataNode等。(记录每个文件块存储的位置)
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。 (具体存储数据的位置)
3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。
1.5.2 YARN 架构概述
Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。
1.5.3 MapReduce 架构概述
MapReduce 将计算过程分为两个阶段:Map 和 Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对 Map 结果进行汇总
1.5.4 HDFS\YARN\MapReduce 三者关系
1.6 大数据技术生态体系
图中涉及的技术名词解释如下:
1)Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)
间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进
到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,
Flume 支持在日志系统中定制各类数据发送方,用于收集数据;
3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统;
4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数
据进行计算。
6)Oozie:Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。
7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,
它是一个适合于非结构化数据存储的数据库。
8)Hive:Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张
数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运
行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开
发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、
名字服务、分布式同步、组服务等。
1.7 系统项目框架
2.1 模板虚拟机环境准备
0)安装模板虚拟机,IP 地址 192.168.10.100、主机名称 hadoop100、内存 4G、硬盘 50G
1)VMware的安装
硬件部分的安装
虚拟机向导:自定义 因为我们要根据自己的需求配置虚拟机 提示安装操作系统:选择否
手动选择操作系统: Linux——CentOS7
虚拟机名称:Hadoop100 ,位置安装
处理器核数设置:处理器的数量2、每个处理的内核数量:根据自身电脑的配置选择
虚拟机内存:4g
网络类型选择 NAT模式
磁盘大小的设置:20-50g 这里最好是50G
这里点击浏览也可以选择存放虚拟机的具体位置,当然不设置也没关系
下一步后,会展示相应的设置完成的属性,点击完成即可
如果安装失败请确认你的电脑是否开启了 虚拟化(在任务管理器中可以查看)
软件部分的安装:
CentOS 系统的安装
安装操作系统前,确认有CentOS文件!!!
确认后,点击模板虚拟机中的CD/DVD
在虚拟机设置中,选择好 启动时连接 在连接中选择使用 ISO影像文件位置:就是第一步 CentOS7 存放的位置
完成后选择 开启虚拟机
读取画面(在黑窗口时可以 ctrl+alt 鼠标切换)
等待下面读数完毕,后进入到向导界面——此处选择中文
安装完成后 :
1.时间设置
选择好与你电脑相同的时间并更改日期切记,设置好后点击完成
此处因为我们进行的是教学 所以 选择 GNOME桌面 ,方便我们学习 ——点击完成
选择 我要分配——点击完成
选择 + ,这里我们要添加挂点
手动分区:/boot 1g 启动内容需求内存(添加完毕后 文件系统:ext4)
点击添加挂点
swap(如果内存不够时候,借用硬盘 冒充 内存)4g
点击添加挂载
、 根目录 / 设置剩余的内存量 继续 + 添加挂点
期望容量=设置虚拟机的总容量 - /boot(该挂点选择的空间 1g) - swap(该挂点选择的空间 4g)
完成后添加挂点
所有完成后
安装完成后 重启 虚拟机
重启后,许可证点击 同意,完成后,点击右下角 完成配置
配置IP地址
这里我们需要设置3个IP地址 hadoop100 VMware Windows
NET设置:网关IP- 192.168.10.2
点击更改设置后 会重新进入
修改完成后点击确定
VMware设置完成
-VMnet8-属性
-找到 internet 协议版本4-打开
IP地址设置:192.16.10.1
设置默认网关: 192.168.10.2
首选DNS服务器:192.168.10.2
备用DNS服务器:8888 公网解析器
点击确定退出
Windows设置完成
进入root模式: 代码: su root 密码输入
进入后进入IP设置代码: vim /etc/sysconfig/network-scripts/ifcfg-ens33
输入完成后点击回车
找到:BOOTPROTO-设置-static
追加内容:IPADDR=192.168.10.100
#网关
GATEWAY=192.168.10.2
#域名解析器
DNS1=192.168.10.2
ESC- :wq-回车
主机名称修改:输入代码- vim /etc/hostname
修改为 hadoop100,如果就会hadoop100 就不用任何操作了
如果还是hadoopESC- :q!-回车 退出
如果不是hadoop ,修改为hadoop 100 ESC- :wq 回车 退出
主机名称映射:为了在防止后续升级配置后 IP地址的更改 导致我们需要到处找 原先的IP地址修改需要我们一个一个去更改。故设置主机名称映射
192.168.10.100 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
ESC- :wq 回车 退出
重启:reboot
测试:ifconfig
ping 外网 测试是不是能ping通
hostname 检查
安装Xshell 工具
安装过程中如果提示用户名和公司名,如下图操作
安装完成后的界面
显示如下图,则远程连接服务器成功,接收并保存
添加完成后 把修改的host文件复制到
替换原来的host文件(此处以win10为例)
完成上述操作后,重新创建 以 hadoop100命名的 远程控制 连接
如第一步测试连接步骤一样,知识名称改为 hadoop100
3.安装Xftp 7
点击完成后,显示的界面如下图
Epel-release ,全程 Extra Packages for Enterprise Linux 。言简意赅就会为操作系统提供安装包,相当于一个存放软件的仓库
指令代码: yum install -y epel-release
安装过程中 我们会发现 有一个PID 被锁定
这里我们直接杀死该进程
kill -9 进程号
再吃输入 安装指令yum install -y epel-release
这里给大家一个概念,防火墙是每台电脑都会有的一套保护程序,虚拟机(服务器都不例外,当然不排除一些安装完成后特意阉割掉防火墙的服务器或者虚拟机),在我们开发大数据项目的时候,分为两种情况;1.按照公司需求逐台安装防火墙保护每个服务器安全。2.在所有服务器集群的外部架设防火墙,控制外网访问,保护服务器安全。
操作:
输入指令:systemctl stop firewalld
systemctl disable firewalld.service
下图为关闭后的显示
我们在平常操作中都是用到普通账户操作的,所以为了方便使用sudo执行 root权限命令
(ctrl+l)
指令代码:vim /etc/sudoers
找到如图位置
复制 root ALL=(ALL) ALL 这行
操作 yy复制 p黏贴
把前面的 root 修改为你的 普通账号名如: dashuju
这里还有一个修改: 我们修改 每次使用普通用户切换到root账户的时候 不需要输入密码,则修改为
:wq! 强制执行
测试:
指令: cd /opt/
ll ( 文件权限标志 链接的文件数 root 表示用户 root 表示用户所在的组 6 表示文件大小(字节) 表示最 后修改的日期 文件名)
exit
cd /opt/
ll
rm -rf rh/ (执行删除 rh 文件夹)
sudo rm -rf rh/
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令
创建文件夹:
指令: sudo mkdir module
自行试验: 在opt/ 下 创建 software 文件夹 显示
更改完毕后我们发现还是在 root 和 root组下
接下来把文件夹更改到 普通账户下 和 普通账户组总
指令代码: sudo chown dashuju:dahuju module/ sofware/
结果
首先查看是否有包含java名的文件,通过指令过滤
指令:rpm -qa | grep -i java
过滤完毕后我们要逐步删除 所有的java文件
指令:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
结果:
重启虚拟机 reboot
注意在克隆出来的虚拟机上我们要更改相依的 虚拟机名称 IP地址 ,然后通过Xshell进行连接(在更改好克隆的虚拟机后,重启在连接Xshell)。
tar -zxvf 文件的完整名字 -C /opt/moduel/
指令:sudo cd /etc/profile
自行创建文件添加 JAVA_HOME 和 PATH
指令:sudo vim my_envy.sh
添加环境变量:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
保存后退出文件
这里我们需要重新扫描一遍 profile文件
指令:source /etc/profile
测试: java