最近又需要要搭hadoop环境,所以开始学习,下面是我的笔记,仅供大家参考!

Hadoop安装:

  1. JDK1.6+
  2. 操作系统:Linux,Window和Unix也可以做Hadoop的开发,只有Linux支持生产。
  3. 去hadoop发布页面下载一个稳定的版本,然后解压到文件系统的某个地方:tar xzf hadoop-x.y.xz.tar.gz(本教程针对0.x和1.x,所以建议下载目前最新的稳定版本hadoop-1.2.1版本)
  4. 设置Java_HOME环境变量,如果没有设置过,可以在conf/hadoop-env.sh中指定:(先要将这一行的注释去掉)
    export JAVA_HOME = /usr/lib/java/jdk

5. 创建一个指向Hadoop安装目录的环境变量是非常方便的(HADOOP_INSTALL),将Hadoop的二进制目录放到命令行路径上即可。

export HADOOP_INSTALL=/home/lsw/hadoop/

 export PATH=$PATH:$HADOOP_INSTALL/bin

注:其实这一步还是有问题的,通过在终端中调用上面的两个语句添加的环境变量是临时的,所以我们要通过其他方式。直接修改/ect/profile貌似行不通(因为该文件是只读的,应该可以人为修改成可读写吧),然后我就去找/home/下的一个.bashrc文件打开,通过名=值的方式[HADOOP_INSTALL=/home/lsw/hadoop-1.2.1]这种方式将所有的要添加的都放在文件末尾,保存。

然后貌似要重启啊,然后在终端中输入:

echo $HADOOP_INSTALL输出值已经成功了

6. 检查hadoop的运行,终端中输入:hadoop version

这一步貌似也除了问题啊。直接输入会提示权限不够,但是我发现我的hadoop目录下的文件都是对lsw有权限的,然后我打开hadoop/bin/hadoop这个文件夹的属性发现还有一个授予他以可执行文件运行的权限,所以只有把这个权限也给他,才能正确运行,我估计后面好多文件都要给这种权限,应该有指令进行批量操作吧。

Hadoop的配置:

 

hadoop中的每个组建都是一个xml配置文件,核心属性在core-site.xml,hdfs的是hdfs-site.xml,mapreduce属性在mapred-site.xml,这写配置文件都在conf/目录下。

(老版本的这几个配置文件在一个hadoop_site.xml中,现已拆分)

要查看这些配置文件的一些样例,可以看share/hadoop/templates/conf/下面。

      Hadoop的三种运行模式

  1. 本地模式:没有守护进程,可以在写MapReduce程序的时候进行测试和调试。程序运行在单一的JVM上(默认是本地模式)
  2. 伪分布模式:Hadoop的守护程序在本地的计算机上运行,因此是在小范围内模拟集群
  3. 完全分布模式:hadoop守护程序在一群机器上运行。

设置哪个模式运行hadoop,需要做两个事情:

1) 设置适当的属性(配置上面说的几个配置文件)

2) 启动Hadoop守护进程(第一个不需要)

本地模式:本地模式是默认的,不需要配置

      伪分布模式:

   1. 配置三个文件:(这个一定要先配置,不然后面不能启动守护进程)

<!--core-site.xml-->

<configuration>

<property>

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

<value>hdfs://localhost</value>

</property>

</configuration>

<!--hdfs-site.xml-->

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

<!--mapred-site.xml-->

<configuration>

<property>

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

<value>localhost:8021</value>

</property>

</configuration>

        2.      SSH的配置(Secure Shell

Hadoop无法区分伪分布模式和完全分布模式:SSH-ing只是在启动集群主机上的保护线程的时候才在每个主机上启动一个守护进程。主机是本地计算机的时候,伪分布模式 只是完全分布模式的一个特例。

我们要做的是:确保能够SSH到本地主机而且不需要输入密码去登陆。

          安装SSH 比较简单,在Ubuntu下:

sudo apt-get install ssh

为了自动登陆,可以用空字符生成一个新的SSH密钥:

(用空字符串生成一个密钥写入到id_rsa中)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

(将id_rsa.pub文件合并到authorized_keys中)

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

测试登陆:

ssh localhost

如果不需要输入密码登陆就成功。

        3.      HDFS文件系统格式化:

通过创建存储目录已经名称节点的用就数据结构的最初版本来创建一个空的文件系统。文件系统的大小不需要考虑,可以自动按需增加(最初不需要考虑数据节点,因为他是由名称节点管理的)

命令:

hadoop namenode -format

       4. 开启和结束守护进程:

start-dfs.sh

start-mapred.sh

或者可以用(我们打开下面这个文件,发现她其实包含上面两条命令)

start-all.sh

第一个命令会启动三个守护进程:一个名称节点,一个二级名称节点,一个数据节点。

可以http://localhost:50030(有关jobtracker信息的页面)

或者http://localhost:50070(namenode信息页面)

结束守护进程:

stop-dfs.sh

stop-mapred.sh

或者只有一个

stop-all.sh

运行我们的测试例子:

这里我们先不要用伪分布模式,把几个配置文件里面的配置信息都删了。

然后运行命令:

hadoop 我们的jar包 对应的类 输入文件的路径 输出路径(输出文件夹不能存在)

例子:

hadoop ~/workspace/jar/Hadoop-Demo.jar cn.lsw.hd.MaxTemperature ~/workspace/hadoop_demo_data/ ~/workspace/output

然后就会执行,打开output目录,会有两个文件,一个是part-00000,一个是_SUCCESS文件。因为只有一个节点,所以只有一个part文件

过程中会打印出一些信息:

比如作业的ID :job_local_0001,,一个map任务,一个reduce任务(各自的ID )

最后有计数器(Counter),现实map的输入和输出,reduce的输入和输出。

当然,我们察看结果文件也可以通过下面的命令:

 cat [路径要全的]output/part-00000

       完全分布模式暂时还没弄,因为我目前就一台电脑了。

Ubuntu下Hadoop的安装和配置的更多相关文章

  1. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

  2. ubuntu下的openfire安装、配置、运行

    openfire服务器              Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.您可以使用它轻易的构建高效率的即时通信服务器.Op ...

  3. Ubuntu下samba的安装和配置

    samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba一. 一.更新源列表 打开&q ...

  4. Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)

    一.准备 1.1创建hadoop用户 $ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell $ sudo pass ...

  5. Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

    在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...

  6. [转载]Ubuntu下apache的安装与配置

    原文地址:https://blog.csdn.net/gatieme/article/details/53025505 1 安装apache 在 Ubuntu 上安装 Apache,有两种方式 使用源 ...

  7. ubuntu下Tomcat7的安装和配置

    和前几个软件一样,Tomcat 同样是由JAVA开发的,所以,在安装前一定要装好JDK. 大家可以到 http://tomcat.apache.org/download-70.cgi 下载最新的Tom ...

  8. Ubuntu下Android Studio安装、配置和使用

    Ubuntu下使用Android Studio开发应用程序,首先需要安装该IDE. 情况1:Ubuntu下安装Android Studio 打开Terminal,执行下述指令: sudo apt-ad ...

  9. Ubuntu 下 Tomcat7 的安装和配置

    tomcat下载地址:http://tomcat.apache.org/download-70.cgi 声明:下面的内容和原创笔者的博文的内容差不多,不一样的只是tomcat7的安装目录不同,我按照我 ...

随机推荐

  1. AtCoder Regular Contest 086 E - Smuggling Marbles(树形迭屁)

    好强的题. 方案不好算,改成算概率,注意因为是模意义下的概率所以直接乘法逆元就好不要傻傻地开double. 设$f[i][d][0]$为第i个节点离d层的球球走到第i个点时第i个点没有球的概率, $f ...

  2. “Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常。-解决方法

    注释掉web/app.config中的:

  3. move_base的 局部路径规划代码研究

    base_local_planner teb_local_planner parameter code g2o base_local_planner ROS wiki Given a plan to ...

  4. poj1486 Sorting Slides

    Sorting Slides Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4812   Accepted: 1882 De ...

  5. Codeforces 894.E Ralph and Mushrooms

    E. Ralph and Mushrooms time limit per test 2.5 seconds memory limit per test 512 megabytes input sta ...

  6. python自学笔记(二)

    通过前文介绍,大体上可以用学过的知识做一些东西了. 这里简单介绍下python参数解析argparse命令. 使用argparse需要引用  import argparse 然后调用 parser = ...

  7. 0-如何正确使用 Django的User Model

    本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Mo ...

  8. 816D.Karen and Test 杨辉三角 规律 组合

    LINK 题意:给出n个数,每个数对间进行加或减,结果作为下一层的数,问最后的值为多少 思路:首先我们发现很像杨辉三角,然后考虑如何计算每个数对结果的贡献值,找规律可以发现当数的个数为偶数时,其所在层 ...

  9. 重构改善既有代码设计--重构手法14:Hide Delegate (隐藏委托关系)

    客户通过一个委托类来调用另一个对象.在服务类上建立客户所需的所有函数,用以隐藏委托关系. 动机:封装即使不是对象的最关机特性,也是最关机特性之一.“封装”意味着每个对象都应该少了解系统的其他部分.如此 ...

  10. ① 设计模式的艺术-07.适配器(Adapter)模式

    什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 模式中的角色 目标接口(Target):客户所期待的接口 ...