摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习、开发和调试。
关键词:Hadoop 伪分布式 文件配置
启动Hadoop支持三种模式操作,分别是单机模式操作、伪分布模式操作和全分布模式操作。
单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式。该模式主要用于开发调试MapReduce程序的应用逻辑,而不会和守护进程交互,避免增加额外的复杂性。
伪分布模式操作是指在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式操作之上多了代码调试功能,可以查阅内存的使用情况、HDFS的输入输出以及守护进程之间的交互。
全分布模式操作是指一种实际意义上的Hadoop集群,其规模可从几个节点的小集群到成百上千个节点的大集群,甚至是成千上万的超大集群。
单机模式操作和伪分布模式操作均用于开发与调试的目的。真实的Hadoop 集群是全分布模式操作。
伪分布模式操作Hadoop集群,具体步骤如下。
第一步:前期工作
1 设置静态IP,完毕后,重启网卡,执行命令:service network restart。验证是否成功,执行命令:ifconfig。
2 查阅并修改主机名。
1)查阅当前会话的主机名,执行命令:hostname。
2)修改当前会话的主机名,执行命令:hostname hadoop。
该修改只能在本次操作生效。
3)通过配置文件修改主机名,执行命令:vi /etc/sysconfig/network
该修改长期有效。
验证:重启机器
3 把主机名和ip进行绑定,执行命令: vi /etc/hosts
增加一行内容 ip 主机名
保存退出
验证: ping 主机名
4 关闭防火墙
执行命令 service iptables stop
验证:service iptables status
6 关闭防火墙的自动运行
执行命令 chkconfig iptables off
验证:chkconfig - - list | grep iptables
第二步:SSH 免密码登录
对Linux进行操作 通过Shell。
a)执行命令 ssh-keygen -t rsa 产生密钥,位于~/.ssh文件夹中
b)执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
验证:ssh localhost
第三步:安装JDK软件
a)执行命令rm -rf /usr/local/* 删除所有内容
b)使用小工具Winscp把jdk文件从Windows环境下复制到Linux下的/usr/local目录下
c)执行命令 chmod u+x jdk-6u24-linux-i586.bin 授予执行权限
d)执行命令 ./jdk-6u24-linux-i586.bin 解压缩到当前目录下
e)执行命令 mv jdk1.6.0_24 jdk
f)执行命令 vi /etc/profile 设置环境变量,增加了两行内容
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
保存退出
执行命令 source /etc/profile 让该设置立即生效。
验证:java –version
第四步:伪分布模式操作Hadoop
1 执行命令 tar -zxvf hadoop-1.1.2.tar.gz进行解压缩
2 执行命令 mv hadoop-1.1.2 hadoop 重命名hadoop
3 执行命令 vi /etc/profile 设置环境变量,增加了一行内容
export HADOOP_HOME=/usr/local/hadoop
修改了一行内容
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出,执行命令:wq
执行命令 source /etc/profile 让该设置立即生效。
4 修改hadoop配置文件,位于$HADOOP_HOME/conf目录下的4个文件,分别是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml
a)配置hadoop-env.sh文件,把JAVA_HOME设置为Java安装根路径。
b)配置core-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
c)配置hdfs-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
d)配置mapred-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
<description>change your own hostname</description>
</property>
</configuration>
d)执行命令hadoop namenode -format 对hadoop进行格式化
f)执行命令 start-all.sh启动
验证:
(1)执行命令jps会有5个进程,分别是NameNode、
DataNode、SecondaryNameNode、JobTracker,
TaskTracker。
(2)通过Linux下的浏览器查看,输入网址
http://hadoop:50070
http:// hadoop:50030
(3)通过Windows下的浏览器查看,可以修改windows的hosts文件