Hadoop体系的主要组件:HDFS/MapReducejava
做用:维护Hadoop中存储数据块的相关信息,例如记录hadoop集群中某个数据块所在的服务器位置,SecondNameNode主要是起到冗余做用,当NameNode宕机时,可以使用SecondNameNode做为NameNode的替代工具,防止整个Hadoop集群的崩溃node
做用: 主要是存储HDFS数据块的服务器,负责HDFS数据库的存储(读写)linux
JobTracker: 做业跟踪器,相似司令的角色,主要用于处理做业,将做业进行分割成任务task,统一调度数据库
TaskTracker:任务跟踪器:主要管理节点上task,相似士兵的角色,向JobTracker报告服务器
master:JobTracker NameNode节点所在的服务器框架
slave: DataNode TaskTracker节点所在的服务器ssh
注意:1个Hadoop集群只有1个JobTracker做业跟踪器,JobTracker和NameNdoe可在同1个服务器,TaskTracker和DataNode通常在同一个服务器,一个TaskTracker管理所在服务器的任务分布式
Hadoop伪分布式:全部节点都在同1个服务器(开发用)ide
①:配置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便可。