Hadoop(一) 简介 集群搭建

目录

Hadoop简介

1.1Hadoop产生的背景

1.2 Hadoop的优势

1.3 Hadoop组成

1.4 大数据技术生态体系图

Hadoop集群安装

 linux的集群配置: 参照linux集群的配置

安装相应的软件 

hadoop集群的配置

修改以下配置文件

ssh免密登陆的设置

拷贝hadoop的配置文件到其他结点 

格式化namenode


Hadoop简介

1.1Hadoop产生的背景

1. HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问,如何解决数十亿网页的存储和索引问题。

2. 2003年开始谷歌陆续发表的三篇论文为该问题提供了可行的解决方案

  • 分布式文件系统(GFS),可用于处理海量网页的存储
  • 分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
  • BigTable 数据库:OLTP 联机事务处理 Online Transaction Processing 增删改,OLAP 联机分析处理 Online Analysis Processing 查询,真正的作用:提供了一种可以在超大数据集中进行实时CRUD操作的功能

3.Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

1.2 Hadoop的优势

1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因此它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理

2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。

1.3 Hadoop组成

1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。

2)Hadoop MapReduce:一个分布式的离线并行计算框架。

3)Hadoop YARN:作业调度与集群资源管理的框架。

4)Hadoop Common:支持其他模块的工具模块。

1.4.1 YARN架构概述

1)ResourceManager(rm):  处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;

2)NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;

3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。

4)Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

1.4.2 MapReduce架构概述  MapReduce将计算过程分为两个阶段:Map和Reduce

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

1.4 大数据技术生态体系图

Hadoop生态圈重点组件:

HDFS:Hadoop的分布式文件存储系统。

MapReduce:Hadoop的分布式程序运算框架,也可以叫做一种编程模型。

Hive:基于Hadoop的类SQL数据仓库工具

Hbase:基于Hadoop的列式分布式NoSQL数据库

ZooKeeper:分布式协调服务组件

Mahout:基于MapReduce/Flink/Spark等分布式运算框架的机器学习算法库

Oozie/Azkaban:工作流调度引擎

Sqoop:数据迁入迁出工具

Flume:日志采集工具

获取数据的三种方式

1、自己公司收集的数据--日志     或者     数据库中的数据

2、有一些数据可以通过爬虫从网络中进行爬取

3、从第三方机构购买

 

Hadoop集群安装

集群规划如下, 一个namenode节点,3个datanode节点

        namenode: s1

        datanode: s2-s4

linux的集群配置: 参照linux集群的配置

      通过secureCRT将jdk,hadoop的安装包上传到linux

安装相应的软件 

0. 将要安装的软件的安装包上传至用户home

1. 创建安装目录

    mkdir /myoft ; chown centos:centos /mysoft

2.解压安装包到安装目录

tar -zxvf jdk-8u181-linux-x64.tar.gz -C /mysoft

tar -zxvf hadoop-2.7.3.tar.gz -C /mysoft

 3.创建软连接

ln -s /mysoft/hadoop-2.7.3 /mysoft/hadoop
ln -s /mysoft/jdk1.8.0_181 /mysoft/jdk

4.设置环境变量

#jdk configuration
export JAVA_HOME=/mysoft/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

#hadoop configuration
export HADOOP_HOME=/mysoft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

5.验证安装

 java -version

 hadoop version

 

出现上述信息,即为安装成功!

 

hadoop集群的配置

将配置文件分为三个集群模式的配置

========================================================

local:本地模式

pesudo: 伪分布模式

full: 完全分布模式

cd  /mysoft/hadoop/etc

 cp -r  hadoop local
 cp -r hadoop pesudo
 cp -r hadoop full
 rm -r hadoop

 #hadoop在运行时,读取的是hadoop下的配置文件,因此当有多种模式的配置时,需要通过建立软
 #连接来切换相应模式的配置文件
 ln -s /mysoft/hadoop/etc/full /mysoft/hadoop/etc/hadoop

默认配置文件

core-default.xml --- hadoop-common-2.7.3.jar
hdfs-default.xml---hadoop-hdfs-2.7.3.jar
mapred-default.xml---hadoop-mapreduce-client-core-2.7.3.jar
yarn-default.xml---hadoop-yarn-common-2.7.3.jar

里面有hadoop配置的详细说明,我们在使用时只是配置了一小部分

 

配置文件

core-site.xml    hadoop集群的核心配置

hdfs-site.xml    hdfs模块的相关配置

yarn-site.xml    yarn模块的相关配置

mapred-site.xml    mapreduce模块相关配置

hadoop-env.sh   hadoop集群运行环境设置

slaves     告诉hadoop集群哪些节点是从节点

<!-- core-site.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
        <!-- 指定hdfs的访问地址 -->
		<name>fs.defaultFS</name>
		<value>hdfs://s1:8020</value>  
	</property>
	<property>
        <!-- hadoop 的工作目录 -->
		<name>hadoop.tmp.dir</name>
		<value>/home/centos/hadoop</value>  
	</property>
</configuration>


<!-- hdfs-site.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
        <!-- hdfs文件系统下每个文件块的副本数 -->
		<name>dfs.replication</name> 
		<value>3</value>     		
	</property>
</configuration>

<!-- mapred-site.xml -->
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
        <!-- 在mapreduce计算时使用什么模块来管理 -->
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

<!-- yarn-site.xml -->
<?xml version="1.0"?>

<configuration>
	<property>
        <!-- yarn模块的master节点 -->
		<name>yarn.resourcemanager.hostname</name>   
		<value>s1</value> 
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>   
	</property>
	
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>  
	</property>
</configuration>

slaves 文件, 每一行代表了一个节点
s2
s3
s4

 

ssh免密登陆的设置

================================

#生成ssh密码对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

#将公密钥拷贝到其他主机
ssh-copy-id centos@s2
ssh-copy-id centos@s3
ssh-copy-id centos@s4

 

拷贝hadoop的配置文件到其他结点 

==========================================

scp -r /mysoft/hadoop/etc/full centos@s2:/mysoft/hadoop/etc/
scp -r /mysoft/hadoop/etc/full centos@s3:/mysoft/hadoop/etc/
scp -r /mysoft/hadoop/etc/full centos@s4:/mysoft/hadoop/etc/

 

格式化namenode

=============================================

hdfs namenode -format

出现上述信息,即格式化成功!

 

start-all.sh

启动集群,访问web-ui出现下列参数,即为集群配置成功

==========================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章