Linux CentOS下Hadoop伪分布模式安装笔记

       经过几天的调试,终于在Linux Cent OS 5.0下成功搭建Hadoop测试环境。本次测试在一台服务器上进行伪分布式搭建。Hadoop 伪分布式模式是在单机上模拟 Hadoop 分布式,单机上的分布式并不是真正的伪分布式,而是使用线程模拟分布式。Hadoop 本身是无法区分伪分布式和分布式的,两种配置也很相似,唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均是一个机器。虽然Hadoop的安装步骤并不复杂,但是我在安装期间还是遇到了很多琐碎的问题,现将自己搭建Hadoop的详细过程和遇到的问题记录下来。

 

二. 环境搭建

      搭建测试环境所需的软件包括:jdk1.6.0_20、hadoop-0.20.2.tar.gz。测试服务器操作系统Linux Cent OS 5.0。

 

1.  SSH无密码验证配置

     Hadoop 需要使用SSH 协议,namenode 将使用SSH 协议启动 namenode和datanode 进程,伪分布式模式数据节点和名称节点均是本身,必须配置 SSH localhost无密码验证。

    用root用户登录,在家目录下执行如下命令:ssh-keygen -t rsa 

[root@master ~]# ssh-keygen -t  rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  & 按回车默认路径 &
Created directory '/root/.ssh'.  &创建/root/.ssh目录&
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38 root@master
     通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:

[root@master .ssh]# cat id_rsa.pub > authorized_keys

配置完毕,可通过ssh 本机IP 测试是否需要密码登录。

 

2. JDK安装及Java环境变量的配置

2.1 JDK安装

     root 用户登陆,新建文件夹 /usr/program ,下载 JDK 安装包
jdk-6u13-linux-i586.bin,复制到目录/usr/ program 下,在命令行进入该目录,执行命令“./ jdk-6u20-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.6.0_20,安装完毕。 

2.2 java环境变量配置

        root 用户登陆,命令行中执行命令“vi /etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile 这个文件很重要,后面 Hadoop 的配置还会用到)。 
# set java environment
   export JAVA_HOME=/usr/program/jdk1.6.0_20
   export JRE_HOME=/usr/program/jdk1.6.0_20/jre
   export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效

    chmod +x  /etc/profile ;增加执行权限

    source  /etc/profile ;

配置完毕后,在命令行中输入java -version,如出现下列信息说明java环境安装成功。

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

 

2. Hadoop配置

   下载 hadoop-0.20.2.tar.gz,将其解压到/usr/local/hadoop 目录下,解压后目录形式是/usr/local/hadoop/hadoop-0.20.2。使用如下命令:
  tar zxvf  hadoop-0.19.1.tar.gz 进行hadoop压缩文件解压。

2.1   进入/usr/local/hadoop/hadoop-0.20.2/conf, 配置Hadoop配置文件

2.1.1 配置hadoop-env.sh文件

添加 # set java environment
             export JAVA_HOME=/usr/program/jdk1.6.0_20

编辑后保存退出。

 

2.1.2 配置core-site.xml

[root@master conf]# vi core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

   <property>

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

     <value>hdfs://202.173.253.36:9000/</value>

   </property>

   <property>

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

     <value>/usr/local/hadoop/hadooptmp</value>

   </property>

</configuration>

 

2.1.3 配置hdfs-site.xml

[root@master conf]# vi  hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

     <name>dfs.name.dir</name>

     <value>/usr/local/hadoop/hdfs/name</value>

  </property>

  <property>

     <name>dfs.data.dir</name>

     <value>/usr/local/hadoop/hdfs/data</value>

  </property>

  <property>

     <name>dfs.replication</name>

     <value>1</value>

  </property>

</configuration>

    

2.1.4 配置mapred-site.xml

[root@master conf]# vi mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

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

     <value>202.173.253.36:9001</value>

  </property>

  <property>

     <name>mapred.local.dir</name>

     <value>/usr/local/hadoop/mapred/local</value>

  </property>

  <property>

     <name>mapred.system.dir</name>

     <value>/tmp/hadoop/mapred/system</value>

  </property>

</configuration>

 

2.1.5 配置masters文件和slaves文件

[root@master conf]# vi masters

202.173.253.36

[root@master conf]# vi slaves

202.173.253.36

注:因为在伪分布模式下,作为master的namenode与作为slave的datanode是同一台服务器,所以配置文件中的ip是一样的。

 

2.1.6 编辑主机名

[root@master ~]# vi /etc/hosts

# Do not remove the following line, or various programs
 that require network functionality will fail.

127.0.0.1                      localhost
202.173.253.36            master
202.173.253.36            slave

注:因为是在伪分布模式下,所以master与slave是一台机

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyzyss.html