安装Hadoop先决条件
SHH安装,并且有公用ssh无密码跳转账号:admin(机器默认会安装SSH)
在namenode和各个slave上用机器名互相ping,ping不通的话,无法进行
JAVA环境安装(JDK1.6即可兼容HADOOP0.20.2版本)
安装路径:/home/admin/deploy/java6
安装HADOOP
安装HADOOP版本为0.20.2
安装路径:/home/admin/deploy/hadoop-0.20.2
首先格式化hdfs:执行hadoop namenode -format命令,如果不执行此命令在每次重启hadoop会进入安全模式
核心配置文件
hadoop-env.sh:该文件用来配置hadoop所需的特殊环境变量:
JAVA与HADOOP环境变量的设置(如果在~/.bash_profile中设置了环境变量,这里可以不进行配置)
export JAVA_HOME=/home/admin/deploy/java6
export HADOOP_HOME=/home/admin/deploy/hadoop-0.20.2
JAVA虚拟机性能调优(省略不用修改的内容)
HADOOP_NAMENODE_OPTS="-Xmx2048m–Xms1024m -Xmn1024m
HADOOP_DATANODE_OPTS="-Xmx2048m–Xms1024m -Xmn1024m
HADOOP_JOBTRACKER_OPTS="-Xmx2048m–Xms1024m -Xmn1024m
补充解释:
这里的XMS与XMX指的是JAVA虚拟机内存分配策略中的最大可用内存和最小内存设置。
不建议将XMS与XMX设置成一样。因为java的垃圾回收器在内存使用达到XMS值的时候才会开始回收,如果2个值一样,那么JAVA会在使用完所有内存时才会回收垃圾,导致内存LOAD一直很高。
关于XMN这个参数是JAVA内存机制中的年轻代。
整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。这里为了便于计算,取整个堆的一半。
另外:如果JAVA内存设置过大,HADOOP启动会报错
Error occurred during initialization of VM,Could not reserve enough space for object heap
core-site.xml:核心代码配置文件,需要修改的参数如下,其余可以先采用默认配置
<property>
<name>fs.default.name</name>
<value>hdfs://xxxxxxxxxx:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/admin/deploy/hdfs</value>
</property>
内容说明:
hadoop.tmp.dir:
这是hdfs存放namenode名空间和datanode数据块的地方,可以设置为任意存在的目录,默认在/tmp/Hadoop-username目录下,建议重定向目录
如果遇到namenode启动失败,很可能是这个配置文件的问题。
如果遇到datanode启动失败,一般是没有成功格式化hdfs,实在无法解决的话,可以尝试将{Hadoop.tmp.dir}清空,重新格式化hdfs。
fs.default.name
顾名思义,这个配置是HDFS的NAMENODE的地址与端口号