(持续更新)
Hadoop的配置文件:
hadoop-env.sh: 用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
core-site.xml: 用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;
hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;
mapred-site.xml:HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
slaves:Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
Hadoop的配置文件:
hadoop-env.sh: 用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
core-site.xml: 用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;
hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;
mapred-site.xml:HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
slaves:Hadoop集群的slave主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
一、安装准备工作
安装准备工作
使用三台主机(RHEL 6.5)来实现,其规划如下所示:
IP地址 主机名运行的进程或扮演的角色
192.168.1.3 master.abc.comNameNode,JobTracker
192.168.1.4 datanode.abc.comDataNode,TaskTracker
192.168.1.5 snn.abc.comSecondaryNameNode
用到应用程序
jdk-8u45-linux-x64.rpm
hadoop-2.6.0.tar.gz
先在集群中的每个节点上建立运行hadoop进程的用户hadoop并给其设定密码。
# useradd hadoop
# echo "password" | passwd --stdin hadoop
设置集群各节点的/etc/hosts文件内容如下:
192.168.1.3 master.abc.com master
192.168.1.4 datanode.abc.com datanode
192.168.1.5 snn.abc.com snn
最好hostname检查一下
而后配置master节点的hadoop用户能够以基于密钥的验正方式登录其它各节点,以便启动进程并执行监控等额外的管理工作。以下命令在master节点上执行即可。
[[email protected] ~]# su - hadoop
[[email protected] ~]$ ssh-keygen -t rsa -P ‘‘
[[email protected] ~]$ cat /home/hadoop/.ssh/id_rsa.pub > /home/hadoop/.ssh/authorized_keys
[[email protected] ~]$ chmod 600 /home/hadoop/.ssh/authorized_keys
[[email protected] ~]$ ssh-copy-id -i .ssh/id_rsa.pub [email protected]
[[email protected] ~]$ ssh-copy-id -i .ssh/id_rsa.pub [email protected]
安装JDK
以下操作需要在每个节点上执行一遍。
编辑/etc/profile.d/java.sh,在文件中添加如下内容:
JAVA_HOME=/usr/java/latest/
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
切换至hadoop用户,并执行如下命令测试jdk环境配置是否就绪。
# su - hadoop
$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode, sharing)
安装Hadoop
集群中的每个节点均需要安装Hadoop,以根据配置或需要启动相应的进程等,因此,以下安装过程需要在每个节点上分别执行。
# tar xf hadoop-0.20.2-cdh3u5.tar.gz -C /usr/local
# chown -R hadoop:hadoop /usr/local/hadoop-0.20.2-cdh3u5
# ln -sv /usr/local/hadoop-0.20.2-cdh3u5 /usr/local/hadoop
然后编辑/etc/profile,设定HADOOP_HOME环境变量的值为hadoop的解压目录,并让其永久有效。编辑/etc/profile.d/hadoop.sh,添加如下内容:
HADOOP_HOME=/usr/local/hadoop
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
切换至hadoop用户,并执行如下命令测试jdk环境配置是否就绪。
$ hadoop version
Hadoop 0.20.2-cdh3u5
Subversion git://ubuntu-slave02/var/lib/jenkins/workspace/CDH3u5-Full-RC/build/cdh3/hadoop20/0.20.2-cdh3u5/source -r 30233064aaf5f2492bc687d61d72956876102109
Compiled by jenkins on Fri Oct 5 17:21:34 PDT 2012
From source with checksum de1770d69aa93107a133657faa8ef467