Hadoop学习笔记

Hadoop学习笔记

1、Hadoop是什么?

Apache Hadoop软件库是一个框架,允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理。Hadoop被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。

2、Hadoop能干什么?

       Hadoop擅长日志分析,海量数据的存储;

3、Hadoop核心

       HDFS:HadoopDistributed File System分布式文件系统;

       MapReduce:并行计算框架;

4、  HDFS的架构

主从结构:

              主节点:只有一个:namenode

              从节点:有很多个:datanode

namenode负责:

              接收用户操作请求

              维护文件系统的目录结构

              管理文件已block之间关系,block与datanode之间关系

       datanode负责

              存储文件

              文件被分为block存储在磁盘上

              为保证数据安全,文件会有多个副本

5、  MapReduce的架构

主从结构:

主节点:只有一个:JobTracker

              从节点:有很多个:TaskTrackers

JobTrack负责:

              接收客户提交的计算任务

              把计算任务分给TaskTrackers执行

              监控TaskTracker的执行情况

       TaskTrackers负责:

              执行JobTracker分配的计划任务

6、  Hadoop的特点

Ø  扩容能力:能可靠地存储和处理千兆字节数据;

Ø  成本低:可以通过普通的机器组成服务器群来分发以及处理数据;

Ø  高效率:通过分发数据,hadoop可以在数据所在的节点上并行的处理它们,这使得处理非常的快速;

Ø  可靠性:hadoop能自动地维护数据的多副本性,并且在任务失败后能自动地重新部署计算任务;

7、  Hadoop集群的物理分布

8、  单节点物理结构

9、  Hadoop部署方式

本地模式

伪分布模式

集群模式

10、伪分布式安装步骤

关闭防火墙

修改ip

修改hostname

设置ssh自动登录

安装jdk

安装hadoop

11、修改hadoop配置文件

       一共四个

hadoop-env.sh:配置JAVA_HOME

       exportJAVA_HOME=/usr/local/jdk

core-site.xml:指定namenode的地址

       <configuration>

                     <property>

                            <name>fs.default.name</name>

                            <value>hdfs://ip地址:9000</value>

                     </property>

              <!--指定hadoop运行时产生的文件的位置 -->

                     <property>

                            <name>hadoop.tmp.dir</name>

                            <value>/cloud/hadoop-1.1.2/tmp</value>

                     </property>

       </configuration>

 hdfs-site.xml:指定HDFS副本的数量

       <configuration>

              <!--指定HDFS副本的数量 -->

                     <property>

                            <name>dfs.replication</name>

                            <value>1</value>

                     </property>

       </configuration>

mapred-site.xml:主要配置JobTracker的address

       <configuration>

              <property>

                     <name>mapred.job.tracker</name>

                     <value>ip地址:9001</value>

              </property>

       </configuration>

12、格式化并启动hadoop(都要在hadoop的bin目录下执行)

       格式化:hadoop namenode –format

       启动:执行start-all.sh

13、Hadoop命令

       相对路径       .  ..  ~

目录跳转       cd xxx

创建文件       touch

查看文件       more、cat

查看目录       ls –alR

创建目录       mkdir -p

复制文件       cp

删除文件       rm –r xxx

修改文件权限       chmod –R 700

修改文件(夹)的所有者 chown –R root:root xxx

查看文件属性       stat

解压缩文件    tar –xzvf xxx

修改密码       passwd xxx

查看磁盘空间       df -ah

查看进程       ps -ef |grep

杀掉进程       kill -9

修改环境变量       vi /etc/profile

修改主机名    vi /etc/sysconfig/network

vi /etc/hosts

修改ip地址   vi /etc/sysconfig/network-scripts/ifcfg-eth0

关闭防火墙    service iptables stop chkconfig iptables off

关闭selinux   setenforce permissive修改/etc/selinux/config

14、DistributedFile System

       数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。

是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。

容错。即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失。

分布式文件管理系统很多,hdfs只是其中一种。适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适。

15、HDFS详解

HDFS基本特点:整个集群有单一的命名空间。数据一致性。文件被分成多个文件块,每个文件块被分配存储到数据节点上,可能会有复制来保证数据安全。

HDFS是一个主/从(master/slave)结构:在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。Namenode管理着整个分布式文件系统,对文件系统的操作(建立、删除文件)都是通过Namenode来控制。datanode管理连接点的存储,将Block存储在本地文件系统中保存block的meta-data,同时周期性的将所有存在的block信息发送给namenode(心跳检测);

16、文件写入和读取

       写入:

1、Client向NameNode发起文件写入的请求。

2、NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

3、Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

读取:

1、  Client向Namenode发送文件读取的请求。

2、  Namenode返回文件存储的DataNode的信息。

3、  Client读取文件信息。

17、Hadoop进程

    hadoop启动后会有5个守护进程:namenode、secondarynamenode、datanode、jobtracker、tasktracker。secondarynamenode,它不是namenode 的冗余守护进程,而是提供周期检查点和清理任务。在每个Hadoop集群中可以找到一个 namenode和一个 secondarynamenode。每个集群有一个jobtracker,它负责调度datanode 上的工作。每个datanode 有一个tasktracker,它们执行实际工作。jobtracker和tasktracker 采用主-从形式,jobtracker跨 datanode分发工作,而tasktracker 执行任务。jobtracker还检查请求的工作,如果一个datanode 由于某种原因失败,jobtracker会重新调度以前的任务。

分布情况是:主节点包括名称节点、从属名称节点和jobtracker 守护进程(即所谓的主守护进程)。从节点包括tasktracker 和数据节点(从属守护进程)。两种设置的不同之处在于,主节点包括提供Hadoop 集群管理和协调的守护进程,而从节点包括实现Hadoop 文件系统(HDFS)存储功能和MapReduce功能(数据处理功能)的守护进程。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值