一:系统安装与配置

虚拟机软件: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 打开终端,输入:

sudo apt-get update

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

安装必要的工具:

sudo apt-get install vim
sudo apt-get install openssh-server

在每台主机上,

检測系统是否开启ipv6:

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

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

关闭ipv6:

sudo vim /etc/sysctl.conf

增加例如以下内容:

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

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文件:

在终端中输入:

sudo vim /etc/hosts

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



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

ping Node1

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

三:主机无password登录节点

在master节点上运行:

ssh-keygen -t rsa -P

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

在slaves节点上运行:

mkdir ~/.ssh

生成用于保存密钥的目录

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

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

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

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

測试是否成功:

ssh Node1

依次測试一下

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

若Master机需无password登录自己:

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. 将Temporary文件夹里的Logo文件转移到Logo文件夹

    /// <summary> /// 将Temporary文件夹里的Logo文件转移到Logo文件夹 /// </summary> /// <param name=&quo ...

  2. [转] C#中发送消息给指定的窗口,以及接收消息

    原文C#中发送消息给指定的窗口,以及接收消息 public class Note { //声明 API 函数 [DllImport("User32.dll", EntryPoint ...

  3. C#常用格式输出

    ylbtech- .NET-Basic:C#常用格式输出 C#常用格式输出 1.A,相关概念返回顶部 using System; namespace Test { class Formating { ...

  4. Android WebView常见问题的解决方案总结----例如Web page not available

    之前android虚拟机一直都可以直接联网,今天写了一个WebView之后,突然报出了Web page not available的错误,但是查看虚拟机自带的浏览器,是可以上网的,所以检查还是代码的问 ...

  5. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (六) 自动化测试结构小节

    上一篇‘e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (五) 如何让窗体记录登录 ...

  6. 你今天Python了吗?(上)

    你今天Python了吗?为了提高你的生产效率,赶快去关注一下小蟒蛇的成长吧!别再把Python当作你的业余爱好了,她能为你做手头上几乎所有的工作,而且能做得更好,也让你把写代码看成是一种真正的乐趣.为 ...

  7. 【hadoop代码笔记】Hadoop作业提交中EagerTaskInitializationListener的作用

    在整理FairScheduler实现的task调度逻辑时,注意到EagerTaskInitializationListener类.差不多应该是job提交相关的逻辑代码中最简单清楚的一个了. todo: ...

  8. KVM背靠Linux好乘凉

    虚拟化是走向云的第一步,同理,开源虚拟化是走向开源云的第一步.云计算所提供的产品与方案都是围绕着IT资源的新交付与消费模式.云的形式多样,私有云.公有云与混合云,无论哪种云都具有三个关键特征:虚拟化. ...

  9. grep in linux

    1.作用linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正 ...

  10. Hellow world!

    其实一年前开始就有了些许开篇技术博客的想法,一直觉得写这些的人都一定好牛×.现刚毕业,我也是时候朝牛×之路迈进了.当然,我才刚入门不久,前路漫漫,需一步一脚印,先打算把平常遇到的一些问题与关注的东西都 ...