Hadoop的安装非常简单,可以在官网上下载到最近的几个版本,最好使用稳定版。本例在3台机器集群安装。hadoop版本如下:

工具/原料

  • hadoop-0.20.2.tar.gz
  • Ubuntu12.10

安装步骤:

  1. 1

    安装ubuntu

    Ubuntu12.10交换空间4G(内存2G)。具体安装过程不赘述。

    用户名统一为:hadoop;

    组群:hadoop;

    机器名:namenode(主节点),datanode1(从节点1),datanode2(从节点2)。

  2. 2

    在Ubuntu下创建hadoop用户组和用户(也可在安装系统时通过界面配置)

    1. 创建hadoop用户组;

    $ sudo addgroup hadoop

    记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。

    2. 创建hadoop用户;

    $ sudo adduser -ingroup hadoop hadoop

    3. 给hadoop用户添加权限,打开/etc/sudoers文件;

    $ sudo gedit /etc/sudoers

    4. 给hadoop用户赋予root用户同样的权限。

    在root  ALL=(ALL:ALL)   ALL下添加如下内容:

    hadoop ALL=(ALL:ALL)   ALL

  3. 3

    在Ubuntu下安装JDK

    配置环境变量:

    $ sudo gedit /etc/profile

    在文件的末尾加上如下内容,保存并关闭文件

    # for java

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0

    export JRE_HOME=${JAVA_HOME}/jre

    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

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

    使设置生效:到此部JDK的配置就都完成了

    $ source /etc/profile

    为保证正确性,进行简单的测试

    $ java -version

    输出:

    java version "1.8.0"

    Java(TM) SE Runtime Environment (build 1.8.0)

    Java HotSpot(TM) Server VM

    修改默认JDK:

    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 300

    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 300

    sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0/bin/jar 300

    以下两句可选(最好执行):

    sudo update-alternatives --config java

    sudo update-alternatives --config javac

  4. 4

    修改机器名(这步骤可以省略)

    每当ubuntu安装成功时机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。

    1. 打开/etc/hostname文件;

    $  sudo gedit /etc/hostname

    2. 将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为"namenode"。 重启生效

    3.修改/etc/hosts文件

    $  sudo gedit /etc/hosts

    改为如下所示,并且将每台机器的IP设置为固定IP

  5. 5

    安装ssh服务

    这里的ssh不是指三大框架:spring,struts,hibernate,而是一种远程登录协议。

    ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:

    $ sudo ps -ef | grep ssh

    如果只有 ssh-agent 就需要安装openssh-server了。

    $ sudo apt-get install ssh openssh-server

  6. 6

    建立ssh无密码登录本机

    首先要转换成hadoop用户,执行以下命令:

    $ sudo su - hadoop

    ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

    1. 创建ssh-key,,这里我们采用rsa方式;

    $ ssh-keygen -t rsa -P ""

    请注意, ssh-kengen 是用连字符连着的,千万不要分开。问题如下:

    按照您的步驟執行的過程中我在ssh -keygen -t rsa -P ""這邊發生的點小狀況輸入之後終端機顯示Bad escape character "ygen"(红字部分就是问题所在,他将 ssh-keygen 分开了。)

    (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

    2.  创建授权文件authorized_keys

    进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:

    (1) 将id_rsa.pub追加到authorized_keys授权文件中;

    $ cd ~/.ssh

    $ cat id_rsa.pub >> authorized_keys

    (2) 复制 id_rsa.pub 为 authorized_keys

    $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

    3. 登录localhost;

    $ ssh localhost

    4. 执行退出命令(exit或CTRL+D);

  7. 7

    安装hadoop

    1. 假设hadoop-0.20.2.tar.gz在桌面,将它复制到安装目录/usr/local/下;

    $ sudo cp hadoop-0.20.2.tar.gz /usr/local/

    2. 解压hadoop-0.20.2.tar.gz;

    $ cd /usr/local

    $ sudo tar -zxvf hadoop-0.20.2.tar.gz

    3. 将解压出的文件夹改名为hadoop;

    $ sudo mv hadoop-0.20.2 hadoop

    4. 将该hadoop文件夹的属主用户设为hadoop,

    $ sudo chown -R hadoop:hadoop hadoop

    5. 打开hadoop/conf/hadoop-env.sh文件;

    $ sudo gedit hadoop/conf/hadoop-env.sh

    6. 配置conf/hadoop-env.sh(找到#exportJAVA_HOME=...,去掉#,然后加上本机jdk的路径);

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0  

    7. 打开conf/core-site.xml文件;

    $ sudo gedit hadoop/conf/core-site.xml

    <configuration>

    <property>

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

    <value>hdfs://namenode:9000</value>

    </property>

    </configuration>

    8. 打开conf/mapred-site.xml文件;

    $ sudo gedit hadoop/conf/mapred-site.xml

    <configuration>

    <property>

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

    <value>namenode:9001</value>

    </property>

    </configuration>

    9. 打开conf/hdfs-site.xml文件;

    $ sudo gedit hadoop/conf/hdfs-site.xml

    <configuration>

    <property>

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

    <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>

    </property>

    <property>

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

    <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>3</value>

    </property>

    </configuration>

    注意:datalog1,datalog2,data1,data2文件夹最好事先建好。

    10. 打开conf/masters文件,添加作为secondarynamenode的主机名.

    11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。

    作者设置如下:

  8. 8

    运行hadoop

    1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,

    $ cd /usr/local/hadoop/

    $ bin/hadoop namenode -format

    2. 启动bin/start-all.sh

    进入bin目录下, $ ./start-all.sh         关闭:同目录下./stop-all.sh

    3. 检测hadoop是否启动成功

    $ jps

    4. Web查看

    http://localhost:50030/ - 一个jobtracker的web访问接口,为的是方便用户查看相关信息。

    类似的还有:

    http://localhost:50070/ – web UI of theNameNode daemon

    http://localhost:50030/ – web UI of theJobTracker daemon

    http://localhost:50060/ – web UI of theTaskTracker daemon

    END

注意事项

 
  • 集群中所有机器的登录用户名和所属组都要相同,本文用户名为hadoop,组群也为Hadoop。
  • 每台机器的IP设置为固定IP,主机名-ip需要在每一台机器里修改对应的hosts文件。
  • 注意代码中的粗斜体为具体安装目录,要和实际目录相同。

Linux下安装Hadoop完全分布式(Ubuntu12.10)的更多相关文章

  1. Linux下配置Hadoop伪分布式环境

    1. 准备Linux环境 提示:我用的系统是CentOS 6.4. 1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host- ...

  2. Linux下配置Hadoop全分布式环境

    1. 前提 部署全分布式环境,我们肯定不能在一台服务器上了,这里我用了7台服务器,在VMware上开了7个虚拟机,如下图所示: 我基本配置了一晚上才搞定,第一次配置一般都有错,这时候不妨去到hadoo ...

  3. 【大数据】Linux下安装Hadoop(2.7.1)详解及WordCount运行

    一.引言 在完成了Storm的环境配置之后,想着鼓捣一下Hadoop的安装,网上面的教程好多,但是没有一个特别切合的,所以在安装的过程中还是遇到了很多的麻烦,并且最后不断的查阅资料,终于解决了问题,感 ...

  4. Linux下安装Hadoop

    第一步: Hadoop需要JAVA的支持,所以需要先安装JAVA 查看是否已安装JAVA 查看命令: java -version JRE(Java Runtime Environment),它是你运行 ...

  5. VMwareWorkstation 平台 Ubuntu14 下安装配置 伪分布式 hadoop

    VMwareWorkstation平台Ubuntu14下安装配置伪分布式hadoop 安装VmwareStation 内含注册机. 链接:https://pan.baidu.com/s/1j-vKgD ...

  6. CentOS下安装hadoop

    CentOS下安装hadoop 用户配置 添加用户 adduser hadoop passwd hadoop 权限配置 chmod u+w /etc/sudoers vi /etc/sudoers 在 ...

  7. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  8. Linux下安装Zookeeper

    Zookeeper是一个协调服务,可以用它来作为配置维护.名字服务.分布式部署: 下面,我来分享一下在Linux下安装Zookeeper的整个步骤,让大家少走弯路. 一.Zookeeper下载 [ro ...

  9. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

随机推荐

  1. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

  2. 使用github远程仓库

    经过几天对github的研究,终于把自己想完成的给解决了,发现google真的有很多解释,但是很多也会出现一些bug,对于初学者真的很多烦恼,所以整理一份,能给初识github的你有所帮助 一,首先, ...

  3. Android 死锁和重入锁

    死锁的定义: 1.一般的死锁 一般的死锁是指多个线程的执行必须同时拥有多个资源,由于不同的线程需要的资源被不同的线程占用,最终导致僵持的状态,这就是一般死锁的定义. package com.cxt.t ...

  4. Android中AlarmManager使用示例(持续更新,已经更改)

    现在普遍的手机都会有一个闹钟的功能,如果使用Android来实现一个闹钟可以使用AtarmManager来实现.AtarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服 ...

  5. Atiti.大企业病与小企业病 大公司病与小公司病

    Atiti.大企业病与小企业病 大公司病与小公司病 1. 大企业病,一般会符合机构臃肿 .多重领导 .人才流失的特点.1 2. 大企业病避免方法1 3. 小企业病 1 3.1.1. 表现1 4. 如何 ...

  6. 远程连接mysql 1130错误解决方法

  7. 抛弃jQuery:Why?

    原文链接:http://blog.garstasio.com/you-dont-need-jquery/ 我的Blog:http://cabbit.me/you-dont-need-jquery/wh ...

  8. 我的第一个python程序--给2.x的print代码加上括号

    最近想学习一门脚本语言,综合考虑,选择了python. 花了几天时间看完了 简明 Python 教程 ,想着应该写点什么东西才好,刚好我使用的是3.x版本,以前好多2.x的代码都直接报错,尤其是pri ...

  9. wp已死,metro是罪魁祸首!

    1.这篇文章肯定会有类似这样的评论:“我就是喜欢wp,我就是喜欢metro,我就是软粉“等类似的信仰论者发表的评论. 2.2014年我写过一篇文章,windows phone如何才能在中国翻身? 我现 ...

  10. Android消息处理机制(Handler、Looper、MessageQueue与Message)

    Android是消息驱动的,实现消息驱动有几个要素: 消息的表示:Message 消息队列:MessageQueue 消息循环,用于循环取出消息进行处理:Looper 消息处理,消息循环从消息队列中取 ...