全部博文(33)
分类: 云计算
2012-03-13 14:34:40
Hadoop 是一个能够对大量数据进行分布式处理的软件框架,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,以充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上,具有很高的可扩展性。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。
下面以本人在3台计算机上搭建hadoop的过程,介绍它的安装配置。
软件环境:
1.hadoop软件,下载地址:,此处下载的是0.20.2版本。
2.需要安装JDK1.5.07以上的版本,下载地址:,具体安装方式见本博客上上篇文章。
3.linux操作系统,hadoop也能用windows做为开发环境,我们完全可以在windows下安装配置一个hadoop来体验以下,但是hadoop在windows下的运行远没有在linux和unix下稳定,这也是为什么好多公司不在windows下使用hadoop的原因。此处使用了3台机器来搭建这个环境,操作系统分别是一台Ubuntu和两台debian系统。
硬件环境:
1. 3个节点,每个机器上都有一个名为hadoop的登陆账号,具体如下:
(1) 主机: 192.168.2.226 功能:NameNode,JobTracker
(2) 主机: 192.168.2.210 功能:DataNode,TaskTracker
(3) 主机: 192.168.2.218 功能:DataNode,TaskTracker
注意:以下的每一步都是以hadoop这个账户登录各台电脑完成相应操作的,当然也可以用其他比如root用户,但是最终我们是以hadoop这个账户来运行软件的,这样可能造成我们创建的文件由于权限问题无法读取或者写入,出现不必要的麻烦。
安装步骤:
1. 检查每台机器是否安装合适的版本JDK,通过使用java -version命令查看其版本号,如果没有安装,安装即可。
2. 下载Hadoop-0.20.2.tar.gz解压到相应的安装目录,此处是将其解压到/home/hadoop/目录下,即执行下列指令:
tar -zxvf Hadoop-0.20.2.tar.gz -C /home/hadoop
cd /home/hadoop
mv hadoop-0.20.2/ hadoop
为了方便起见,我们最好也将hadoop安装路径加入系统环境变量,即:
sudo gedit /etc/profile
将以下内容添加到文件末尾:
HADOOP_HOME=/home/hadoop/hadoop #这是hadoop的主目录
export HADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf #这是hadoop的配置文件目录
export HADOOP_CONF_DIR
HADOOP_LOG_DIR=$HADOOP_HOME/log #存放运行日志目录
export HADOOP_LOG_DIR
export PATH=$PATH:$HADOOP_HOME/bin
3. 完成上述步骤以后要确认每台机器都安装了ssh,如果没有安装,需要运行
sudo apt-get install ssh 安装,安装成功之后我们需要配置使得Namenode机器能够无需输密码访问其他机器,在1号机器终端输入:
ssh-keygen -t
cd ~/.ssh
ls我们会发现,该目录下多了两个文件,即id_rsa和id_rsa.pub,执行以下命令:
ssh-copy-id -i id_rsa.pub hadoop@ + ip地址,然后按照提示输入访问密码即可。
分别对本机和两个数据节点执行上述命令,使得我们能够不用输入密码就能用ssh hadoop@**.**.**.**访问个台机器,这样我们的目的就达到了。
4. 配置hadoop/conf下的文件,进入上述目录
(1) sudo gedit hadoop-env.sh
修改JAVA_HOME的值为jdk的安装目录,同时将JAVA_HOME,HADOOP_OPTS之前的“#”去掉,使之生效
(2) sudo gedit masters
在里面输入master的IP地址(或计算机名),每行一个,此处输入:
192.168.2.226
(3)sudo gedit slaves
在里面输入slave的IP地址(或计算机名),每行一个,此处输入:
192.168.2.210
192.168.2.218
(4)配置core-site.xml,conf目录下的core-site.xml文件默认是空的,但src/core目录下有一个缺省的配置文件core-default.xml,可将它复制到conf目录下,重命名成core-site.xml并做适当修改即可。也可以做如下简单配置:
ha hadoop.tmp.dir指定了所有上传到Hadoop的文件的存放目录,所以要确保这个目录是足够大的;
fs.default.name指定NameNode的IP地址和端口号,缺省值是file:///,表示使用 本地文件系统,,用于单机非分布式模式。
(5) 配置hdfs-site.xml文件(HDFS)
此处的value表示每个Block需要备份的次数,起到冗余备份的作用,注意,该值一定要小于DataNode的数目,否则会出错
(6)配置mapred-site.xml(mapreduce)
这里是配置jobtracker的IP和端口
这样我们的全部配置就完成了,为了方便起见,我们将Hadoop这个目录拷贝到各个节点相同目录,节省大量的配置时间。
完成以后,我们可以测试下是否安装成功:
输入 :
hadoop namenode -format
start-all.sh
stop.all.sh
如果没有报错,那么就说明我们的工作已经完成了!
在hadoop运行的时候,我们可以输入jps命令查看各个进程,还可以用hadoop dfsadmin –report查看集群的状态,我们也可以通过在浏览器中访问查看集群状态。