一:系统安装与配置

虚拟机软件:Virtualbox 4.3.10(已安装对应扩展包)

虚拟机:Ubuntu 13.04 LTS 32位(至于为什么选择13.04,是由于最新的版本号装上后开机会出现错误,每一个人的平台不一样,我的是Mac OS X 10.9.2。应该选择自己合适的版本号)

虚拟机配置:

须要特别说明的是:在设置网络时,一定要选择“桥接网卡”,至于界面名称,我的电脑是不能选择有线网卡的,由于选择有线网卡连不上网,仅仅能选择Wi-Fi网卡了。至于为什么不能选择NAT模式,是由于NAT模式下外网是不能訪问虚拟机的,这样虚拟机之间也就不能互相訪问了。关于很多其它,请Google虚拟机的网络连接方式的差别。

还有就是,在安装时建议先反勾选“启用网络连接”,由于如启用,在安装时会下载更新和语言包,假设你的网络质量不好,这是非常耗时的。在安装完毕后,重新启动后再启用网络连接,把“软件源”设置为系统測试的最佳软件源server。

在安装系统时,每一个虚拟机的username都应尽量设置为一样的。由于,ssh默认以当前username去登录另外的主机,假设“另外的主机”没有“当前username”这样一个用户,后果可想而知!我的username都设置为:Hadoop,登录名是hadoop

我的主机名:master节点的主机名是Master,slaves节点的主机名分别为:Node1、Node2、Node3

安装完四台虚拟机后:

把网络的ip地址固定下来(手动加入ip地址),尽量让四台主机的ip地址相邻。

Ctrl + Alt + T 打开终端,输入:

  1. sudo apt-get update

然后安装好系统更新,和语言支持。

安装必要的工具:

  1. sudo apt-get install vim
  2. sudo apt-get install openssh-server

在每台主机上,

检測系统是否开启ipv6:

  1. cat /proc/sys/net/ipv6/conf/all/disable_ipv6

假设结果显示0表示已开启,若为1表示已关闭

关闭ipv6:

  1. sudo vim /etc/sysctl.conf

增加例如以下内容:

  1. net.ipv6.conf.all.disable_ipv6 = 1
  2.  
  3. net.ipv6.conf.default.disable_ipv6 = 1
  4.  
  5. net.ipv6.conf.lo.disable_ipv6 = 1

重新启动系统

至于为什么要关闭ipv6,后面再说。

在master节点中下载Hadoop和JDK:

http://hadoop.apache.org

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Hadoop选择下载2.4.0

JDK我用的是1.7u55

二:主机互Ping

编辑/etc/hosts文件:

在终端中输入:

  1. sudo vim /etc/hosts

在当中以“ip地址主机名”的格式增加每一个主机的信息,我的Master主机中的hosts文件内容例如以下:



每台主机都加入对应的主机信息后,重新启动,測试:

  1. ping Node1

每台上依次都ping一下,看是否是通的。

三:主机无password登录节点

在master节点上运行:

  1. ssh-keygen -t rsa -P

一直回车默认,生成的密钥对保存在~/.ssh文件夹下

在slaves节点上运行:

  1. mkdir ~/.ssh

生成用于保存密钥的目录

把公钥拷贝到全部Slave上(须要输入password):

  1. scp /home/hadoop/.ssh/ id_rsa.pub hadoop@nistest.node:~/

在Slave机上把把id_rsa.pub追加到授权的key里面去:

  1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

測试是否成功:

  1. ssh Node1

依次測试一下

默认以当前用户登录,所以要求Master机和Slave机的username一致,

若Master机需无password登录自己:

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

四:JAVA环境安装

从master机把JDK包依次远程拷贝到全部Slave机的/usr/local文件夹下(须要password):

scp “JDK包名“  root@Node1:/usr/local

改动JDK包文件的文件拥有者,使用户hadoop可以使用该文件:

sudo chown hadoop:hadoop “JDK包名”

在master节点中把JDK包移动到/usr/local下:

sudo mv
“JDK包名” /usr/local

切换到/usr/local/文件夹下:

cd /usr/local

解压JDK包:

sudo tar –zxvf “JDK包名”

删除JDK包:

sudo rm -f
“JDK包名”

重命名刚解压的JDK目录:

sudo mv "JDK目录名" /usr/local/jdk

把jdk目录的全部者改为hadoop:

sudo chown -R hadoop:hadoop jdk/

配置环境变量:

sudo vim /etc/profile

增加:

export JAVA_HOME=/usr/local/jdk/

export JRE_HOME=/usr/local/jdk/jre

export LASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使配置生效:

source /etc/profile

假设是系统原来安装有其它的jdk,应该把刚才安装的jdk作为系统默认的jdk:

sudo update-alternatives --install /usr/bin/java java /usr/local/jdk/bin/java 300

sudo update-alternatives --install /usr/bin/java java /usr/local/jdk/bin/java 3000

sudo update-alternatives --install /usr/bin/jar jar /usr/local/jdk/bin/jar 300

sudo update-alternatives --install /usr/bin/javah javah /usr/local/jdk/bin/javah 300

sudo update-alternatives --install /usr/bin/javap javap /usr/local/jdk/bin/javap 300

sudo update-alternatives --config java

sudo update-alternatives --config javac

在其它节点也进行上面的配置,当然也能够从master节点上把jdk目录拷贝到其它节点上,可是一定要注意在每一个节点上改动环境变量。

五:Hadoop安装与配置

先在Master机上安装配置

安装和配置Hadoop须要以"root"的身份进行

把Hadoop包文件拷贝到/usr/local下

cp “Hadoop包文件源“ /usr/local

在/usr/local下,解压"hadoop-2.4.0.tar.gz"安装包:

tar –zxvf hadoop-2.4.0.tar.gz

将"hadoop-2.4.0"目录重命名"hadoop":

mv hadoop-2.4.0 hadood

将目录"hadoop"读写权限分配给hadoop用户:

chown –R hadoop:hadoop hadoop

删除"hadoop-2.4.0.tar.gz"安装包:

rm –rf hadoop-2.4.0.tar.gz

以hadoop在/usr/local/hadoop下创建“tmp”、“dfs”目录,在“dfs”下创建“name”、“data”目录:

mkdir /usr/local/hadoop/tmp

mkdir /usr/local/hadoop/dfs

mkdir /usr/local/hadoop/dfs/name

mkdir /usr/local/hadoop/dfs/data

再次把将目录"hadoop"全部权分配给hadoop用户:

chown –R hadoop:hadoop hadoop

配置"/etc/profile":

vim /etc/profile

增加:

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重新启动"/etc/profile":

source /etc/profile

配置Hadoop

这里要涉及到的配置文件有7个:

hadoop-env.sh

yarn-env.sh

slaves

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

都在/usr/local/hadoop/etc/hadoop文件夹下

下面行为以hadoop用户进行,切换到/usr/local/hadoop/etc/hadoop文件夹下

1.vim hadoop-env.sh

增加例如以下内容:

export JAVA_HOME=/usr/local/jdk

export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true

加入JDK的环境变量和让Hadoop优先使用ipv4,由于后面的配置文件里的网络port号系统默认是ipv6的,而ipv6是不通的,所以之前已经关闭ipv6,否则,在进行Hadoop測试时会重复连接根本连不通的ipv6port。

2.vim yarn-env.sh

增加例如以下内容:

export JAVA_HOME=/usr/local/jdk

3.vim slaves

把salve节点的主机名增加,把原来的“localhost”删掉。

4.vim core-site.xml

<property>

        <name>fs.defaultFS</name>

        <value>hdfs://Master:9000</value>

    </property>

    <property>

        <name>io.file.buffer.size</name>

        <value>131072</value>

    </property>

    <property>

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

        <value>file:/usr/local/hadoop/tmp</value>

        <description>Abase for other temporary directories.</description>

    </property>

    <property>

        <name>hadoop.proxyuser.hduser.hosts</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.proxyuser.hduser.groups</name>

        <value>*</value>

    </property>



</configuration>



5.vim hdfs-site.xml

<configuration>

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>Master:9001</value>

    </property>

    <property>

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

        <value>file:/usr/local/hadoop/dfs/name</value>

    </property>

    <property>

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

        <value>file:/usr/local/hadoop/dfs/data</value>

    </property>

    <property>

        <name>dfs.replication</name>

        <value>3</value>

    </property>

    <property>

        <name>dfs.webhdfs.enabled</name>

        <value>true</value>

    </property>



</configuration>



6.vim mapred-site.xml

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.address</name>

        <value>Master:10020</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>Master:19888</value>

    </property>



</configuration>



7.vim yarn-site.xml

<configuration>

    <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>

    <property>

        <name>yarn.resourcemanager.address</name>

        <value>Master:8032</value>

    </property>

    <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>Master:8030</value>

    </property>

    <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>Master:8031</value>

    </property>

    <property>

        <name>yarn.resourcemanager.admin.address</name>

        <value>Master:8033</value>

    </property>

    <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>Master:8088</value>

    </property>



</configuration>



注意:原来文件里的<configuration></configuration>对是存在的,不要反复增加:

原来系统内的mapred-site.xml文件是mapred-site.xml.template应用以下的命令对其重命名:

mv mapred-site.xml.template mapred-site.xml

配置其余机器:

将 master节点上配置好的hadoop所在文件夹"/usr/local/hadoop"拷贝到全部的slave的"/usr/local"文件夹下(实际上Slave机器上的slavers文件是不必要的, 复制了也没问题)

scp -r /usr/local/hadoop root@Node1:/usr/local

以root用户登录"Slave

chown -R hadoop:hadoop(username:用户组) hadoop(目录)

启动及验证:

在启动前关闭集群中全部机器的防火墙

sudo ufw disable

在"Master"上使用普通用户hadoop进行操作。(备注:仅仅需一次,下次启动不再须要格式化,仅仅需 start-all.sh)

hadoop namenode –format

启动hadoop:

start-all.sh

查看DataNode的信息:

hadoop dfsadmin -report

查看已启用的服务:

jps

停用Hadoop:

stop-all.sh

发现了一个错误,已改动!假设您也发现了问题,请告诉我!谢谢!



Hadoop 2.4.0全然分布式平台搭建、配置、安装的更多相关文章

  1. Hadoop 2.4.0完全分布式平台搭建、配置、安装

    一:系统安装与配置 Hadoop选择下载2.4.0 http://hadoop.apache.org / http://mirror.bit.edu.cn/apache/hadoop/common/h ...

  2. Hadoop 2.6.0 完全分布式平台搭建

    一.准备软件环境: hadoop-2.6.0.tar.gz CentOS release 6.5 jdk-7u67-linux-x64.tar.gz 网络配置: master1            ...

  3. 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置

    Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...

  4. hadoop伪分布式平台搭建(centos 6.3)

    最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...

  5. Hadoop-04-HBase全然分布式环境搭建

    Hbase分布式具体安装步骤 Hadoop全然分布式环境已经搭建完毕(參见01_Hadoop全然分布式环境搭建). 注意:Hbase和Hadoop的版本号必须相应! 不然会出现各种问题! 这里选用的是 ...

  6. Spark2.4.0伪分布式环境搭建

    一.搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0  jdk1.8.0_161. spark-2.4.0-bin-hadoop2.6.这里的环境不一定需要和我一样,基本版 ...

  7. Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程

    一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...

  8. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  9. 基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建

    基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建 http://wenku.baidu.com/view/96fbfe0f581b6bd97f19ea1d.html 用MyE ...

随机推荐

  1. nginx - conf.d vs sites-available

    自己理解: conf.d - 扩展配置文件,用户配置文件 sites-available - 配置 虚拟主机(nginx支持多个虚拟主机,sites-enabled(存放 软链接,指向sites-av ...

  2. LeetCode: JumpGame 1 and 2

    Title : Given an array of non-negative integers, you are initially positioned at the first index of ...

  3. IE下JS接受ActiveX控件方法

    1.常规写法 <SCRIPT type="text/javascript" FOR="activexID" EVENT="onXXXevent( ...

  4. 【转】STL空间配置器

    STL空间配置器(allocator)在所有容器内部默默工作,负责空间的配置和回收.STL标准为空间配置器定义了标准接口(可见<STL源码剖析>P43).而具体实现细节则由各编译器实现版本 ...

  5. SQL Server2005安装配置以及测试

    SQL Server2005有2种版本,一种是集成版的, 一种是2个文件夹形式的.这里使用后者,安装文件夹名字为:SQL Server x86,该文件夹里面有Servers和Tools文件夹以及一些其 ...

  6. [原创]从Confluence获取html table并将其序列化为C#类文件的工具

    公司项目的游戏数据模型文档写在Confluence上,由于在项目初期模型变动比较频繁,手工去将文档中最新的模型结构同步到代码中比较费时费力,而且还很容易出错,于是写了一个小工具来自动化这个同步更新模型 ...

  7. 如何给10^7个数据量的磁盘文件排序--bitset

    题目: 输入:给定一个文件,里面最多含有n个不重复的正整数(也就是说可能含有少于n个不重复正整数),且其中每个数都小于等于n,n=10^7.输出:得到按从小到大升序排列的包含所有输入的整数的列表. 分 ...

  8. 关于FireFox下 CSS3 transition 与其他浏览器的差异

    最近一个项目,动画效果全靠CSS3来做,用得比较多的transition,发现了一点火狐与其他浏览器的小差异. 首先我们写CSS的时候,一般为属性值为0的属性,我们一般会这样写 #id{ posito ...

  9. Javascript手记-基本类型和引用类型

    1:ecmascript包含2中不同的数据类型,基本数值类型和引用数值类型.基本数据类型是简单的数据段,引用类型是指那些可能由多个值构成的对象. 1.1:常用的基本类型:Undefined,Null, ...

  10. Navicate

    快捷键 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r 只运行选中 ...