环境:rhel6.3
主机:192.168.0.30 master //slave节点可以为多个,这里我们演示两个节点
192.168.0.31 slave
192.168.0.33 slave
主节点包括名称节点、从属名称节点和 jobtracker 守护进程(即所谓的主守护进程)以及管理
集群所用的实用程序和浏览器。从节点包括 tasktracker 和数据节点(从属守护进程)。两种设
置的不同之处在于,主节点包括提供 Hadoop 集群管理和协调的守护进程,而从节点包括实现
Hadoop 文件系统(HDFS)存储功能和 MapReduce 功能(数据处理功能)的守护进程。
每个守护进程在 Hadoop 框架中的作用。namenode 是 Hadoop 中的主服务器,它管理文件系
统名称空间和对集群中存储的文件的访问。还有一个 secondary namenode,它不是
namenode 的冗余守护进程,而是提供周期检查点和清理任务。在每个 Hadoop 集群中可以找
到一个 namenode 和一个 secondary namenode。
datanode 管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一
个 datanode 守护进程。
每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个
tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨
datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个
datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。
首先:下载 jdk-6u32-linux-x64.bin
http://yunpan.cn/Q49aTDW3BLAzm
下载hadoop //这里我用的是hadoop-1.1.2.tar.gz
http://yunpan.cn/Q497RA6YsfpiW
master 节点:
[root@mfs1 hadoop]# sh jdk-6u32-linux-x64.bin [root@mfs1 hadoop]#ls jdk1.6.0_32 jdk-6u32-linux-x64.bin root@mfs1 hadoop]# tar zxf hadoop-1.1.2.tar.gz -C /usr/local/ [root@mfs1 hadoop]# mv jdk1.6.0_32/ /usr/local/hadoop-1.1.2/ [root@mfs1 hadoop]# vi /usr/local/hadoop-1.1.2/conf/hadoop-env.sh export JAVA_HOME=/usr/local/hadoop-1.1.2/jdk1.6.0_32 [root@Snapshot1~]# cd /usr/local/hadoop-1.1.2/conf/ conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://192.168.0.30:9000</value> #指定namenode </property> </configuration> conf/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> #指定文件保存的副本数 <value>2</value> </property> </configuration> conf/mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>192.168.0.30:9001</value> </property> </configuration> [root@mfs1 ~]# vi /usr/local/hadoop-1.1.2/conf/masters 192.168.0.30 [root@mfs1 ~]# vi /usr/local/hadoop-1.1.2/conf/slaves 192.168.0.31 192.168.0.33
无密码ssh设置
[root@mfs1 ~]# ssh-keygen [root@mfs1 ~]# ssh-copy-id 192.168.0.31 [root@mfs1 ~]# ssh-copy-id 192.168.0.33
保证master到所有的slave节点实现无密码登录
将相关配置文件复制到slave节点
[root@mfs1 ~]# scp -r /usr/local/hadoop-1.1.2/ 192.168.0.31:/usr/local/ [root@mfs1 ~]# scp -r /usr/local/hadoop-1.1.2/ 192.168.0.33:/usr/local/
格式化一个新的分布式文件系统
[root@mfs1 ~]# /usr/local/hadoop-1.1.2/bin/hadoop namenode -format
启动服务
[root@mfs1 ~]# /usr/local/hadoop-1.1.2/bin/start-all.sh
查看各个节点服务是否成功开启
[root@mfs1 ~]# /usr/local/hadoop-1.1.2/jdk1.6.0_32/bin/jps 6296 NameNode 6503 JobTracker 6438 SecondaryNameNode 6598 Jps
slave 节点:
[root@mfs2 hadoop-1.1.2]# jdk1.6.0_32/bin/jps 2738 Jps 2687 TaskTracker 2617 DataNode [root@mfs3 hadoop-1.1.2]# jdk1.6.0_32/bin/jps 2738 Jps 2687 TaskTracker 2617 DataNode
浏览 NameNode 和 JobTracker 的网络接口,它们的地址默认为:
NameNode – http://192.168.0.30:50070/
JobTracker – http://192.168.0.30:50030/
#分布式文件系统 /tmp
切忌:先格式化再起服务
上传文件
[root@mfs1 hadoop-1.1.2]# bin/hadoop fs -put /mnt/1/ zhangxc [root@mfs1 hadoop-1.1.2]# bin/hadoop fs -ls Found 1 items drwxr-xr-x - root supergroup 0 2014-03-11 20:42 /user/root/zhangxc
例:采用相关算法
在文件夹1中查找dfs打头的字符串,并将结果输出到output当中。
[root@mfs1 hadoop-1.1.2]# bin/hadoop jar hadoop-examples-1.1.2.jar grep input output 'dfs[a-z.]+' [root@mfs1 hadoop-1.1.2]# bin/hadoop fs -ls drwxr-xr-x - root supergroup 0 2014-03-11 20:55 /user/root/input drwxr-xr-x - root supergroup 0 2014-03-11 21:11 /user/root/output
例:将分布式文件系统拷贝到本地进行查看
[root@mfs1 hadoop-1.1.2]# bin/hadoop fs -get output output [root@mfs1 hadoop-1.1.2]# cat output/* cat: output/_logs: Is a directory 1 dfshah
或者
[root@mfs1 hadoop-1.1.2]# bin/hadoop fs -cat output/* 1 dfshah cat: File does not exist: /user/root/output/_logs
[root@mfs1 hadoop-1.1.2]# bin/hadoop fs --help #查看帮助