1)安装Ubuntu或其他Linux系统

   a)为减少错误,集群中的主机最好安装同一版本的Linux系统,我的是Ubuntu12.04。

b)每个主机的登陆用户名也最好都一样,比如都是hadoop,不然到最后启动hadoop时会出现不管你密码是否输入正确,都会提示权限不够的错误,如果你之前装系统时没注意到这个问题,可以之后在每个主机上都新建一个用户hadoop来实现,命令如下:

     增加hadoop用户:sudo  adduser hadoop

把新加的hadoop用户,添加到admin组中,让其有sudo权限:sudo usermod -aG adm,sudo  hadoop

切换到hadoop用户,以hadoop用户重新登陆linux系统即可。

c)修改每个主机的主机名hostname:充当主节点的主机名为master,充当从节点的主机名为slave1,slave2,slave3,4.....N

     这里我的实验是2台主机,一个主机充当主节点master,一个主机充当从节点slave2

可以通过命令:sudo vi /etc/hostname  来打开并修改hostname,修改完之后重新打开一个终端就可以看到结果,例如我这里的主节点主主机中修改完登陆用户名和主机名后如下所示:

登陆用户名为:hadoop   主机名为:master

另外一个从节点用户名也为hadoop,主机名为:slave2

2)配置网络

  a)配置每个节点的IP使其在同一个局域网内:

例如:

master   IP:192.168.130.15     slave2   IP:192.168.130.41

可以通过命令ifconfig来修改IP,例如 :sudo ifconfig eth0 192.168.130.15(新IP地址)。

b)在每个master和slave的hosts文件中加入如下几行:

打开并修改hosts :sudo vi /etc/hosts

  新添加内容:

  192.168.130.15  master

192.168.130.41   slave2

 c)各个节点相互ping测试

例如:这里用主节点master ping下从节点slave2

如果你的实验中slave节点多于1个,每个节点之间都ping下,确保可以ping通。

3)安装JDK

     Hadoop是用JAVA编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK,因此在安装Hadoop前,必须安装JDK。

这里我安装的JDK版本是 jdk-6u38-linux-i586.bin,可用其他版本,但需要修改环境变量以及后面的配置路径。

  需对实验中所有主机执行以下步骤:

  1、把 jdk 安装文件拷贝到/usr/lib 目录下,然后安装
     sudo cp jdk-6u38-linux-i586.bin /usr/lib
     cd /usr/lib

修改jdk权限: sudo chmod +x jdk-6u38-linux-i586.bin
     修改完权限后就可以安装: sudo ./jdk-6u38-linux-i586.bin
      2、jdk安装成功后修改环境变量并且把 java 安装到系统
    a)配置环境变量,编写一个 java.sh并放到目录 /etc/profile.d 下面,java.sh内容如下:

 #set jdk environment
export JAVA_HOME=/usr/lib/jdk1.6.0_38
export JRE_HOME=/usr/lib/jdk1.6.0_38/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

b)提升 java.sh 的权限:
    sudo chmod 775 /etc/profile.d/java.sh

    c)刷新 profile
    source /etc/profile

    d)把 Java 安装到系统:
         ln –s /usr/lib/jdk1.6.0_38/bin/java /usr/bin/java

    e)查看 Java 版本确定已经安装到系统:
  java –version


      如果看到版本信息,说明安装成功。

4)SSH 无密码验证配置

     Hadoop需要通过SSH来启动slave列表中的各台主机的守护进程,因此SSH必须安装。

SSH 是安全壳协议,使用公钥私钥机制,安全的在主机间传输文件,现在需要对集群进行无密码验证访问传输的配置。需对集群所有机器进行配置,建议以下操作集群按步骤同步,即所有机器都完成了一个步骤再进行下一步。

a)、安装 SSH
  sudo apt-get install ssh

b)、在 hadoop 用户下,使用命令:
  ssh-keygen –t rsa。

一路欢快的回车,有时需要在中间 y/n 时选择 y。
  将在~/.ssh 目录下产生一个 id_rsa 的私钥 和 id_rsa.pub 的公钥。

ssh-keygen 表示生成密钥,-t 表示指定生成的密钥类型,这里是rsa

  c)、进入~/.ssh 目录下,将 id_rsa.pub 复制为 authorized_keys,即把公钥加入到授权的key中。
  cd ~/.ssh
  cp id_rsa.pub authorized_keys
   
    d)将本机公钥发给所有其他机器

这里以slave2为例:

scp id_rsa.pub hadoop@master:~/.ssh/slave2_key

中途可能会提示让你输入对方主机的密码,输入之后就会提示成功发送。

所有机器完成此步骤后,在每台机器~/.ssh 目录下都会有其他所有机器发送来的公钥。

例如在执行完上面的命令后,此在master主机的~/.ssh/目录下会多出个slave2_key:

e)将收集到的所有公钥添加到 authorized_keys中

例如:上面master收到了slave2发来的slave2_key后,把其添加到authorized_keys中

cat slave2_key  >>  authorized_keys

f)  ssh登录

对于两台主机第一次 ssh 连接,需要确认 yes,很重要,必须确保集群所有机器相互 ssh连接过,否则后面 hadoop 安装会出问题。
         以 master 为例
        
         此时你已经登录到别人的机器了,hadoop@master 变为 hadoop@slave2,可以对slave2机器进行操作了。
         exit
         注意必须要退出,否则你后面做的所有操作都是在其他人的机器上。

5)安装Hadoop  

    我这里安装的版本为:hadoop-1.2.0.tar.gz  也可以到官网下载其他版本。

安装步骤如下:

a):在/opt 目录下建立 hadoop 目录,把 hadoop-1.2.0.tar.gz 拷贝到/opt/hadoop 目录下,然后解压

sudo mkdir /opt/hadoop

    sudo cp hadoop-1.2.0.tar.gz /opt/hadoop
    cd /opt/hadoop
    sudo tar –zxvf hadoop-1.2.0.tar.gz
    cd hadoop-1.2.0
    b) :  配置Hadoop

   (1)指定JDK的安装位置:

编辑 conf/hadoop-env.sh 文件,把 JAVA_HOME 设置成 Java 安装根路径,如下:
      export JAVA_HOME=/usr/lib/jdk1.6.0_38 ,记住把 export 前面的#去掉

(2)配置conf/目录下的core-site.xml文件,这里配置的是HDFS的地址和端口号:

配置之前请先在/opt/hadoop 目录下建立 tmp 文件夹:sudo mkdir /opt/hadoop/tmp
   

#core-site.xml

 1 <configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

     (3)配置conf/目录下的 hdfs-site.xml文件:

配置之前新建目录 /opt/hadoop/hdfs :sudo mkdir /opt/hadoop/hdfs

#hdfs-site.xml 

  <configuration>
<property>
<name>dfs.replication</name>
<value>1</value> #这里1是数据副本数量,默认是3,我这里写成1,因为我只用了1个datacode,slave2
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property>
</configuration>

   (4)配置 conf/mapred-site.xml
       这里是配置MapReduce的配置文件,配置JobTracker的地址和端口

# conf/mapred-site.xml
1 <configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>

(5)配置 conf/masters 和 conf/slaves 来设置主从节点,注意最好使用主机名,并且保证各节点之间可以通过主机名可以互相访问,每个主机名一行:
              我这里的 conf/masters内容为:

master

conf/slaves内容为:

  slave2

(6)提升 hadoop 权限,这里因为安装 hadoop 需要足够高的权限,所以一个简便方法是将整个 hadoop 文件提升至 777 权限:
        sudo chmod 777 -R /opt/hadoop

   对每台机器都进行上述操作。

6)启动hadoop

     下面操作在master主机上进行     a)首先格式化hadoop

     ./bin/hadoop namenode -format
    

b)启动hadoop

./bin/start-all.sh   启动提示如下:


       从上图中可以看出是先启动了namenode,然后是启动datanode,再启动secondarynamenode,最后启动taskracker.

c)验证方式

1)用命令查看集群状态:./bin/hadoop  dfsadmin –report

  (2)也可以用java自带jps查看进程:

在master主机上查看结果如下:

也可以在slave主机上用jps查看下TaskTracker和DataNode是否被启动

(3)登录http://master:50070和http://master:50030查看集群状态

http://master:50070状态如下:

  http://master:50030状态如下:

可以看出启动了一个datanode,因为我这里就只有一个slave2,如果多台主机组成集群,状态更明显。

   d)关闭hadoop

./bin/stop-all.sh

先关闭了jobtracker,其次关闭slave2上的tasktracker,然后关闭namenode,关闭datanode,最后关闭secondarynamenode

Linux下Hadoop集群环境的安装配置的更多相关文章

  1. Hadoop集群搭建-02安装配置Zookeeper

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  2. Hadoop集群搭建-05安装配置YARN

    Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...

  3. Hadoop集群搭建-04安装配置HDFS

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  4. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...

  5. Uubntu14.04下 Hadoop集群环境搭建

    1机器信息 master192.168.3.10 hadoop/ hadoop slave1192.168.3.11 hadoop/ hadoop slave2192.168.3.12 hadoop/ ...

  6. Linux下Redis集群环境的搭建

    一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 ...

  7. Linux环境下Hadoop集群搭建

    Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...

  8. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...

  9. CentOS7 安装Hadoop集群环境

    先按照上一篇安装与配置好CentOS以及zookeeper http://www.cnblogs.com/dopeter/p/4609276.html 本章介绍在CentOS搭建Hadoop集群环境 ...

随机推荐

  1. MIPI DSI 和 D-PHY 初始化序列

    MIPI DSI 和 D-PHY 初始化序列 -- 深圳 南山平山村 曾剑锋 参考文档: i.MX 6Dual/6Quad Multimedia Applications Processor Refe ...

  2. Dom文档模型

    文档对象模型     通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目.要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所 ...

  3. Maven加依赖包

    对于初学maven的人来说刚开始会有个困惑,那就是怎么知道依赖的jar的groupId和atrifactId是什么, 比如要依赖mybatis,会在pom.xml中配置如下: <dependen ...

  4. 【C++】统计代码覆盖率(三)

    报告集成到jenkins才是最终目的,因此又进行了部分资料查找,得到html和xml报告集成jenkins的配置如下: 一 集成html报告 这种方式集成在你已经用gcov+lcov生成了html报告 ...

  5. javascript正则表达式简介

      javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...

  6. PHP 新建动态类的代码

    $testObject=(object)array(); $testObject->first="firstValue"; var_dump($testObject); $t ...

  7. ps闪闪发光的字 教程+自我练习

    本教程的文字效果非常经典.不仅是效果出色,创作思路及制作手法都堪称完美.作者并没有直接使用纹理素材,纹理部分都是用滤镜来完成.这需要很强的综合能力,非常值得学习和借鉴.最终效果 我的: 1.创建一个新 ...

  8. [转]Javascript定义类的三种方法

    作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...

  9. Python面试必须要看的15个问题

    本文由EarlGrey@编程派独家编译,转载请务必注明作者及出处. 原文:Sheena@codementor 译文:编程派 引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Pyt ...

  10. 解决“运行arm-linux-gcc命令,提示No such file or directory”的问题

    今天在ubuntu14.04上安装arm的交叉编译器arm-linux-gcc,环境变量配置好以后,运行arm-linux-gcc命令,总提示No such file or directory.然后去 ...