Hadoop 2.7.2 最小集群搭建

0 准备工作

操作系统:CentOS 6.6

三台CentOS Server,分别命名为:master, slave-1, slave-2

JAVA:jdk-1.7.0 来自: https://www.java.com/ (其实已经出了1.8.0,但是架构师要求必须用1.7.0)

Hadoop: hadoop-2.7.2  来自:http://apache.claz.org/hadoop/common/hadoop-2.7.2/  记得找那个带src的,看起来这样hadoop-2.7.2-src.tar.gz 

/data/  单独一个分区,所有内容都放在这里(放哪里没所谓,就是图方便,看得清楚)。

添加用户: user add hadoop (自动生成 hadoop用户和用户组。)

配置 /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 
10.120.9.107 master
10.120.9.211 slave-1
10.120.9.229 slave-2
记得主机名一定要小写!一定要小写!一定要小写!而且不能有别的其它无关域名,否则自己排错去吧...

1 安装配置JAVA

在master, slave-1, slave-2 三台机器上分别执行下面步骤。

解压缩 jdk-7u80-linux-x64.tar.gz,再移动到/data/

tar xf jdk-7u80-linux-x64.tar.gz 
mv jdk1.7.0_80 /data/jdk170/

编辑 /etc/profile,添加如下内容:

JAVA_HOME=/data/jdk170/
JRE_HOME=/data/jdk170/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

使之生效:

source /etc/profile

运行命令java -version监测,如果出现类似如下内容说明java安装没问题了。

[root@ffcom-us-1 jdk170]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

2 安装配置Hadoop

2.1 编译Hadoop

如果服务器是32位的,那么下载Hadoop编译好的包直接部署没问题。但是,猫哥的三台Server都是64位的。所以问题来了。或者找别人在64位机上编译好的,或者自己编译。

自己编译步骤,请移步另一篇猫哥原创文: http://blog.csdn.net/972301/article/details/62231113

三台server同时进行,编译好的结果,移动到 /data/hadoop/hadoop-2.7.2/

2.2 配置Hadoop

添加两个目录:

mkdir /data/hadoop/tmp
mkdir /data/hadoop/hdfs/

编辑 /data/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh 和 /data/hadoop/hadoop-2.7.2/etc/hadoop/yarn-env.sh 两个文件同样设置:

export JAVA_HOME=/data/jdk170
一定要强行设置,不要用默认的。

2.3 添加系统环境变量

编辑/etc/profile,追加如下内容:

export HADOOP_HOME=/data/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin

使之生效:

source /etc/profile

2.4 验证Hadoop

运行命令hadoop,出现类似下面的hadoop用法,说明Hadoop和JAVA都配置好了。

/data/hadoop/hadoop-2.7.2/bin/hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME            run the class named CLASSNAME
 or
  where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar             run a jar file
                       note: please use "yarn jar" to launch
                             YARN applications, not this command.
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp   copy file or directories recursively
  archive -archiveName NAME -p  *  create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings

Most commands print help when invoked w/o parameters.

3 设置ssh无密码访问

首先,切换成hadoop用户;

su - hadoop

三台服务器都这么干,首先访问自身无密码

ssh-keygen -t rsa #提示设密码时候直接回车,就是无密码访问了
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Master服务器执行:
scp ~/.ssh/id_rsa.pub hadoop@slave-1:~/
scp ~/.ssh/id_rsa.pub hadoop@slave-2:~/

在 slave-1, slave-2上,分别执行:

cat ~/id_ras.pub >> ~/.ssh/authorized_keys

同样的,slave-1 -> master, slave-1 -> slave-2; slave-2 -> master, slave-2 -> slave-1
最终结果是,这三台服务器互相ssh hadoop@XXX 都可以无密码直达。

记得ssh-keygen必须是rsa,不能使dsa,否则hadoop不认!

4 集群配置(所有节点相同)

为了方便,直接在master上配置,后面推送到所有slave节点即可。所有配置文件都在 $HADOOP_HOME/etc/hadoop/

此处是Hadoop配置的关键!

4.1 core-site.xml
添加如下内容:



    fs.default.name
    hdfs://master:9000
    HDFS的URI,文件系统://namenode标识:端口号


    hadoop.tmp.dir
    /data/hadoop/tmp
    namenode上本地的hadoop临时文件夹

4.2 hdfs-site.xml

添加如下内容:



    dfs.name.dir
    /data/hadoop/hdfs/name1,/data/hadoop/hdfs/name2
    namenode上存储hdfs名字空间元数据  


    dfs.data.dir
    /data/hadoop/hdfs/data1,/data/hadoop/hdfs/data2
    datanode上数据块的物理存储位置


    dfs.replication
    1
    副本个数,配置默认是3,应小于datanode机器数量

4.3 yarn-site.xml

添加如下内容:





        yarn.nodemanager.aux-services
        mapreduce_shuffle


        yarn.resourcemanager.webapp.address
        master:8099

4.4 mapred-site.xml

默认没有这个文件,但是可以执行查找命令,可以找到一个template

find /data/hadoop/hadoop-2.7.2/ -name mapred-site.xml.template

拷贝成mapred-site.xml,再添加如下内容:



mapred.job.tracker
master:9001


mapred.local.dir
/data/hadoop/tmp

4.5 添加 masters 和 slaves 文件

在/data/hadoop/hadoop-2.7.2/etc/hadoop/目录下,添加(如果没有)或者编辑 masters 和 slaves两个文件。

masters文件中放一行,就是master节点的主机名。

slaves文件中放所有slave节点的主机名,每个一行。有几个slave节点放几行。

记得:涉及主机名的都是小写字母,而且不要有多余的内容。

4.6 推送配置内容:

scp /data/hadoop/hadoop-2.7.2/etc/hadoop/* hadoop@slave-1:/data/hadoop/hadoop-2.7.2/etc/hadoop/
scp /data/hadoop/hadoop-2.7.2/etc/hadoop/* hadoop@slave-2:/data/hadoop/hadoop-2.7.2/etc/hadoop/

5 启动Hadoop集群

5.1 先格式化一个hdfs分区

/data/hadoop/hadoop-2.7.2/bin/hadoop namenode -format 

会出现很多信息,没有error message或者warning,而且看到success就说明成功了。猫哥的集群搭好了,就不再格式化演示了。按照猫哥的设置,应该有下面信息,格式肯定会不同,只节选了部分。

13/09/10 16:39:33 INFO common.Storage: Storage directory /data/hadoop/name1 has been successfully formatted. 
13/09/10 16:39:33 INFO common.Storage: Storage directory /data/hadoop/name2 has been successfully formatted. 
13/09/10 16:39:33 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 

SHUTDOWN_MSG: Shutting down NameNode at Master/10.120.9.107 

************************************************************/ 

出现Shutting down也没问题。

5.2 启动集群

/data/hadoop/hadoop-2.7.2/sbin/start-all.sh

至少出现如下信息:

This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
master: starting namenode, logging to /data/hadoop/hadoop-2.7.2/logs/hadoop-hadoop-namenode-master.out
slave-1: starting datanode, logging to /data/hadoop/hadoop-2.7.2/logs/hadoop-hadoop-datanode-slave-1.out
slave-2: starting datanode, logging to /data/hadoop/hadoop-2.7.2/logs/hadoop-hadoop-datanode-slave-2.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /data/hadoop/hadoop-2.7.2/logs/hadoop-hadoop-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /data/hadoop/hadoop-2.7.2/logs/yarn-hadoop-resourcemanager-master.out
slave-1: starting nodemanager, logging to /data/hadoop/hadoop-2.7.2/logs/yarn-hadoop-nodemanager-slave-1.out
slave-2: starting nodemanager, logging to /data/hadoop/hadoop-2.7.2/logs/yarn-hadoop-nodemanager-slave-2.out

成功了~~

5.3 验证

master端运行jps,会看到至少如下一些进程:

[hadoop@master hadoop-2.7.2]$ jps
26531 Jps
25292 SecondaryNameNode
25459 ResourceManager
25087 NameNode
slave端运行jps,会看到至少如下一些进程:

[hadoop@slave-1 hadoop-2.7.2]$ jps
10116 NodeManager
11281 Jps
9985 DataNode

打开浏览器,输入master的IP和端口号50070:http://10.120.9.107:50070/ 可以看到Hadoop Overview页面。如下图:
Hadoop 2.7.2 最小集群搭建_第1张图片

Summary表格中可以看到活跃的节点:

Hadoop 2.7.2 最小集群搭建_第2张图片

至此,最小化Hadoop集群配置完毕。

6 关闭集群

/data/hadoop/hadoop-2.7.2/sbin/stop-all.sh



你可能感兴趣的:(BigData)