Hadoop学习笔记(1)

——菜鸟入门

Hadoop是什么?先问一下百度吧:

【百度百科】一个分布式系统基础架构,由Apache基金会所开发。用户能够在不了解分布式底层细节的情况下。开发分布式程序。充分利用集群的威力进行快速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;并且它提供高传输率(high throughput)来訪问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

HDFS放宽了(relax)POSIX的要求,能够以流的形式訪问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop主要用于一些分布式计算。在这个大数据年代,那这个的确是一个非常不错的工具。所以非常有必要来学一学。

如何开展这个学习呢,无论如何。学习一样新东西,我喜欢这种顺序:先依葫芦画瓢。一步一步行将其执行起来,再来分析一些应用场景及执行的情况,然后深入看一下其高级应用。 最后因为这个是一个开源产品,正好来借此机会来读一读大牛们的代码。学学其精华。

好了,開始行动:

  1. 执行环境搭建

首先,这个是须要执行在linux系统中的,所以得安装个linux才行,市面上有非常多个linux的版本号,如红帽子、Fedra、Ubuntu。选哪种呢,对我这样的习惯windows的来说,当然要使用方便的。所以选择了Ubuntu。

安装Ubuntu,这里我就不多说了,在官网上有非常多。事实上也非常easy,一路下一步。

当然这里能够安装在Vmware虚拟机上,也能够直接安装在硬盘上。

我个人建议,能够直接安装在硬盘上,与现有windows做个双系统。

由于后面还要跑开发环境 eclipse。在虚拟机上会有点吃力。 同一时候安装在硬盘上后,还能够这样玩。在进入windows后,安装 vmware,然后新建虚拟机后,不要创建硬盘,直接使用硬盘的分区。这样, 就能够在vmware中启动安装在硬盘上的ubuntu了。

做到双系统,双启动。

这样优点是。当要开发时。能够直接进ubuntu系统,当仅仅是看看代码。以及后面模拟分布式部署时,就能够用vmware来启动。同一时候再建上几个虚拟机来进行分布式部署。

操作系统准备好后,就须要一些组件了,hadoop比較简单,仅仅须要ssh和java环境。再加个下代码的SVN。

先用 sudo apt-get install subversion ssh ant 这个命令,把SSH、Ant和SVN安装起来。

java环境,能够在网上下载一个安装JDK包,如:jdk-6u24-linux-i586.bin

安装直接在文件夹下执行./jdk-6u24-linux-i586.bin就可以。

然后配置jdk文件夹:

先进入安装文件夹 cd jdk-6u24-…

然后输入 PWD 就能够看到java安装文件夹,复制下来:

命令行运行:sudo gedit /etc/profile

在打开的文件中,追加:

export JAVA_HOME=/home/administrator/hadoop/jdk1.6.0_27 //这里要写安装文件夹

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

运行source /etc/profile 马上生效

验证是否安装完毕,那比較easy了。在命令行下执行 java -version ant svn ssh 看是否找不到命令。假设都能找到。说明OK了。

  1. 下载代码:

这是个开源的系统,代码非常方便用SVN就能够下载到,版本号也非常多,在这里我选择0.20.2版本号,一个是网上好多书都基于这个版本号的。另外是看源代码,还是曾经点版本号吧,后面的版本号里面肯定又加了非常多。

执行这个命令来下载:

svn co http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.2/

下载完毕后,会在当前目录内产生一个新目录release-0.20.2,这里面就是代码了。

为了后面方便操作。把这目录重命令一下:

mv release-0.20.2/ hadoop-0.20.2

好了,用图形界面进入该目录。看一看:

  1. 编译代码

刚下完的代码是无法直接执行的。须要编译一下,但用什么编译呢?

编译前先改动一下build.xml,打开,将里面的版本改成:0.20.2。例如以下:

看到代码里面有个build.xml。这个是典型的用ant编译用的配置文件,所以直接在命令行里输入:

~/hadoop-0.20.2$ant

~/hadoop-0.20.2$ant jar

~/hadoop-0.20.2$ant examples

[注意] 编译时须要联网,否则在自己主动下载jar包时会挂掉。

然后屏幕会刷啊刷,等到完毕看到以下字符时,也就OK了:

  1. 配置SSH

我们了解到。这个hadoop是支持分布式执行的,每台机器到时都会来安装hadoop程序,假设想启动全部程序怎么办? 一台台去启动? 那也太土了。 当然是远程去启动咯。为实现这个目标。就得用上SSH了。

SSH是什么。说白了。这个就是一个远程登陆器。跟远程桌面、telnet几乎相同。

在linux上全部操作都能够用命令行来完毕,全部SSH也就是一个命令行形式,同一时候比telnet高级,由于通过了加密通道传输信息。

那我们就部署了一台机器,还要这个SSH吗? 答案是要的,由于在执行hadoop里,即使是本机的。里面也要通过SSH localhost的方式来启动。这样代码统一。

前面不是安装过SSH了么,还要配置什么?SSH正常登陆时,是须要输入usernamepassword的,可是当全部的hadoop子服务都受主服务管了后,最好就直接信任了,不要输入帐号信息。所以我们配置的目的也就是这个。

先试一下,我用SSH登陆当前本机信息:

能够看到。登陆本机时,也要输入一下password。怎么办?

SSH是能过RSA加密的,所以有公钥私钥的说法,所以,我们先产生一对固定的公私钥,执行这个ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa命令:

这里产生公私钥,并生成在.ssh目录下。于是我们就进入看一下:

果然,这里多了两个文件,id_dsa为私钥。id_dsa.pub为公钥

然后再把公钥复制成authorized_key。即将这个公钥固定为SSH登陆所用。

这步非常重要。做完这步后。就能够再试一下登陆本机了:

看,如今再ssh localhost时,就直接进入。没有再输入帐号了。

到这里,SSH配置就成功了。

  1. 改动配置文件

在正式执行之前。还要改动一下配置文件才地。这里详细的配置參数。就不讲,葫芦画瓢么,先跑起来。后面再来研究这是为啥:

在代码的conf目录内。就能够找到以下几个配置文件。分别配置成以下内容:

core-site.xml

<configuration>

<property>

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

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

</property>

<property>

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

<value>/home/zjf/hadoop-0.20.2/tmpPath</value> 。这里改下路径

</property>

</configuration>

hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

mapred-site.xml

<configuration>

<property>

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

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

</property>

<property>

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

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

</property>

</configuration>

  1. 执行

Hadoop是一头奇妙的大象,那我们得站在大象背上说句Hello world了。

进入hadoop文件夹: $cd Hadoop-0.20.2

首次执行,须要对namenode进行格式化:bin/hadoop namenode -format

启动hadoop:

bin/start-all.sh

关闭hadoop能够用:

bin/stop-all.sh

假设验证启动成功呢?有两种方式

  1. 訪问一下管理页面看:

Job跟踪:http://localhost:50030

NameNode结点:http://localhost:50070

  1. 用jps看一下有几个java进程在执行。假设是以下几个就正常了:

主要有DataNode NameNode SecondaryNameNode TaskTracker JobTracker这几个进程,就表示正常了

系统启动正常后,跑个程序吧

$mkdir input

$cd input

$echo "hello world">test1.txt

$echo "hello hadoop">test2.txt

$cd ..

$bin/hadoop dfs -put input in

$bin/hadoop jar build/hadoop-0.20.2-examples.jar wordcount in out

$bin/hadoop dfs -cat out/*

最关健的是。最后输入:

输出这个结果这就表示我们的程序执行成功了。

至于这结果是什么意思,我想看到后大概也猜到了吧。至于具体讲解,下期再看。

转载于:https://www.cnblogs.com/zsychanpin/p/6736842.html

Hadoop学习笔记(1) ——菜鸟入门相关推荐

  1. Hadoop学习笔记(1)

    原文:http://www.cnblogs.com/zjfstudio/p/3859704.html Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分 ...

  2. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...

  3. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  4. Hadoop学习笔记一 简要介绍

    Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop.     本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...

  5. Hadoop学习笔记—18.Sqoop框架学习

    Hadoop学习笔记-18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据 ...

  6. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...

  7. Hadoop学习笔记(8) ——实战 做个倒排索引

    Hadoop学习笔记(8) --实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如 ...

  8. Hadoop学习笔记—11.MapReduce中的排序和分组

    Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...

  9. Hadoop学习笔记—10.Shuffle过程那点事儿

    Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...

最新文章

  1. 腾讯云智能制造首次披露三大战略布局,发布“511”生态伙伴计划
  2. BZOJ4298 : [ONTAK2015]Bajtocja
  3. ACM输入输出--多组测试用例--C、C++、Java
  4. gsea结果分析图怎么看_数据分析怎么做?看这篇就够了!
  5. Raw264.7培养经验分享
  6. Bye Bye Embed-再见了Embed,符合web标准的媒体播放器代码
  7. Xvfb 虚拟现实库 之 Python 虚拟桌面 pyvirtualdisplay
  8. w ndows太卡,用Windows 10太卡?教你快速干掉Windows Defender
  9. linux 魔术分区,Parted Magic-Linux 中的分区魔术师
  10. 第十八:如何定制Pytest+Allure2详细报告生成,给项目量身打造一套测试报告(重点超详细)
  11. 在微服务中,Kubernetes软件组件有哪些?
  12. 指针的指针(二级指针)本质
  13. 海湾标准汉字码表查询_JBQGGST5000标准汉字码表
  14. UiPath手把手中文教程PDF
  15. 管道爬行机器人内部陀螺仪_管道爬行机器人组成部分
  16. php实现登录验证码_php如何实现登录验证码
  17. vscode下载慢、安装、插件和使用(七七)
  18. 概率论复习笔记2.0
  19. 只是浅谈MS SQL Server的Page Splits运作原理
  20. Open3d读写pcd点云文件

热门文章

  1. MCSE2003学习之三
  2. 地址池命令 思科理由_思科互联网络操作系统 ——路由器接口
  3. 如何创建一个最小的区块链
  4. rmd文件怎么转换html文件,提取.Rmd文件的html依赖项(包含htmlwidgets)
  5. 因0x764fb11c的错误状态_《最强大脑》国际赛王易木又被质疑作弊,因背反答案露出了马脚?...
  6. 用拓扑排序检测有向图中是否有环
  7. win8系统的计算机共享在哪里设置方法,怎么设置win8无线共享呢?
  8. 【亲测有效】在win10上如何安装Fortify17.10
  9. (轉貼) 友達光電第五屆【A+種子暑期實習計畫】開始辦理報名 (News)
  10. SharePoint运行状况分析器有关磁盘空间不足的警告