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