Hadoop伪分布式安装

简介:

前言:

hadoop:存储和处理平台

hdfs:集群,NN,SNN,DN //SNN:将HDFS的日志和映像进行合并操作

mapreduce: 集群,有中心node,jobTracker/Task tracker,

jT:集群资源管理

TT:任务,map,reduce

hadoop 2.0

YARN:集群资源管理,分割

MapReduce:数据处理

RN,NM,AM //RN:资源节点,NM:节点管理,AM:资源代理

container:mr任务

Tez:execution engine

MR:batch

能够对NN节点做HA,YARN也可以高可用了

一、2.0工作模型

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

A      【NM/Container A /APP M(B)】

  \ /

【RM】 --           【NM/Container B /APP M(A)】

  / \

B      【NM/Container A&A /】


client-->RM--->node1/node2/node n...

Resouce Manager: RM是独立的

    node上运行的有[node manager+App Master+ Container] //NM+AM 

Node manager:NM,运行在各node上,周期向RM报告node信息

clinet请求作业:node上的Application master决定要启动几个mapper 几个 reducer

    mapper和reducer 称为 Container //作业都在容器内运行。

    Application master只有一个,且同一个任务的APP M只在一个节点上,但是Container会分别运行在多个节点上,并周期向APP M报告其处理状态

    APP M向RM报告任务运行状况,在任务执行完毕后,RM会把APP M关闭

        某一个任务故障后,由App M进行管理,而不是RM管理

RM是全局的,NM在每一个节点上是唯一的,一个程序的AM只有一个,但是contianer需要在多个node上

Hadoop 1.0 和 2.0

1.0 2.0

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

/MR/Pig/Hive|

pig/Hive/Others [Tez ]RT/Service(HBase)  

[MapReduce ] [YARN ]

[HDFS ] [HDFS2 ]

在Hadoop v1的时候:

Mapreduce是:

1.开发API

2.运行框架

3.运行环境

二、Hadoop的安装

1.单机模型:测试使用

2.伪分布式模型:运行于单机

3.分布式模型:集群模型

Hadoop:基于java语言,需要依赖于jvm

hadoop-2.6.2:jdk 1.6+

hadoop-2.7 jdk 1.7+

1.环境

vim /etc/profile.d/java.sh 

JAVA_HOME=/usr

 yum install java-1.8.0-openjdk-devel.x86_64

每一个java程序在运行的时候,都会启动一个jvm,需要配置其堆内存。

新生代,老年代,持久代 //垃圾收集器

slaves:

一个DN;data node,对于yarn来说是node manager

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2/ hadoop

cd hadoop

vim /etc/profile.d/hadoop.sh

1
2
3
4
5
6
export HADOOP_PREFIX=/bdapps/hadoop
export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin
export HADOOP_YARN_HOME=${HADOOP_PREFIX}
export HADOOP_MAPPERD_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

. /etc/profile.d/hadoop.sh

2.创建运行Hadoop进程的用户和相关目

1
2
3
4
5
6
7
8
9
10
11
[root@node2 hadoop]# groupadd hadoop
[root@node2 hadoop]# useradd -g hadoop yarn
[root@node2 hadoop]# useradd -g hadoop hdfs
[root@node2 hadoop]# useradd -g hadoop mapred
创建数据和日志目录
[root@node2 hadoop]# mkdir -pv /data/hadoop/hdfs/{nn,snn,dn}
[root@node2 hadoop]# chown -R hdfs:hadoop /data/hadoop/hdfs/
[root@node2 hadoop]# cd /bdapps/hadoop
[root@node2 hadoop]# mkdir logs
[root@node2 hadoop]# chmod g+w logs
[root@node2 hadoop]# chown -R yarn:hadoop ./*

3.配置hadoop

core-site.xml包含了NameNode主机地址以及监听RPC端口信息,对于伪分布式模型的安装来说,其主机地址为localhost,NameNode默认使用的RPC端口为8020

vim etc/hadoop/core-site.xml 

1
2
3
4
5
6
7
<configuration>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs: //localhost:8020</value>
         <final> true </final>
     </property>
</configuration>

配置hdfs的相关属性:例如复制因子(数据块的副本)、NN和DN用于存储数据的目录等。数据块的副本对于伪分布式的Hadoop应该为1,

而NN和DN用于存储的数据的目录为前面的步骤中专门为其创建的路径。

[root@node2 hadoop]# vim etc/hadoop/hdfs-site.xml 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<configuration>
     <property>  
         <name>dfs.replication</name>   //dfs的副本数量
         <value>1</value>
     </property>
<proporty>
         <name>dfs.namenode.name.dir</name>
         <value>file: ///data/hadoop/hdfs/nn</value>
</property>
     <proporty>
         <name>dfs.datanode.data.dir</name>
         <value>file: ///data/hadoop/hdfs/dn</value>
     </property>
     <property>
         <name>fs.checkpoint.dir</name>
         <value>file: ///data/hadoop/hdfs/snn</value>
     </property>
     <property>
         <name>fs.checkpoint.edits.dir</name>
         <value>file: ///data/hadoop/hdfs/snn</value>
     </property>
</configuration>

配置MapReduce framework,此应该指定使用yarn,另外的可用值还有local和classic

[root@node2 hadoop]# cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

[root@node2 hadoop]# vim etc/hadoop/mapred-site.xml

1
2
3
4
5
6
<configuration>
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
</configuration>

配置YARN进程及YARN相关属性,首先执行ResourceManager守护进程的主机和监听的端口。

对于伪分布式模型来讲,其主机为localhost,默认的端口为8032;其次指定ResourceManager使用的scheduler,以及NodeManager的辅助任务。

[root@node2 hadoop]# vim etc/hadoop/yarn-site.xml 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!-- Site specific YARN configuration properties -->
<configuration>
     <property>
         <name>yarn.resourcemanager.address</name>
         <value>localhost:8032</value>
     </property>
     <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>localhost:8030</value>
     </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>localhost:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>localhost:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>localhost:8088</value>
     </property>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
     <property>
         <name>yarn.nodemanager.auxservices.mapreduce_shuffle. class </name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
     <property>
         <name>yarn.resourcemanager.scheduler. class </name>
         <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
     </property>
</configuration>


配置hadoop-devn.sh和yarn-env.sh--默认即可

Hadoop的各守护进程依赖于JAVA_HOME, Hadoop大多数守护进程的堆内存大小为1G

可根据需求调整。

slaves:定义hdfs的从节点列表--默认为本机

4.格式化HDFS

假如hdfs-site.xml 中的dfs.namenode.name.dir目录不存在,格式化会创建之

如果实现存在:需要确保其权限设置正确,格式化会清除其内部数据并重新建立文件系统

切换hdfs用户的身份执行

[root@node2 hadoop]# su - hdfs

hdfs命令分类:

User Commands

dfs:文件系统命令,,rm,cat,put,get,rmr,ls,cp,du,...

hdfs dfs -put localfile /user/hadoop/hadoopfile

fetchdt

fsck

version

Administration Commands

balancer

datanode

dfsadmin

mover

namenode

secondarynamenode

简单配置拍错:不能在/data目录下生成文件

解决步骤:

1.diff 命令,把配置文件头部的空白全部删除

vim 

::%s/^[[:space:]]\+//

[hdfs@localhost ~]$ hdfs namenode -format

/data/hadoop/hdfs/nn has been successfully formatted.

5.启动hadoop //NN,DN,SNN,RM,NM

NameNode: hadoop-daemon.sh start/stop namenode

DataNode: hadoop-daemon.sh start/stop datanode

Secondary NameNode: hadoop-daemon.sh start/stop secondarynamenode

ResourceManager: yarn-daemon.sh start/stop resourcemanager

NodeManager: yarn-daemon.sh start/stop nodemanager

启动HDFS服务

HDFS有三个守护进程:

namenode、datanode、secondarynamenode都可以通过hadoop daemon.sh

YARN有两个守护进程:

resourcemanager和nodemanager,都可以通过yarn-daemon.sh 脚本启动

[hdfs@localhost ~]$ hadoop-daemon.sh start namenode

starting namenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-namenode-localhost.o

[hdfs@localhost ~]$ jps //java的ps命令

4215 NameNode

4255 Jps


[hdfs@localhost ~]$ hadoop-daemon.sh start secondarynamenode

starting secondarynamenode, logging to /bdapps/hadoop/logs/hadoop-hdfs-secondarynamenode-localhost.out


[hdfs@localhost ~]$ hadoop-daemon.sh start datanode

starting datanode, logging to /bdapps/hadoop/logs/hadoop-hdfs-datanode-localhost.ou

//此时就可以上传文件了

[hdfs@localhost ~]$ hdfs dfs -mkdir /test //创建组

[hdfs@localhost ~]$ hdfs dfs -ls /

Found 1 items

drwxr-xr-x   - hdfs supergroup          0 2017-05-13 22:18 /te

[hdfs@localhost ~]$ hdfs dfs -put /etc/fstab /test/

[hdfs@localhost ~]$ hdfs dfs -ls /test

Found 1 items

-rw-r--r--   1 hdfs supergroup        537 2017-05-13 22:21 /test/fstab


cat /data/hadoop/hdfs/dn/current/BP-1163334701-127.0.0.1-1494676927122/current/finalized/subdir0/subdir0/blk_1073741825

//可以进行查看

hdfs dfs -cat /test/fstab //也可以查看内容一样

//文件过大的话,会被切割成n块。


注意:如果要其他用户对hdfs有写入权限,需要在hdfs-site.xml添加一项属性定义。

1
2
3
4
<property>
     <value>dfs.permissions</name>
     <value> false </value>
</property>
1
2
3
4
5
6
7
8
9
10
11
12
[root@node2 test]# su - yarn
 
[yarn@localhost ~]$ yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /bdapps/hadoop/logs/yarn-yarn-resourcemanager-localhost. out
 
[yarn@localhost ~]$ yarn-daemon.sh start nodemanager
starting nodemanager, logging to /bdapps/hadoop/logs/yarn-yarn-nodemanager-localhost. out
 
[yarn@localhost ~]$ jps
5191 Jps
5068 NodeManager
4829 ResourceManager

6.Web UI概览

HDFS和YARN ResourceManager各自提供了Web接口。

HDFS-NameNode:http://NameNodeHost:50070/

YARN-ResourceManager http://ResourceManagerHost:8088

http://192.168.4.105:50070/dfshealth.html#tab-overview

YARN-ResourceManager:只监听在127.0.0.1,

EditLog的内容:

NameNode  SecondaryNameNode

fs-image 

|________>  合并为新的fs-image

EditLog滚动一次 ------>取出     |

    |

覆盖原有的fs-image__________________|

secondaryNameNode:合并NameNode上的Editlog合并到fs-imange上,以保证持久影响文件上,尽可能多的保持多的信息

真正的使用元数据在NameNode的内存中,假如数据发生修改,会追加到editlog中

firefox localhost:8088 &

Applications

SUBMITED:已经提交的作业

ACCEPTED:接受的作业

RUNNING

FINISHED

FAILED:失败的

KILLED:

//SecnondaryNameNode从NameNode中取得

7.运行测试程序

[root@localhost mapreduce]# su - hdfs

[hdfs@localhost ~]$ cd /bdapps/hadoop/share/hadoop/mapreduce/

yarn jar hadoop-mapreduce-examples-2.6.2.jar  //有很多测试程序

hdfs dfs -ls /test/fstab.out //查看

hdfs dfs -cat /test/fstab.out/paprt-r-00000 //查看

//统计每个单词的出现次数

小结

1.配置环境

java.sh hadoop.sh

2.创建用户和相关目录

3.配置hadoop

core-site.xml

hdfs-site.xml 

mapred-site.xml

yarn-site.xml

4.格式化HDFS

[hdfs@localhost ~]$ hdfs namenode -format

/data/hadoop/hdfs/nn has been successfully formatted.

5.启动hadoop

NameNode: hadoop-daemon.sh start/stop namenode

DataNode: hadoop-daemon.sh start/stop datanode

Secondary NameNode: hadoop-daemon.sh start/stop secondarynamenode

ResourceManager: yarn-daemon.sh start/stop resourcemanager

NodeManager: yarn-daemon.sh start/stop nodemanager

6.Web UI概览

HDFS和YARN ResourceManager各自提供了Web接口。

HDFS-NameNode:http://NameNodeHost:50070/

YARN-ResourceManager http://ResourceManagerHost:8088

帮助文档:http://hadoop.apache.org/docs/r2.6.5/










本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/1944015,如需转载请自行联系原作者

相关文章
|
2月前
|
分布式计算 Hadoop Java
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
60 0
|
4月前
|
分布式计算 Hadoop Java
我用免费白拿的服务器搭建了一台基于CentOS7的Hadoop3.x伪分布式环境
我用免费白拿的服务器搭建了一台基于CentOS7的Hadoop3.x伪分布式环境
55 0
|
4月前
|
消息中间件 分布式计算 大数据
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
【大数据技术Hadoop+Spark】Flume、Kafka的简介及安装(图文解释 超详细)
66 0
|
2天前
|
分布式计算 资源调度 Hadoop
hadoop的伪分布式搭建-带网盘
hadoop的伪分布式搭建-带网盘
12 3
|
4月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.19 安装Kafka
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
73 0
Hadoop学习笔记(HDP)-Part.19 安装Kafka
|
3月前
|
分布式计算 资源调度 Hadoop
在Linux系统上安装Hadoop的详细步骤
【1月更文挑战第4天】在Linux系统上安装Hadoop的详细步骤
414 0
|
4月前
|
存储 分布式计算 Hadoop
hadoop 安装系列教程二——伪分布式
hadoop 安装系列教程二——伪分布式
44 0
|
4月前
|
分布式计算 Hadoop Java
hadoop系列——linux hadoop安装
hadoop系列——linux hadoop安装
76 0
|
4月前
|
分布式计算 Hadoop Java
Hadoop【部署 01】腾讯云Linux环境CentOS Linux release 7.5.1804单机版hadoop-3.1.3详细安装步骤(安装+配置+初始化+启动脚本+验证)
Hadoop【部署 01】腾讯云Linux环境CentOS Linux release 7.5.1804单机版hadoop-3.1.3详细安装步骤(安装+配置+初始化+启动脚本+验证)
85 0
|
4月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.20 安装Flume
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
53 0
Hadoop学习笔记(HDP)-Part.20 安装Flume

热门文章

最新文章

相关实验场景

更多