Hadoop体系的主要组件:HDFS/MapReduce
HDFS: Hadoop Distribution File System
NameNode、SecondNameNode:名称节点
作用:维护Hadoop中存储数据块的相关信息,例如记录hadoop集群中某个数据块所在的服务器位置,SecondNameNode主要是起到冗余作用,当NameNode宕机时,可使用SecondNameNode作为NameNode的替代工具,防止整个Hadoop集群的崩溃
DataNode: 数据节点
作用: 主要是存储HDFS数据块的服务器,负责HDFS数据库的存储(读写)
MapReduce: 分布式计算框架
-
JobTracker: 作业跟踪器,类似司令的角色,主要用于处理作业,将作业进行分割成任务task,统一调度
-
TaskTracker:任务跟踪器:主要管理节点上task,类似士兵的角色,向JobTracker报告
-
master:JobTracker NameNode节点所在的服务器
-
slave: DataNode TaskTracker节点所在的服务器
注意:1个Hadoop集群只有1个JobTracker作业跟踪器,JobTracker和NameNdoe可在同1个服务器,TaskTracker和DataNode一般在同一个服务器,一个TaskTracker管理所在服务器的任务
Hadoop伪分布式:所有节点都在同1个服务器(开发用)
①:配置hadoop环境(hadoop-env.sh): export JAVA_HOME=/usr/local/java/jdk1.8.0_112 (hadoop基于Java开发,需要配置jdk)
②:Hadoop的核心配置:core-site.xml(例如:名称节点、I/O配置等)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
因是伪分布式,这里配置的名称节点的ip为localhost,实际完全分布式情况需要设置实际的服务主机的ip
③:配置hdfs文件系统 hdfs-site.xml:配置dataNode的存储位置及数据块的备份次数
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-0.20.2/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
④:配置MapReduce mapred-site.xml:JobTracker节点服务器配置
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
⑤:格式化HDFS文件系统:bin目录自带的hadoop命令(名称节点服务器格式化): ./hadoop namenode –format
⑥:启动hadoop集群:/bin/start-all.sh :hadoop启动脚本 查看Hadoop是否成功启动:使用jdk自带的jps命令,可以查询linux中和Java相关的进程信息:
[root@localhost bin]# jps 19344 SecondaryNameNode 19152 NameNode 19249 DataNode 19511 TaskTracker 19417 JobTracker 19551 Jps
**结果:**显示Hadoop关键的守护进程的信息表明hadoop伪集群成功启动
注意:这里是使用伪分布式的hadoop,完全分布式需要配置各个节点的ssh的公钥共享,无需ssh密码登陆就可实现hadoop集群中各个节点之间的数据传输,伪分布式通过单点模拟hadoop集群,只需将自己的公钥加入authorized_keys即可。
来源:oschina
链接:https://my.oschina.net/u/4074151/blog/3014241