hadoop学习【2】——hadoop安装配置
【前言】这是hadoop学习的第二步了,这次是首次正式的摸索安装和配置hadoop,不过还好,这次安装配置还是比较幸运的,只花了半天的时间(也就3个来小时)。最终包含三个节点的hadoop平台算是跑起来了。
这里我没有截图,所以只能写下一些步骤和记录一些期中安装出现了错误了。
一、环境准备:
(1)硬件准备
这里因为只是搭一个学习的实验平台,所以机器的选择没有配置很高,这里的三台机子都是我们学校机房的机子,配置:2G内存、500G硬盘其他的都是很普通的配置。在上面安装的就是CentOS操作系统,前面一篇文章介绍了我安装CentOS和win7双系统的苦逼过程,这里就不再说了,假设大家已经有了linux操作系统了。
【附】企业hadoop环境配置:
选型理念:
>>普通的,廉价的,标准的(容易替换的),工业化大规模生产的,Hadoop可以自劢支持多核CPU,比如选择2个四核CPU,主流主频,16-32G内存,更大的内存可以使Linux将常用数据缓存在内存,减少IO量,提高速度,存储集群应该使用大量廉价硬盘,例如4个主流大容量(当前为2T)普通SATA硬盘。出于成本考虑一般无需使用SCSI、SAS接口类型硬盘或SSD硬盘
>>网络非常重要,建议使用千兆网和高带宽的交换机,但也无需使用infinband这类与用设备RAID是丌需要的,可以考虑使用JBOD
***安装Linux后一定要确认iptables,selinux等防火墙戒访问控制机制已经关闭,否则实验很可能受影响
我这里三台机子分别是:
10.106.0.24 h1 namenode
10.106.0.2 h2 datanode
10.106.0.42 h3 datanode
用grid用户进行安装
(2)所需文件:
包括 jdk 和 hadoop
jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.html,下载如jdk-6u13-linux-i586.bin
hadoop下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-1.0.3/或者当前更高版本
这里jdk使用:jdk1.6.0_13
hadoop使用:hadoop-1.0.3
二、安装java jdk
以root登录三个机器,执行jdk-6u13-linux-i586.bin,会得到一个jdk文件夹,将其放入预定位置(如/usr/program/jdk/)下
将JAVA_HOME添加到/etc/profile文件下
在最后添加如下内容:[root:]#vi /etc/profile
#add by jonsen for jdk #set java envrionment export JAVA_HOME=/usr/program/jdk/jdk1.6.0_13 export JRE_HOME=/usr/program/jdk/jdk1.6.0_13/jre export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
三、配置CentOS:
在/etc/hosts文件中为三台机器添加名称映射
10.106.0.24 h1 10.106.0.2 h2 10.106.0.42 h3
四、hadoop配置
0、(重点)免密码访问配置(两台服务器之间访问免密码)
ssh-keygen -t rsa -f ~/.ssh/id_rsa
后面接着两个回车(使用缺省目录即可)
ls -a可以看到隐藏目录:.ssh
进入会发现两个文件: id_rsa id_rsa.pub
注意要以grid用户登录,在grid用户的主目录下进行操作!
每个节点作相同操作
将id_rsa.pub 拷贝到当前目录下的authoried_keys文件中
把各个节点的authorized_keys的内容互相拷贝加入到对方的此文件中,然后就可以免
密码彼此ssh连入
1、将下载的hadoop-1.0.3.tar.gz解压到/home/grid/目录下, 并修改权限
[root]# chown -R grid:grid /home/grid/hadoop-1.0.3
2、配置hadoop, 配置文件在/home/grid/hadoop-1.0.3/conf/目录下
2.1、在hadoop-env.sh文件中添加JAVA_HOME
#added by Jonsen for JDK_HOME export JAVA_HOME=/usr/program/jdk/jdk1.6.0_13
2.2、在core-site.xml文件中添加配置信息
其中fs.default.name为namenode的交互端口,注意不要使用已经占用的端口就好<configuration> <property> <name>fs.default.name</name> <value>hdfs://h1:9000/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/grid/hadoop-1.0.3/tmp</value> </property> </configuration>
hadoop.tmp.dir是用来存储其他临时目录的根目录,这个一定要有,否则重启后可能会启动不了hadoop了
2.3、在hdfs-site.xml文件中添加配置信息
dfs.replication:冗余数量,备份的数据量<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
2.4、在mapred-site.xml文件中添加配置信息
mapred.job.tracker:jobTracker的交互端口<configuration> <property> <name>mapred.job.tracker</name> <value>h1:9001</value> </property> </configuration>
2.5、在master文件中写入hadoop namenode节点
h1
2.6、在slaves文件中写入hadoop datanode数据节点
h2 h3
2.7、配置完毕,将/home/hadoop/hadoop-1.0.3拷贝到其他站点
scp -r /home/grid/hadoop-1.0.3/ grid@h2:/home/grid/ scp -r /home/grid/hadoop-1.0.3/ gred@h3:/home/grid/
3、格式化hadoop,在hadoop.master站点上执行
cd /home/grid/hadoop-1.0.3 bin/hadoop namenode -format
4、启动集群
cd /home/grid/hadoop-1.0.3 bin/start-all.sh
五、配置中常见的错误总结:
参见:http://blog.youkuaiyun.com/yonghutwo/article/details/9206059写的很详细!