1. Hadoop简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。
2. 软件准备
由于个人实验环境是虚拟机环境,机器分别是centos6.5 x86环境,准备如下软件:hadoop-1.2.1,jdk-6u45-linux-i586
下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin
2. 集群部署
2.1环境说明
机器名称
|
IP地址
|
hadoop1
|
192.168.227.31
|
hadoop2
|
192.168.227.32
|
hadoop3
|
192.168.227.33
|
2.2环境配置
2.2.1 Java环境变量配置
2.2.2判断是否安装ssh和rsync
2.2.3生成密钥
2.2.4 hosts配置
2.2.4 配置hadoop集群
<property>
</property><name>fs.default.name</name><value>hdfs://hadoop1:9000</value>
<property>
</configuration><name>hadoop.tmp.dir</name><value>/var/tmp/hadoop</value></property>
<property>
<name>mapred.job.tracker</name><value>hadoop1:9001</value>
</property><property>
<name>mapred.map.java.opts</name><value>-Xmx512m</value>
</property><property>
<name>mapred.child.java.opts</name><value>-Xmx512m</value>
</property>
<property>
<name>dfs.replication</name><value>2</value>
</property><property>
<name>dfs.support.append</name><value>true</value>
</property><property>
<name>dfs.permissions</name><value>false</value>
</property><property>
<name>dfs.datanode.max.xcievers</name><value>4096</value>
</property>
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
永久关闭:
chkconfig --level 35 iptables off
9.复制hadoop到其他机器
scp -r /usr/local/hadoop-1.2.1/ root@192.168.227.32:/usr/local/hadoop-1.2.1
在其他机器上执行
sudo chown -R hadoop:hadoop ./hadoop-1.2.1/
每天机器配置一样,都需要执行相同的步骤