Hadoop学习笔记----阿冬专栏

软件开发工程师 开发类

工作地点:
  • 上海 ,北京 ,成都

源于最新的技术方向和我未来的职业去向,现在需要扩充这方面的知识。

开发类
所属部门:
京东到家
岗位描述:

1、参与京东到家各业务系统的功能研发,用技术保障京东到家的高速发展;
2、参与系统的分析与设计,保质保量的完成上级安排的开发任务;
3、根据开发规范与流程完成模块的设计、编码、测试以及相关文档的编写工作;
4、系统线上问题的及时响应,保障业务的正常开展。

岗位要求:
1、本科及以上学历,计算机或软件相关专业; 
2、至少熟悉Java/C/C++/PHP 其中一种或者多种开发语言,熟悉软件开发流程,熟悉主流开源应用框架;
3、熟悉常用数据库软件(Oracle/MySQL)的原理和使用,熟悉常用ORM和连接池组件,对数据库的优化有一定的理解;
4、了解Hadoop、zookeeper等开源分布式系统;对分布式系统的设计和应用有一定的见解,了解分布式、缓存、消息、负载均衡等机制和实现;
5、熟悉unix、linux操作系统;
6、良好的沟通能力,团队合作能力,热衷于技术,对新技术以及新的应用比较敏感,有自己的技术博客者优先。


一、
    

告诉你Hadoop是什么


Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.

Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.

Hadoop框架中最核心设计就是:HDFS和MapReduce.HDFS提供了海量数据的存储,MapReduce提供了对数据的计算.

数据在Hadoop中处理的流程可以简单的按照下图来理解:数据通过Haddop的集群处理后得到结果.

HDFS:Hadoop Distributed File System,Hadoop的分布式文件系统.
大文件被分成默认64M一块的数据块分布存储在集群机器中.

如下图中的文件 data1被分成3块,这3块以冗余镜像的方式分布在不同的机器中.

MapReduce:Hadoop为每一个input split创建一个task调用Map计算,在此task中依次处理此split中的一个个记录(record),map会将结果以key--value的形式输出,hadoop负责按key值将map的输出整理后作为Reduce的输入,Reduce Task的输出为整个job的输出,保存在HDFS上.

Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker组成.

如下图所示:

NameNode中记录了文件是如何被拆分成block以及这些block都存储到了那些DateNode节点.

NameNode同时保存了文件系统运行的状态信息. 

DataNode中存储的是被拆分的blocks.

Secondary NameNode帮助NameNode收集文件系统运行的状态信息.

JobTracker当有任务提交到Hadoop集群的时候负责Job的运行,负责调度多个TaskTracker.

TaskTracker负责某一个map或者reduce任务.


二、
    

hadoop框架

Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成。

其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上。

 

1,NameNode

NameNode是HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块被存储到哪些数据节点上。它的功能是对内存及I/O进行集中管理。

2,DataNode

集群中每个从服务器都运行一个DataNode后台程序,后台程序负责把HDFS数据块读写到本地文件系统。需要读写数据时,由NameNode告诉客户端去哪个DataNode进行具体的读写操作。

3,Secondary NameNode

Secondary NameNode是一个用来监控HDFS状态的辅助后台程序,如果NameNode发生问题,可以使用Secondary NameNode作为备用的NameNode。

4,JobTracker

JobTracker后台程序用来连接应用程序与Hadoop,用户应用提交到集群后,由JobTracker决定哪个文件处理哪个task执行,一旦某个task失败,JobTracker会自动开启这个task。

4,TaskTracker

TaskTracker负责存储数据的DataNode相结合,位于从节点,负责各自的task。

 

hadoop的安装

1)安装SSH

sudo apt-get install ssh

2)安装java

3)安装hadoop

下载并解压缩

tar -zxvf hadoop-0.21.0.tar.gz

4)改变配置

指定java安装路径

使用vi

vi conf/hadoop-env.sh

添加

export JAVA_HOME = /usr/java/jdk1.7.0_01

可以使用三种模式安装,测试阶段可以使用单机模式。

在启动的时候可能会遇到很多问题,比如 22 connection refused

可以安装openssh,使用apt-get

sudo apt-get install openssh-client

sudo apt-get install openssh-server

sudo apt-get install chkconfig

使用chkconfig --list | grep sshd查看服务是否启动

使用ssh localhost

出现如下提示

输入密码后

出现欢迎页面,配置成功

免密码登录

ssh-keygen -t rsa

进入.ssh目录

执行

cp id_rsa.pub authorized_keys

重新ssh localhost,可以不输入密码

 

单机伪分布式:

进入目录/hadoop/conf

编辑 ~/hadoop/conf/core-site.xml

<configuration>
   <property>
     <name>fs. default .name</name>
     <value>hdfs: //localhost:9000</value>
   </property>
   <property>
     <name>hadoop.tmp.dir</name>
     <value>/tmp/hadoop/hadoop-${user.name}</value>
   </property>
</configuration>
编辑  ~/hadoop/conf/hdfs-site.xml
<configuration>
   <property>
     <name>dfs.replication</name>
     <value>1</value>
   </property>
</configuration>
编辑 ~/hadoop/conf/mapred-site.xml
<configuration>
   <property>
     <name>mapred.job.tracker</name>
     <value>localhost:9001</value>
   </property>
</configuration>

然后进入hadoop/bin目录

执行 ./hadoop namenode -format

执行start-all.sh

启动完成

打开浏览器,输入http://localhost:50030

就可以看到如下界面

运行示例 bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount in out

得到输出结果,配置成功!

 

安装eclipse插件

插件的路径在0.21下有所更改,路径如下

将插件拷到eclipse pluglin目录下

重启eclipse

启动后多出一个目录

就可以使用eclipse进行编程了。

 后续参考:http://www.cnblogs.com/skyme/archive/2011/10/26/2223984.html


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值