赞
踩
目录
3.1、准备三台客户机 ( 关闭防火墙、静态 IP、主机名称)
3.7、core-site.xml : hadoop核心配置文件
3.10、mapred-site.xml: mapreduce配置文件
图中涉及的技术名词解释如下:
(1)Sqoop:Sqoop 是一款开源的工具,主要用于在Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop 的HDFS 中,也可以将HDFS 的数据导进到关系型数据库中。
(2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。
(3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统。
(4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于Hadoop 上存储的大数据进行计算。
(5)Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
(6)Oozie:Oozie 是一个管理Hadoop 作业(job)的工作流程调度管理系统。
(7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
(8)Hive:Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL 查询功能,可以将SQL 语句转换为MapReduce 任务进行运行。其优点是学习成本低,可以通过类SQL 语句快速实现简单的MapReduce 统计,不必开发专门的MapReduce 应用,十分适合数据仓库的统计分析。
(9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
大数据指高速 涌现的大量多样化 具有一定价值并且真实的数据,其特性可简单概括为
高速:数据产生的速度非常快,一般来说这些数据会先保存至内存缓存,之后再去写入磁盘
大量 :对于中型企业数据量一般在百TB级,对于不同量级的数据处理的方式会不一样
多样化 :数据种类多,半结构化,结构化数据,非结构化数据(视频,图片)需要转换成结构化数据进行分析
价值: 数据挖掘,大数据分析-> 对数据做关联统计分析
真实:在历史的某个阶段真实产生过
1.数据采集 大数据首先需要将来自不同来源和应用的数据汇集在一起。需要导入和处理数据、执行格式化操作,以符合业务分析所要求的形式。
2. 数据存储 大数据对存储要求较高。存储解决方案可以部署在本地,也可以部署在云端。可以采用任何形式存储数据,根据需要为数据集设置处理要求,引入必要的处理引擎。
3.数据分析 数据分析是根据数据内容及业务要求对数据进行处理的过程,在该过程中需要根据不同的数据量和业务形式选择合适的处理引擎,大数据开发过程有时也会涉及到机器学习相关算法
Apache基金会 :是专门为支持开源软件项目而办的一个非盈利性组织
服务器(节点) :可以理解为我们的一台笔记本/台式机 在这里可以认为是我们的一台虚拟机 后面学习中,我们会把一台服务器称为一个节点
机架: 负责存放服务器的架子 可以理解为鞋架
克隆虚拟机,并修改IP和主机名
创建node1节点
vim /etc/hostname -> 修改master为node1
vim /etc/sysconfig/network-scripts/ifcfg-ens33 将IP修改为 101
同样操作生成一个node2节点
16 / 5 => 3.2
在master中生成密钥文件 ssh-keygen -t rsa 一直回车
将密钥文件同步到所有节点
( 注意需要在/etc/hosts中配置映射关系配置步骤如下:
添加如下内容:
192.168.253.100 master
192.168.253.101 node1
192.168.253.102 node2
添加完成之后
通过ping node1 测试是否通畅
之后同步到其他两个节点
scp /etc/hosts root@node1:/etc/hosts
scp /etc/hosts root@node2:/etc/hosts )
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2 上述命令 需要输入密码 回车
完成后 可以通过 ssh node1 验证免密登录 并且通过 Ctrl + D 退出
上传Jar包并解压 tar -xvf hadoop-2.7.6.tar.gz
Hadoop目录结构
(1) bin目录:存放对 Hadoop相关服务( hdfs yarn mapred)进行操作的执行命令
(2)etc目录: Hadoop的配置文件目录,存放 Hadoop的配置文件
(3) lib目录:存放 Hadoop的本地库(对数据进行压缩解压缩功能)
(4) sbin目录:存放启动或停止 Hadoop相关服务的脚本
(5) share目录:存放 Hadoop的依赖 jar包 、文档和官方案例
vim /etc/profile 增加hadoop环境变量,将bin和sbin都配置到PATh中
#HADOOP_HOME
export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile
注意:当前Linux中需要JDK环境 如果没有配置请参考Linux阶段学习
由于Hadoop是一个主从结构,由一个主节点领导整个集群,其他的节点称为从节点
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop
vim slaves
增加node1, node2
vim hadoop-env.sh
修改JAVA_HOME export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
vim core-site.xml 在configuration中间增加以下内容
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property> <name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
<property> <name>fs.trash.interval</name> <value>1440</value>
</property>
——————————————————————————————————
master:9000 表示 HDFS对应API的端口
hadoop.tmp.dir 表示对应NameNode和SecondaryNameNode保存数据的位置
fs.trash.interval 表示一天的时间 ————————————————————————————————
vim hdfs-site.xml 在configuration中间增加以下内容
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
————————————————————————————————————
dfs.replication 副本的保存数量 默认为3 dfs.permissions HDFS权限 ————————————————————————————————————
vim yarn-site.xml 在configuration中间增加以下内容
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
——————————————————————————
yarn.resourcemanager.hostname 设置yarn主节点
yarn.nodemanager.resource.memory-mb 设置从节点中的内存大小
yarn.nodemanager.vmem-pmem-ratio 设置物理内存和虚拟内存的比率 ——————————————————————————
重命名 mv mapred-site.xml.template mapred-site.xml vim mapred-site.xml
在configuration中间增加以下内容
<property>
<name>mapreduce.framework.name</name> <value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value> </property>
—————————————————————————————— mapreduce.jobhistory.webapp.address 历史服务器的ip及端口 ——————————————————————————————
scp -r /usr/local/soft/hadoop-2.7.6/ node1:/usr/local/soft/
scp -r /usr/local/soft/hadoop-2.7.6/ node2:/usr/local/soft/
在master节点中执行如下命令 对namenode进行格式化操作
hdfs namenode -format
start-all.sh
启动成功后,通过jps命令查看相应的进程 。 jps命令主要查看Java相关的进程
在Master节点中出现如下进程:
4341 SecondaryNameNode
4486 ResourceManager
4155
1、在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。(一个文件分为多个block,这些块存储在不同的node中)
2、为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。
3、集群中不同的节点承担不同的职责。
Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。
Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。
1、ReasourManager主节点
负责资源管理的,整个系统有且只有一个 RM ,来负责资源的调度。它也包含了两个主要的组件:定时调用器(Scheduler)以及应用管理器(ApplicationManager)
2、ApplicationMaster
每当 Client 提交一个 Application 时候,就会新建一个 ApplicationMaster 。由这个 ApplicationMaster 去与 ResourceManager 申请容器contatiner资源,获得资源后会将要运行的程序发送到容器上启动,然后进行分布式计算。
3、NodeManager从节点
NodeManager 是 ResourceManager 在每台机器的上代理,负责容器的管理,并监控他们的资源使用情况(cpu,内存,磁盘及网络等),以及向ResourceManager/Scheduler 提供这些资源使用报告。
4、Container
Container是YARN集群中资源的抽象,将NM上的资源进行量化,根据需要组装成一个个Container,然后服务于已授权资源的计算任务。计算任务在完成计算后,系统会回收资源,以供后续计算任务申请使用。Container包含两种资源:内存和CPU,后续Hadoop版本可能会增加硬盘、网络等资源。
说明:
(1)客户端可以有多个
(2)集群上可以运行多个ApplicationMaster
(3)每个NodeManager上可以有多个Container
依赖磁盘IO的批处理计算模型
MapReduce 将计算过程分为两个阶段:Map 和Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对Map 结果进行汇总
第一种:全部启动集群所有进程
启动:start-all.sh
停止:stop-all.sh
第二种:单独启动hdfs【web端口50070】和yarn【web端口8088】的相关进程
启动:start-dfs.sh sbin/start-yarn.sh
停止:stop-dfs.sh sbin/stop-yarn.sh
每次重新启动集群的时候使用
第三种:单独启动某一个进程
启动hdfs:hadoop-daemon.sh start (namenode | datanode)
停止hdfs:hadoop-daemon.sh stop (namenode | datanode)
启动yarn:yarn-daemon.sh start (resourcemanager | nodemanager)
停止yarn:yarn-daemon.sh stop(resourcemanager | nodemanager)
用于当某个进程启动失败或者异常down掉的时候,重启进程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。