一、前期环境

  • 安装概览
IP Host Name Software Node
192.168.23.128 ae01 JDK 1.7 NameNode, SecondaryNameNode, DataNode, JobTracker, TaskTracker
192.168.23.129 ae02 JDK 1.7 DataNode, TaskTracker
192.168.23.130 ae03 JDK 1.7 DataNode, TaskTracker
    若使用虚拟机安装,可以安装 samba, smbfs方便对于文件的控制。
  • 系统环境: ubuntu-12.04.2-server-amd64
  • 安装目录: /usr/local/ae
  • JDK 安装目录: export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
  • Hadoop版本: hadoop-1.2.1

二、服务器间无密码登录

进入每台服务器,分别安装SSH,并生成ssh-key。下面安装步骤只讲解在ae01安装SSH和生成SSH-KEY,ae02、ae03重复此步骤。

  • 安装SSH

    user@ae01:~$ sudo apt-get install openssh-server
  • 生成SSH-KEY
    user@ae01:~# ssh-keygen -t rsa -P ""
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Created directory '/root/.ssh'.
    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:
    :3d:a4:::c4:::6b:6b:1c:7c:e9:8f:: user@ae01
    The key's randomart image is:
    +--[ RSA ]----+
    | .=*.. |
    | === . . |
    | Oo= E |
    | = = . o |
    | S . . |
    | . + |
    | . . |
    | |
    | |
    +-----------------+
  • 配置无密码SSH登录
    如果你希望服务器a1不需要密码就能SSH登录服务器a2,你需要将a1生成的公共密码添加到a2的~/.ssh/authorized_keys文件.
    此次安装中,ae01是NameNode,需要无密码登录到DataNode(ae02,ae03)的服务器,所以我们需要分别将ae01生成的公钥,添加到ae02,ae03的authorized_keys文件。
    修改ae01的公钥名字为id_rsa_ae01.pub。
    user@ae01:~/.ssh$ sudo cp id_rsa.pub id_rsa_ae01.pub

    复制id_rsa_ae01.pub到服务器ae02

    user@ae01:~/.ssh$ scp ./id_rsa_ae01.pub user@192.168.23.129:~/.ssh/

    登录到ae02,将id_rsa_ae01.pub 添加到authorized_keys

    user@ae02:~/.ssh$ cat id_rsa_ae01.pub >> authorized_keys

    重新登录到ae01,并尝试无密码方面ae02

    user@ae01:~/.ssh$ ssh ae02
    Welcome to Ubuntu 12.04. LTS (GNU/Linux 3.5.--generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Thu Jun :: CST System load: 0.0 Processes:
    Usage of /: 10.3% of .45GB Users logged in:
    Memory usage: % IP address for eth0: 192.168.23.129
    Swap usage: % Graph this data and manage this system at https://landscape.canonical.com/ packages can be updated.
    updates are security updates. Last login: Tue Jun :: from 192.168.23.128

    对以上机器都进行如上操作,确保两两之间可以实现无密码ssh.

三、安装 Hadoop

  • 修改host文件,添加3台服务器的host

    user@ae01:/usr/local/ae$ sudo vim /etc/hosts
    127.0.0.1         localhost
    192.168.23.128 ae01
    192.168.23.129 ae02
    192.168.23.129 ae03
  • 解压Hadoop
    将hadoop-1.2.1.tar.gz 复制到 /usr/local/ae,解压
    user@ae01:/usr/local/ae$ sudo tar -zxvf hadoop-1.2..tar.gz
  • 添加Hadoop环境变量
    export HADOOP_HOME=/usr/local/ae/hadoop-1.2.
    export HADOOP_HOME_WARN_SUPPRESS=
    export PATH=$PATH:$HADOOP_HOME/bin
  • 配置Hadoop
    core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置

    修改$HADOOP_HOME/conf/hadoop-env.sh 添加JAVA_HOME

    export JAVA_HOME=/usr/local/ae/jdk1..0_51

    修改$HADOOP_HOME/conf/core-site.xml 加入以下文件到<configuration>节点

    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/ae/storage/hadoop/temp</value>
    <description>A base for other temporary directories.</description>
    </property> <property>
    <name>fs.default.name</name>
    <value>hdfs://ae01:9000</value>
    <description>
    The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to
    determine the host, port, etc. for a filesystem.
    </description>
    </property>
    <property>
    <name>fs.checkpoint.period</name>
    <value>3600</value>
    <description>
    The number of seconds between two periodic checkpoints.
    </description>
    </property> <property>
    <name>fs.checkpoint.size</name>
    <value>67108864</value>
    <description>
    The size of the current edit log (in bytes) that triggers a periodic checkpoint even if the fs.checkpoint.period hasn't expired.
    </description>
    </property>

    修改$HADOOP_HOME/conf/hdfs-site.xml 加入以下文件到<configuration>节点

    <property>
    <name>dfs.name.dir</name>
    <value>/usr/local/ae/storage/hadoop/name</value>
    <description>
    Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
    </description>
    </property> <property>
    <name>dfs.data.dir</name>
    <value>/usr/local/ae/storage/hadoop/data</value>
    <description>]
    Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
    </description>
    </property> <property>
    <name>dfs.http.address</name>
    <value>ae01:50070</value>
    <description>
    The address and the base port where the dfs namenode web ui will listen on. If the port is 0 then the server will start on a free port.
    </description>
    </property> <property>
    <name>dfs.permissions</name>
    <value>false</value>
    <description>
    If "true", enable permission checking in HDFS. If "false", permission checking is turned off,
    but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories.
    </description>
    </property> <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
    </description>
    </property>

    修改$HADOOP_HOME/conf/mapred-site.xml 加入以下文件到<configuration>节点

    <property>
    <name>mapred.job.tracker</name>
    <value>ae01:9001</value>
    <description>
    The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task.
    </description>
    </property>

    修改$HADOOP_HOME/conf/masters

    ae01

    修改$HADOOP_HOME/conf/slaves

    ae01
    ae02
    ae03

    在上述配置中:
    fs.default.name的值hdfs://ae01:9000 用来决定NameNode
    mapred.job.tracker的值ae01:9001 用来决定JobTracker
    masters文件的值决定SecondaryNameNode
    slaves文件的值决定DataNode和TaskTracker

    创建文件目录/usr/local/ae/storage/hadoop, 并赋予hadoop 文件夹足够的权限

    user@ae01: ~$ /usr/local/ae$ sudo chmod 777 ./storage/hadoop/

   将配置好的Hadoop复制到ae02和ae03,并在ae02和ae03上创建文件目录/usr/local/ae/storage/hadoop

  • 初始化和启动Hadoop

    登录ae01,初始化

    user@ae01:~$ hadoop namenode -format

    启动Hadoop

    user@ae01:~$ start-all.sh

    使用jps查看java进程
    ae01

    user@ae01:/usr/local/ae$ jps
    26239 JobTracker
    26158 SecondaryNameNode
    36052 Jps
    26468 TaskTracker
    25687 NameNode
    25926 DataNode

    ae02

    user@ae02:~$ jps
    25021 Jps
    18999 TaskTracker
    18791 DataNode

    ae03

    user@ae03:~$ jps
    3901 DataNode
    9485 Jps
    4106 TaskTracker

Hadoop 分布式环境搭建的更多相关文章

  1. 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)

    一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...

  2. [大数据学习研究] 3. hadoop分布式环境搭建

    1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...

  3. WMware 中CentOS系统Hadoop 分布式环境搭建(一)——Hadoop安装环境准备

    1.创建3台虚拟机并装好系统,这里使用64位CentOS. 2.Ping测试[确保两两能ping通]: [ping xxx.xxx.xxx.xxx] 3.安装SSH:[yum install ssh ...

  4. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  5. Hadoop学习笔记1:伪分布式环境搭建

    在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...

  6. 【HADOOP】| 环境搭建:从零开始搭建hadoop大数据平台(单机/伪分布式)-下

    因篇幅过长,故分为两节,上节主要说明hadoop运行环境和必须的基础软件,包括VMware虚拟机软件的说明安装.Xmanager5管理软件以及CentOS操作系统的安装和基本网络配置.具体请参看: [ ...

  7. 【转】Hadoop HDFS分布式环境搭建

    原文地址  http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...

  8. 【Hadoop】伪分布式环境搭建、验证

    Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...

  9. 【Hadoop基础教程】4、Hadoop之完全分布式环境搭建

    上一篇blog我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTrac ...

随机推荐

  1. SQLServer基本操作

    SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言 1.分离数据库:将当前数据库文件和数据库引擎的关系断开,没有任何关系了,这样就可以随 ...

  2. app推送方案

    --方案原理 1.轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息.但这种方式对服务器的压力太大,且比较费客户端的流量,就是不断地向服务器发送请求,但是这样开发很简 ...

  3. IPC进程通信机制

    select.poll.epoll之间的区别总结[整理] 进程间通信---共享内存 信号量和互斥锁的区别 http://www.2cto.com/os/201510/445553.html http: ...

  4. javascript事件与event对象的属性

    javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...

  5. My97DatePicker使用技巧

    My97DatePicker使用是很常用的控件,总结一下常用使用技巧: 1.onpicked是事件,也就选择日期之后触发事件: 2.isShowClear:是否显示清理按钮: 3.maxDate:最大 ...

  6. 【JAVA多线程概述】

    一.多线程概述 一个进程中至少有一个线程,每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务. 不能没一个问题都使用多线程,能使用单线程解决的问题就不要使用多线程解决. 使用多线程的弊端: ...

  7. WMSYS.WM_CONCAT 函數的用法

    select t.rank, t.Name from t_menu_item t; 10 CLARK    10 KING    10 MILLER    20 ADAMS    20 FORD    ...

  8. 攻城狮在路上(壹) Hibernate(五)--- 映射一对多关联关系

    关联是有方向的,包含单向关联和双向关联.分别讨论.本文以客户Customer和订单Order来进行讨论:一个Customer有多个Order,每个Order对应一个Customer. Customer ...

  9. redmine安装部署

    http://www.sxt.cn/u/4647/blog/5557 http://blog.chinaunix.net/uid-26729093-id-4669508.html http://my. ...

  10. oracle pctfree和pctused详解

    一.建立表时候,注意PCTFREE参数的作用 PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert ...