`

单节点(伪分布式)环境下运行Hadoop

 
阅读更多

环境:Linux 6.2  虚拟机

去官网下载包:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/

上传到linux上

一、配置 SSH 

无论是在单机环境还是多机环境中, Hadoop均采用SSH来访问各个节点的信息。在单机环境中,需要配置 SSH 来使用户 hadoop 能够访问 localhost 的信息。如果没有安装,首先需要安装ssh

  1. sudo apt-get install ssh  

安装完成后要保证防火墙对ssh的端口放行,如果仅是学习可以直接把防火墙关闭:

1)重启后永久性生效:

开启: chkconfig iptables on

关闭: chkconfig iptables off

2)即时生效,重启后失效:

开启: service iptables start

关闭: service iptables stop

 

其次是配置 SSH使得Hadoop应用能够实现无密码登录:

  1. su - hadoop  
  2. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
  3. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  

第一条命令将当前用户切换为hadoop(如果当前用户就是hadoop,则无需输入),第二条命令将生成一个公钥和私钥对(即id_dsa和 id_dsa.pub两个文件,位于~/.ssh文件夹下),第三条命令使得hadoop用户能够无需输入密码通过SSH访问localhost。这时可 通过以下命令来验证安装是否成功(如果没有提示输入密码直接登录成功,则说明安装成功):

ssh localhost //若不需要密码ssh配置好 

二、配置Hadoop

Hadoop的配置文件都放在${HADOOP_HOME}/conf这个文件夹下面,主要是四个配置文件,分别是core-site.xml,hadoop-env.sh,hdsf-site.xml和mapred-site.xml。

(1)修改conf/hadoop-­env.sh,设置JAVA_HOME,在该文件中找到如下行,去掉前面的注释。

# Thejava implementation to use. Required.  

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun  

即使在环境变量里面已经配置了JAVA_HOME,这里也不可以用JAVA_HOME=${JAVA_HOME},一定要写成绝对路径

修改为:

# Thejava implementation to use.  Required.  

  export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_27  

 

接着修改HADOOP_PID_DIR的值,将

# The directory where pid files are stored. /tmp by default.

# export HADOOP_PID_DIR=/var/hadoop/pids

改为:

# The directory where pid files are stored. /tmp by default.

export HADOOP_PID_DIR=/opt/hadoop-0.20.2/pids(hadoop目录的下的pids文件夹)

这个值主要是用来存放HADOOP进程的pid文件,由于linux会定时清理/tmp下的文件,所以用默认值的话可能会导致找不到pid文件,使得hadoop进程无法正常运行

 

(2)修改core-site.xml内容如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

<!-- Put site-specific property overrides in thisfile. -->

<configuration>

 <property>

   <name>fs.default.name</name>

  <value>hdfs://localhost:9000</value>

<!--默认的namenode的端口为8020 -->

 </property>

 <property>

   <name>hadoop.tmp.dir</name>

   <value>/home/hadoop/program/tmp-${user.name}</value>

<!--路径中可以使用用${变量名},但路径名不可以用${...}以及~/...,一定要写成绝对路径-->

  </property>

</configuration>  

 

(3)修改conf/hdfs-site.xml为

<?xml version="1.0"?>  

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>  

<configuration>  

    <property>  

        <name>dfs.replication</name>  

        <value>1</value>  

    </property>  

</configuration>  

设置复本数,默认是3

(4)修改conf/mapred-site.xml为:

<?xml version="1.0"?>  

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>  

<configuration>  

      <property>  

         <name>mapred.job.tracker</name>  

         <value>localhost:9001</value>  

      </property>  

</configuration>

jobtracker的ip和端口 

 

三、运行Hadoop(当前用户为hadoop)

   以上操作已经完成对Hadoop的配置,接下来是运行Hadoop。第一步需要进行格式化HDFS,运行脚本主要位于${HADOOP_HOME}/bin目录 下,注意HADOOP_HOME为解压缩之后的Hadoop根目录,此处为/home/hadoop/program/hadoop-0.20.1。格式 化HDFS命令为:(假设当前目录是已经在${HADOOP_HOME}/bin/)

./hadoop namenode –format  

若报 

/opt/jdk1.6.0_25/bin/java: cannot execute binary file

证明jdk与系统的位数不合(jdk为64位,系统为32位),换一个32位的jdk就可

启动单节点集群:

./start-all.sh  

这个操作会在本机上启动Namenode,SecondaryNameNode,Datanode,JobTracker和TaskTracker共计5个JVM进程,可以通过java自带的jps命令查看。

jps  

通过jps命令可以查看到进程如下:

TaskTracker  

SecondaryNameNode  

JobTracker  

NameNode  

TaskTracker

 

停止单节点集群:

./stop-all.sh  

另外可以通过以下网址查看节点的运行情况:
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态

 

Hadoop测试
(1)创建一个文本1.txt
  [linux-hd1:/usr/hadoop/bin #] vim 1.txt 
(2)文本内容是I Love You Hadoop
  [linux-hd1:/usr/hadoop/bin #] cat 1.txt 
  Hello Word 
(3)在HDFS文件系统上创建一个目录leo
 [linux-hd1:/usr/hadoop/bin #] ./hadoop fs -mkdir /test 
(4)复制文件1.txt到leo目录 
  [linux-hd1:/usr/hadoop/bin #] ./hadoop fs -copyFromLocal 1.txt /test 
(5)显示HDSF文件系统目录下的内容
  [linux-hd1:/usr/hadoop/bin #] ./hadoop fs -ls /test 
  Found 1 items
  -rw-r--r-- 2 grid supergroup 0 2012-09-02 21:08 /leo/1.txt
(6)查看在HDFS文件系统上1.txt内容
  [linux-hd1:/usr/hadoop/bin #] ./hadoop fs -cat /leo/1.txt 
  Hello Word

 测试通过

分享到:
评论

相关推荐

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04

    3. 伪分布式模式安装:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。 4. 分布式模式安装:使用多个...

    Hadoop单节点伪分布式搭建中文版

    在单节点伪分布式模式下,所有Hadoop服务都在同一个节点上以独立Java进程的方式运行,模拟分布式环境的行为,但仍保持简单易管理。 **预备知识与要求** 1. **支持平台**:Hadoop主要支持GNU/Linux作为开发和生产...

    Hadoop3.1.3安装和单机/伪分布式配置

    - **定义**:Hadoop可以在单个节点上以伪分布式模式运行,这意味着虽然只有一个物理节点,但是不同的Hadoop组件(如NameNode和DataNode)会分别运行在不同的Java进程中。 - **特点**: - 模拟了分布式环境。 - 有...

    hadoop 伪分布式环境配置

    "Hadoop 伪分布式环境配置" Hadoop 伪分布式环境配置是指在单机上模拟 Hadoop 分布式环境的配置过程。这种配置方式可以模拟分布式环境,方便开发者测试和调试 Hadoop 程序。下面是 Hadoop 伪分布式环境配置的详细...

    云计算应用实验报告 武汉理工大学云计算应用 hadoop单机模式和伪分布式

    单机模式仅在本地启动一个Hadoop进程,而伪分布式模式则模拟多节点集群环境,每个节点在本地运行。 **实验步骤:** 1. **安装Ubuntu 20.04.3**:在虚拟机中安装操作系统,确保系统更新至最新版本。 2. **安装JDK8*...

    Hadoop伪分布式集群环境搭建

    本篇将详细介绍如何在本地计算机上搭建Hadoop的伪分布式集群环境,这非常适合初学者进行学习和测试。 首先,我们需要了解Hadoop的组成部分。Hadoop主要由两个核心组件构成:HDFS(Hadoop Distributed File System)...

    hadoop伪分布式安装.pdf

    - **伪分布式模式**:在这种模式下,所有Hadoop守护进程都在单个节点上运行,但它们作为不同的Java进程运行。这意味着尽管所有组件(如NameNode、DataNode、JobTracker等)都运行在同一台机器上,但是它们之间的交互...

    hadoop伪分布式安装过程截图

    尽管所有组件都在单个节点上,但它们之间仍然像在分布式环境中一样通信,这对于测试和学习Hadoop的运作机制非常有用。 3. **安装前准备**:在开始安装之前,需要确保系统满足Hadoop的最低硬件和软件需求,比如Java...

    Linix下Hadoop的伪分布式配置

    在Linux环境下配置Hadoop的伪分布式模式是学习和测试Hadoop功能的重要步骤。这个模式允许你在单个节点上运行Hadoop,模拟多节点集群的行为,无需物理扩展硬件资源。以下是对配置过程的详细解释: 首先,你需要确保...

    shell脚本配置Hadoop伪分布式.zip

    伪分布式模式是在单个节点上模拟分布式环境,这对于学习和测试Hadoop功能非常有用,无需复杂的多节点集群设置。 1. **Hadoop-2.8.1**: 这是Hadoop的特定版本,2.8.1是Hadoop 2.x系列的一个稳定版本。这个版本提供了...

    伪分布式hadoop的配置信息

    伪分布式Hadoop配置涉及多个方面,包括Java环境变量、HDFS、YARN、MapReduce以及工作节点的配置。正确配置这些参数对于确保Hadoop集群稳定运行至关重要。通过上述步骤,我们可以构建一个基本的伪分布式Hadoop环境,...

    全球最详细的从零起步搭建Hadoop单机和伪分布式开发环境图文教程

    在伪分布式模式下,Hadoop模拟了一个包含NameNode和DataNode的集群环境,但所有服务实际上运行在同一台机器上。 Wordcount示例是一个简单的MapReduce程序,用于统计一段文本中每个单词出现的次数。在Hadoop的单机和...

    Linux下Hadoop伪分布式配置.pdf

    Hadoop 本身是无法区分伪分布式和分布式的,两种配置也很相似,唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均是一个机器。 在 Linux 系统下配置 Hadoop 伪分布式需要进行以下步骤: 1. JDK ...

    windows配置hadoop-1.1.0的伪分布式环境

    在伪分布式环境中,Hadoop在单台机器上模拟分布式运行,所有进程都在同一个Java虚拟机(JVM)中运行,这对于学习和测试非常方便。 配置Hadoop 1.1.0的伪分布式环境主要包括以下几个步骤: 1. **环境变量配置**: ...

    搭建Hadoop单机伪分布式环境1

    搭建Hadoop单机伪分布式环境是一项基础而重要的工作,尤其对于初学者来说,这有助于理解Hadoop的工作原理和运行机制。下面将详细讲解这个过程中的关键步骤和涉及的知识点。 首先,我们需要创建一个新的用户,例如名...

Global site tag (gtag.js) - Google Analytics