【Hadoop】- Hadoop1.x 伪分布式环境搭建

ぐ巨炮叔叔 提交于 2019-11-28 09:35:44

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即可。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!