linux环境下Hadoop 2.0.3单机部署
1.Hadoop2.0简述[1]
与之前的稳定的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的目录结构[2]
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的配置文件[3]
(1) dfs.hosts记录即将作为datanode加入集群的机器列表
(2) mapred.hosts 记录即将作为tasktracker加入集群的机器列表
(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详细配置[4,5]
从Hadoop官网上下载hadoop-2.0.0-alpha.tar.gz,放到共享文件夹中,在/usr/lib中进行解压,运行tar -zxvf /mnt/hgfs/share/hadoop-2.0.0-alpha.tar.gz。
(1)在gedit ~/.bashrc中编辑:
export HADOOP_PREFIX="/usr/lib/hadoop-2.0.0-alpha"
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export YARN_HOME=${HADOOP_PREFIX}
仍然保存退出,再source ~/.bashrc,使之生效。
(2)在etc/hadoop目录中编辑 core-site.xml
<configuration>
<property>
<name>io.native.lib.available</name>
<value>true</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://10.1.50.170:9000</value>
<description>The name of the default file system.Either the literal string "local" or a host:port for NDFS.</description>
<final>true</final>
</property>
</configuration>
(3) 在etc/hadoop目录中编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/lib/hadoop-2.0.0-alpha/workspace/hadoop_space/hadoop23/dfs/name</value>
<description>Determines where on the local filesystem the DFS name node should store the name table.If this is a comma-delimited list of directories,then name table is replicated in all of the directories,for redundancy.</description>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/lib/hadoop-2.0.0-alpha/workspace/hadoop_space/hadoop23/dfs/data</value>
<description>Determines where on the local filesystem an DFS data node should store its blocks.If this is a comma-delimited list of directories,then data will be stored in all named directories,typically on different devices.Directories that do not exist are ignored.</description>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permission</name>
<value>false</value>
</property>
</configuration>
路径
file:/home/hadoop/workspace/hadoop_space/hadoop23/dfs/name与
file:/home/hadoop/workspace/hadoop_space/hadoop23/dfs/data
是计算机中的一些文件夹,用于存放数据和编辑文件的路径必须用一个详细的URI描述。
(4)在 /etc/hadoop 使用以下内容创建一个文件mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>hdfs://10.1.50.170:9001</value>
<final>true</final>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>50</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/usr/lib/hadoop-2.0.0-alpha/workspace/hadoop_space/hadoop23/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/usr/lib/hadoop-2.0.0-alpha/workspace/hadoop_space/hadoop23/mapred/local</value>
<final>true</final>
</property>
</configuration>
路径:
file:/home/hadoop/workspace/hadoop_space/hadoop23/mapred/system与
file:/home/hadoop/workspace/hadoop_space/hadoop23/mapred/local
为计算机中用于存放数据的文件夹路径必须用一个详细的URI描述。
(5)编辑yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>10.1.50.170:8080</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.1.50.170:8081</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.1.50.170:8082</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
(6) 在 /etc/hadoop 目录中创建hadoop-env.sh 并添加:
export HADOOP_FREFIX=/usr/lib/hadoop-2.0.0-alpha
export HADOOP_COMMON_HOME=${HADOOP_FREFIX}
export HADOOP_HDFS_HOME=${HADOOP_FREFIX}
export PATH=$PATH:$HADOOP_FREFIX/bin
export PATH=$PATH:$HADOOP_FREFIX/sbin
export HADOOP_MAPRED_HOME=${HADOOP_FREFIX}
export YARN_HOME=${HADOOP_FREFIX}
export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop
export JAVA_HOME=/usr/lib/jvm/java-7-sun
另,需要yarn-env.sh中充填相同的内容,再配置到各节点。
配置过程中遇到的问题:
▼在浏览器中localhost:8088中,只能看到主节点的信息,看不到datanode的信息。
解决方法:在重新配置yarn.xml(以上为修改后内容)后已经可以看到两个节点,但启动后有一个datanode会自动关闭。
▼在纠结了很长时间kerbose的问题后,才找到运行不能的原因是这个提示:
INFO mapreduce.Job: Job job_1340251923324_0001 failed with state FAILED due to: Application application_1340251923324_0001 failed 1 times due to AM Container for appattempt_1340251923324_0001_000001 exited with exitCode: 1 due to:Failing this attempt.. Failing the application.
按照一个国外友人的回贴[6]fs.deault.name -> hdfs://localhost:9100 in core-site.xml ,mapred.job.tracker - > http://localhost:9101 in mapred-site.xml,错误提示发生改变。再把hadoop-env.sh中的内容copy到yarn-env.sh中,平台就可以勉强运行了(还是有报警)
5.初始化hadoop
首先格式化 namenode,输入命令 hdfs namenode –format;
然后开始守护进程 hadoop-daemon.sh start namenode 和 hadoop-daemon.sh start datanode或(可以同时启动:start-dfs.sh);然后,开始 Yarn 守护进程运行 yarn-daemon.sh start resourcemanager和 yarn-daemon.sh start nodemanager(或同时启动: start-yarn.sh)。
最后,检查守护进程是否启动运行 jps,是否输出以下结果:
在datanode上jps,有以下输出:
浏览UI,打开 localhost:8088 可以查看资源管理页面。
结束守护进程stop-dfs.sh和stop-yarn.sh(或者同时关闭stop-all.sh)。
原文链接:http://wenluoxicheng.blog.163.com/blog/static/192519939201325114018477/
相关推荐
在Linux环境下搭建Hadoop并配置Eclipse开发环境是大数据处理工作中的重要步骤。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据。而Eclipse是一款强大的集成开发环境(IDE),通过特定的插件可以...
【大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置】 实验主要涉及了大数据技术中的基础概念,包括Linux操作系统、Java环境、SSH服务、Hadoop集群的搭建与配置。以下是具体步骤和知识点的详细解释:...
### Linux下Hadoop单机配置知识点详解 #### 一、环境搭建 1. **操作系统**: - 使用的系统为Red Hat Linux 9。 2. **JDK版本**: - 采用JDK 1.6,这符合Hadoop 0.20.1的要求,因为早期版本的Hadoop对JDK版本有...
在Hadoop部分,实验介绍了如何在Linux环境下安装和配置Hadoop。首先,需要创建Hadoop用户并设置SSH登录权限,这通常通过添加用户的公钥到authorized_keys文件中实现。安装Java环境是运行Hadoop的前提,因为Hadoop...
以上步骤完成后,你将拥有一个运行在Linux下的Hadoop伪分布式环境,可以进一步探索Hadoop生态系统的其他组件,如Spark、Pig、Hive和HBase,进行大数据处理和分析。记得在实际操作中根据你的具体需求和硬件资源进行...
在linux系统中hadoop完全分布式部署
第五课:hadoopwindow单机部署和试用-python验证码识别1
Hadoop环境安装设置(最简单的hadoop单机环境部署教程) 安装前设置 SSH设置和密钥生成 安装Java.下载Java (JDK<最新版> - X64 ... 下载Hadoop.下载来自Apache基金会软件,使用下面 ... Hadoop操作模式 在单机模式下...
在Linux下安装Hadoop-0.20.2,首先需要确保系统已经安装了Java环境,因为Hadoop是用Java编写的,并依赖Java运行时环境。接着,你需要下载Hadoop的tarball文件,这可能就是列表中的“hadoop-0.20.2版本”。下载完成后...
总之,搭建Linux下的Hadoop集群需要对Hadoop的基本架构有深入理解,熟悉Linux网络配置,并能熟练进行系统级别的设置。这个过程虽然繁琐,但通过良好的规划和细致的实施,可以构建出稳定、高效的数据处理平台。在实践...
### Linux下安装Hadoop完全分布式 #### 知识点概览 - **环境搭建**:包括操作系统选择、硬件配置需求、用户与权限管理等。 - **JDK安装与配置**:涉及JDK版本的选择、环境变量配置及版本切换方法。 - **主机名与...
"在 Linux 环境安装 Hadoop 集群" 在 Linux 环境中安装 Hadoop 集群是大数据处理和分析的重要步骤。Hadoop 是 Apache 基金会开发的一款开源的分布式计算框架,能够处理大量数据。下面是安装 Hadoop 集群的详细步骤...
在Linux环境下搭建Hadoop集群是一项复杂但至关重要的任务,它为大数据处理提供了强大的分布式平台。以下将详细介绍如何在一台虚拟机上安装多台Linux服务节点,并构建Hadoop集群环境。 首先,我们需要准备一个基础...
在Linux环境中部署Hadoop全分布式集群是一项复杂但重要的任务,主要涉及到系统配置、网络通信、安全设置以及Hadoop自身的配置等多个方面。以下是按照部署步骤详细解释各知识点: 1. **JDK安装与环境变量配置**: ...
通过本次实验,可以掌握Linux环境下文件与目录的基本管理命令,以及如何在Hadoop分布式文件系统(HDFS)中进行文件的操作。 #### 实验平台 - **操作系统**:Linux - **Hadoop版本**:2.7.1 #### 实验内容和要求 ##...
### Hadoop环境配置详解——单机集群篇 #### 一、引言 随着大数据时代的到来,Hadoop作为处理海量数据的利器,其重要性不言而喻。本文旨在详细介绍如何在虚拟机上安装Hadoop环境,并搭建单机集群。通过图文并茂的...
【大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置】 在互联网和计算机科学(cs)领域,大数据处理是至关重要的一个环节,而Hadoop作为一种开源的分布式计算框架,成为了处理大规模数据的主要工具。...
【大数据技术基础实验报告-Linux环境下Hadoop集群的搭建与基本配置】 实验主要涉及了Linux操作系统、Java开发环境以及Hadoop大数据处理框架的安装和配置。以下是对这些知识点的详细说明: 1. **Linux环境搭建**: ...
2. **JAVA JDK安装**:在Linux环境下安装和配置Java Development Kit (JDK) 是运行和开发Hadoop程序的必要条件。实验要求学生熟悉这一过程。 3. **多台主机虚拟化**:通过VirtualBox或类似工具创建多台虚拟机,模拟...