2022年搭建hadoop分布式集群 .pdf
1.Hadoop2.0.3 简述与之前的稳定的hadoop-1.x 相比, Apache Hadoop 2.x 有较为显著的变化。这里给出在HDFS和 MapReduce 两方面的改进。HDFS: 为了保证name 服务器的规模水平,开发人员使用了多个独立的Namenodes 和Namespaces。这些Namenode 是联合起来的,它们之间不需要相互协调。Datanode 可以为所有 Namenode 存放数据块,每个数据块要在平台上所有的Namenode 上进行注册。Datenode定期向 Namenode 发送心跳信号和数据报告,接受和处理Namenodes 的命令。YARN( 新一代 MapReduce):在 hadoop-0.23 中介绍的新架构,将JobTracker的两个主要的功能: 资源管理和作业生命周期管理分成不同的部分。新的资源管理器负责管理面向应用的计算资源分配和每个应用的之间的调度及协调。每个新的应用既是一个传统意义上的MapReduce 作业,也是这些作业的DAG(Database Availability Group 数据可用性组 ),资源管理者(ResourcesManager)和管理每台机器的数据管理者( NodeManager )构成了整个平台的计算布局。每 一 个 应 用 的 应 用 管 理 者 实 际 上 是 一 个 架 构 的 数 据 库 , 向 资 源 管 理 者(ResourcesManager)申请资源,数据管理者(NodeManager )进行执行和监测任务。2. Hadoop2.0.3 的目录结构Hadoop2.0 的目录结构很像Linux 操作系统的目录结构,各个目录的作用如下:(1)在新版本的hadoop 中,由于使用hadoop 的用户被分成了不同的用户组,就像Linux一样。因此执行文件和脚本被分成了两部分,分别存放在bin 和 sbin 目录下。存放在sbin目录下的是只有超级用户(superuser) 才有权限执行的脚本,比如start-dfs.sh, start-yarn.sh, stop-dfs.sh, stop-yarn.sh 等,这些是对整个集群的操作,只有superuser 才有权限。而存放在bin 目录下的脚本所有的用户都有执行的权限,这里的脚本一般都是对集群中具体的文件或者 block pool 操作的命令,如上传文件,查看集群的使用情况等。(2) etc 目录下存放的就是在0.23.0 版本以前conf 目录下存放的东西,就是对common, hdfs, mapreduce(yarn) 的配置信息。(3) include 和 lib 目录下, 存放的是使用Hadoop 的 C语言接口开发用到的头文件和链接的库。(4) libexec 目录下存放的是hadoop 的配置脚本, 具体怎么用到的这些脚本,我也还没跟踪到。目前我就是在其中hadoop-config.sh 文件中增加了JAVA_HOME环境变量。(5)logs 目录在 download 到的安装包里是没有的,如果你安装并运行了hadoop,就会生成 logs 这个目录和里面的日志。(6)share这个文件夹存放的是doc文档和最重要的Hadoop 源代码编译生成的jar 包文件,就是运行hadoop 所用到的所有的jar 包。3.学习 hadoop 的配置文件(1)dfs.hosts 记录即将作为datanode 加入集群的机器列表(2)mapred.hosts 记录即将作为tasktracker 加入集群的机器列表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - (3)dfs.hosts.exclude mapred.hosts.exclude 分别包含待移除的机器列表(4)master 记录运行辅助namenode 的机器列表(5)slave 记录运行 datanode 和 tasktracker 的机器列表(6)hadoop-env.sh 记录脚本要用的环境变量,以运行hadoop (7)core-site.xml hadoop core 的配置项,例如hdfs 和 mapreduce 常用的 i/o 设置等。(8) hdfs-site.xml hadoop 守护进程的配置项, 包括 namenode 、 辅助 namenode 和 datanode等。(9)mapred-site.xml mapreduce 守护进程的配置项,包括jobtracker 和 tasktracker 。(10)hadoop-metrics.properties 控制 metrics 在 hadoop 上如何发布的属性。(11)log4j.properties 系统日志文件、 namenode 审计日志、 tasktracker 子进程的任务日志的属性。4. hadoop 详细配置从 Hadoop官网上下载hadoop-2.0.3-alpha.tar.gz ,在 /root/hadoop下运行tar -zxvf hadoop-2.0.3-alpha.tar .gz 解压到 /root/hadoop目录下,(1) 在 etc/hadoop 目录中编辑hadoop-env.sh export JAVA_HOME=/usr/java/jdk1.6.0_31 export HADOOP_HOME=/root/hadoop/hadoop-2.0.0-cdh4.2.0 export HADOOP_PREFIX=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS export HADOOP_LIB=$HADOOP_HOME/lib export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop (2) 在 etc/hadoop 目录中编辑core-site.xml fs.default.name hdfs:/master:9000 hadoop.tmp.dir /root/hadoop/tmp (3) 在 etc/hadoop目录中编辑hdfs-site.xml 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - dfs.replication 3 dfs.support.append true dfs.permissions false dfs.datanode.max.xcievers 4096 (4) 在/etc/hadoop 使用以下内容创建一个文件mapred-site.xml mapred.job.tracker master:9001 mapred.map.java.opts -Xmx1024m mapred.child.java.opts -Xmx1024m (5) 在/etc/hadoop 目录下编辑slaves master slave1 slave2 export JAVA_HOME=/usr/java/jdk1.6.0_31 exportHADOOP_HOME=/root/hadoop/hadoop-2.0.0-cdh4.2.0 5.初始化 hadoop 首先格式化namenode ,在 bin 目录下输入命令 ./hadoop namenode -format;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 然后在 sbin 目录下执行 ./start-all.sh启动名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -