Hadoop集群配置
来源:互联网 发布:网络机顶盒怎么调试 编辑:程序博客网 时间:2024/05/19 04:05
1 环境
本文所述的配置步骤均是在Virtualbox虚拟机下完成,真实机器上的配置情况应该大体相同,但未经测试。
本环境一共虚拟三台机器,其中一台运行Namenode和Jobtracker,其余两台运行Datanode。在实际运行中,Jobtracker也许会放在单独的机器上,Datanode可能不止两个,但就实际配置方式而言,跟本文所述方法没有什么区别。
虚拟机:VirtualBox4.1.2
操作系统:Ubuntu10.10 Desktop
Namenode和Jobtracker:用户名nn,主机名nn-namenode
Datanode1:用户名nn,主机名nn-datanode1
Datanode2:用户名nn,主机名nn-datanode2
Hadoop版本:0.20
Cloudera版本:cdh3
2 Namenode配置
2.1 操作系统安装
在虚拟机中安装Ubuntu10.10Desktop版本的操作系统,用Desktop的原因是方便操作,在Server版本的操作系统上,步骤完全一样。内存分配为1G。需要安装的软件是JDK,本文中使用的是OpenJDK1.6版,其余JDK版本也可以按照同样的方式配置。安装方法如下:
sudo apt-get install default-jdk
安装完成后,环境变量会自动配置完成。
2.2 Hadoop安装
我们使用Cloudera来进行Hadoop安装。
首先我们配置Ubuntu的源环境,用以下命令打开编辑器对源配置文件进行编辑:
sudo gedit /etc/apt/sources.list
加入以下两行:
deb http://archive.cloudera.com/debian <RELEASE>-cdh3 contribdeb-src http://archive.cloudera.com/debian <RELEASE>-cdh3 contrib
其中cdh的具体最新版本由Cloudera官网发布为准,本文当前最新版本为第三版。<RELEASE>指的是你的Ubuntu系统的版本代号,10.10版本请填入maverick,即maverick-cdh3,其他Ubuntu版本代号详见Ubuntu官网。
在访问Cloudera软件仓库的时候,需要GPG证书,所以我们需要首先安装curl,然后配置GPG:
sudo apt-get install curlcurl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add -
源配置完成后需要进行更新,命令为:
sudo apt-get update
更新完成后,开始安装Hadoop,命令为:
sudo apt-get install hadoop-0.20
在安装过程中需要注意的是,操作系统中最好不要有hadoop、namenode等与Hadoop专有名词相关的用户名,否则会安装失败。所以本文用户名设置为nn。
在安装完成后,接下来,根据该电脑所完成的功能,来安装相应的组件:
sudo apt-get install hadoop-0.20-<daemon type>
<daemontype>有如下选项:
namenode
datanode
secondarynamenode
jobtracker
tasktracker
事实上,在Hadoop集群中,一个结点扮演什么角色是由配置文件决定,而与安装什么样的组件无关,所以,为了避免重复配置,我们对每台服务器都安装所有的组件。
2.3 配置SSH
Hadoop的结点之间访问需要使用SSH,为了避免在Hadoop调用SSH的时候输入密码,我们需要为结点配置无密码公钥认证方式。首先,我们安装SSH:
sudo apt-get install ssh
接下来,我们设置无密码公钥认证方式:
ssh-keygen -t rsa
在配置过程中,遇到提问,不输入任何内容直接回车,直到配置完成。所生成的证书保存在~/.ssh/目录中。接下来我们使之生效:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysssh-add id_rsa
我们可以测试一下,输入以下命令:
ssh localhost
若无需输入密码即登录计算机,则证明配置成功。
2.4 修改配置文件
首先需要配置的文件是hadoop-env.sh,在该文件中配置JAVA_HOME:
sudo gedit /etc/hadoop-0.20/conf.empty/hadoop-env.sh
打开hadoop-env.sh后,取消有关JAVA_HOME的注释,然后进行如下配置:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Java的具体路径,由用户自己安装JDK时所配置的路径为准。
接下来打开core-site.xml文件:
sudo gedit /etc/hadoop-0.20/conf.empty/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://nn-namenode:8020</value> </property></configuration>
Hadoop的Namenode默认端口号就是8020,这里所设置的<value>就是Namenode的具体位置所在,设置的格式为:hdfs://Namenode的主机名:端口号。
再打开hdfs-site.xml文件:
sudo gedit /etc/hadoop-0.20/conf.empty/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>2</value> </property></configuration>
这里的<value>是指文件在HDFS中所要保存的份数,该份数不能超过Datanode的数量,否则会报错,因为我们这里只有两个Datanode,所以我们可以设置为2。
需要注意的是,该配置文件中有许多参数可以配置,但是我们这里只是为了尽快将Hadoop运行,所以只配置了最简单的参数,具体配置方法可以参见相应的Hadoop技术文档。
最后打开mapred-site.xml文件:
sudo gedit /etc/hadoop-0.20/conf.empty/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>nn-namenode:8021</value> </property></configuration>
这里所设置的是Jobtracker的地址,Jobtracker的默认端口号是8021,设置的格式为:Jobtracker的主机名:端口号。
2.5 设置权限
Hadoop在运行时需要对/usr/lib/hadoop-0.20/logs/和/usr/lib/hadoop-0.20/pids/这两个文件夹进行访问,所以我们需要设置这两个文件夹的权限为777:
sudo chmod -R 777 /usr/lib/hadoop-0.20/logs/sudo chmod -R 777 /usr/lib/hadoop-0.20/pids/
2.6 设置主从结点
打开主结点配置文件:
sudo gedit /etc/hadoop-0.20/conf.empty/masters
修改为:
nn-namenode
打开从结点配置文件:
sudo gedit /etc/hadoop-0.20/conf.empty/slaves
修改为:
nn-datanode1nn-datanode2
3 Datanode设置
使用Virtualbox中的clone功能,把刚才配置好的Namenonde服务器的虚拟硬盘复制两份,分别叫做Datanode1和Datanode2。
3.1 修改主机名
clone过来的虚拟硬盘的主机名都是一模一样的,所以必须修改,现以Datanode1为例,打开主机名配置文件:
sudo gedit /etc/hostname
修改为:
nn-datanode1
再打开hosts配置文件:
sudo gedit /etc/hosts
将里面的所有nn-namenode替换为nn-datanode1。删掉含有“#Added byNetworkManager”的那一行。Datanode2可采用同样的方式进行操作。
在修改完成后,重启两个Datanode结点。
3.2 结点互联
将所有虚拟机的网络设置为Host-onlyAdapter。这样所有的虚拟机都处于同一个内网之下,而不能访问外网。获取所有结点的ip地址,假设在本机上为:
Namenode: 192.168.56.101
Datanode1: 192.168.56.102
Datanode2: 192.168.56.103
我们对每个结点的hosts文件的IPv4的配置下面,添加如下几行:
192.168.56.101 nn-namenode nn-namenode192.168.56.101 nn-jobtracker nn-jobtracker192.168.56.102 nn-datanode1 nn-datanode1192.168.56.103 nn-datanode2 nn-datanode2
这样就可以保证每台机器都能够访问其他机器。
4 运行Hadoop
4.1 格式化
对Namenode结点进行格式化:
hadoop namenode -format
对Datanode不需要进行格式化。
4.2 启动Hadoop服务
启动Hadoop所有服务:
/usr/lib/hadoop-0.20/bin/start-all.sh
启动完成后,可以在Namenode结点上访问配置站点,以观察目前Hadoop的情况,HDFS站点为:
localhost:50070
MapReduce站点为:
localhost:50030
4.3 测试Hadoop
我们试着将用户根目录下的一个文件aa拷贝到服务器上去,命令为:
hadoop dfs -copyFromLocal /home/nn/aa aa
执行完之后,若未报错,我们可在HDFS站点上,观察该文件是否已经被拷贝到服务器中,以判断服务器是否正常运行。
本文的PDF版本下载地址:http://download.csdn.net/source/3576092
Copyright© 2011 Dadoo.im, All rights reserved
- Hadoop集群配置
- Hadoop集群的配置
- Hadoop分布式集群配置
- Hadoop集群配置
- hadoop集群配置
- Hadoop集群配置
- Hadoop集群配置
- hadoop集群配置
- Hadoop集群配置详解
- Hadoop集群配置问题
- Hadoop集群配置
- Hadoop集群配置
- Hadoop 集群配置
- Hadoop集群配置详解
- hadoop 集群配置
- Hadoop集群配置详解
- hadoop集群默认配置
- Hadoop集群配置
- 项目经理进阶修炼2--处理需求变更策略
- Epson iPrint:Dropbox、Evernote云端文件直接印
- 新浪为什么不支持带有支付的应用
- linux 解压缩
- 指针访问与数组访问的效率分析
- Hadoop集群配置
- eclipse3.6安装subversive插件
- hibernate.hbm.xml详解
- applicationContext.xml详解
- 安装CentOS时提示an error has occurred. - no valid devices were found
- 人生感悟:照着做,你的人生一定很顺利
- Js获取当前日期时间及其它操作
- spring包说明
- struts-config.xml