最近又需要要搭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

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

转载于:https://www.cnblogs.com/leo-lsw/p/hadoopstudy.html

Ubuntu下Hadoop的安装和配置相关推荐

  1. Ubuntu下Hadoop的安装教程

    Ubuntu下Hadoop的安装教程,Hadoop的单机配置和伪分布式安装 教程 本教程采用的是Ubuntu18.04.4+hadoop2.7.7+jdk1.8 创建Hadoop用户 打开命令行终端( ...

  2. Ubuntu下mongodb的安装与配置

    MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便.这里介绍在Ubuntu下mongodb的安装与配置. 1.下载 mongodb可以在官网上下载,地址,选择Ubun ...

  3. Ubuntu下域名服务器bind9 安装与配置

    Ubuntu下域名服务器bind9 安装与配置 //更新 ubuntu :sudo apt update //1.安装: //1.2安装bind9 //sudo apt-get install bin ...

  4. Ubuntu下hadoop的安装与简单应用

    1. 安装jdk和ssh 1.1 下载jdk jdk下载地址:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html ...

  5. hadoop ubantu环境搭建_Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)

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

  6. ubuntu下Tomcat7的安装和配置

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

  7. Ubuntu下 Hadoop 1.2.1 配置安装

    http://blog.csdn.net/wyswlp/article/details/10564847 尝试进入大数据领域开发,从目前最火的Hadoop入手是必须的,本文一步步记录了 Ubuntu ...

  8. ubuntu下Pure-FTPd的安装和配置

    1.安装Pure-FTPd sudo apt-get install pure-ftpd-mysql mysql-server 2.添加用户和组 sudo groupadd -g 2001 ftpgr ...

  9. ubuntu下bochs的安装和配置

    <ORANGE'S:一个操作系统的实现>一书中选择使用虚拟计算机Bochs进行仿真. Bochs是一个x86硬件平台的开源模拟器.它可以模拟各种硬件的配置.Bochs模拟的是整个PC平台, ...

  10. ubuntu下cvs的安装、配置与使用

    cvs的安装方式大致有两种 一种是cvs+cvsd,另一种是cvs+xinetd,我选择的是cvs+xinetd,这种做法比较节省资源,xinetd是一个后台服务管理程序,除了管理cvs之外还可以管理 ...

最新文章

  1. input取消焦点 vue_Vue有什么特性,相对于其他框架都有那些优势!
  2. 【控制】《最优控制理论与系统》-胡寿松老师-第5章-线性最优状态调节器
  3. 产品经理必备知识之如何用CREATE模型对用户进行行为分析
  4. sql server 判断是否存在数据库,表,列,视图
  5. Java求字符串中出现次数最多的字符
  6. CSS大会 | 打破常“规”:挖掘语法解析器规则漏洞
  7. android xml defaulthandler解析,sax解析xml文件的DefaultHandler处理类
  8. Qt修改QSS中的qlineargradient属性,实现颜色渐变
  9. linux命令行安装vnc_centos 6.5 命令行方式可以用vnc连接吗
  10. python 字典查找效率_Python字典查找性能,get-vs-in
  11. python发送电子邮件
  12. 记事本写小程序C语言,抖音上用记事本编写爱心小程序教程
  13. 使用ReportLab绘制PDF
  14. 【信息系统项目管理师】【理解+题目】【信息系统与信息化】
  15. 使用ingress暴露kubernetes集群内部的pod服务
  16. NXP RT1064学习笔记(六)— RTC
  17. 自制表情包——python合成gif
  18. 《C++Primer》学习笔记(11-12章)
  19. latex代码(参考文献,数学公式,插入图片,插入表格)
  20. 安装SQL2000时出现:安装程序配置服务器失败。参考服务器错误日志和 C:/WINDOWS/sqlstp.log 了解更多信息。

热门文章

  1. Activity/Fragment最强生命周期总结
  2. Codeforces #430 dv.2 842A ,842B
  3. xcode 此工作区的项目包含使用Swift 3.x开发的源代码。此版本的Xcode不支持生成或迁移Swift 3.x目标。使用Xcode 10.1将代码迁移到Swift 4。
  4. 顶点计划:寝室作息讨论
  5. Linux在终端启动程序关闭终端不退出的方法
  6. C# 词法分析器(四)构造 NFA
  7. Android.mk入门(一)
  8. tomcat是一个应用服务器
  9. 数据结构之队列java版
  10. CentOS-6.3安装配置Nginx