Hadoop 2.7.2 最小集群搭建
2017-03-22 20:43
337 查看
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 <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 <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> 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_keysMaster服务器执行:
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
添加如下内容:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> <description>HDFS的URI,文件系统://namenode标识:端口号</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop/tmp</value> <description>namenode上本地的hadoop临时文件夹</description> </property> </configuration>
4.2 hdfs-site.xml
添加如下内容:<configuration> <property> <name>dfs.name.dir</name> <value>/data/hadoop/hdfs/name1,/data/hadoop/hdfs/name2</value> <description>namenode上存储hdfs名字空间元数据 </description> </property> <property> <name>dfs.data.dir</name> <value>/data/hadoop/hdfs/data1,/data/hadoop/hdfs/data2</value> <description>datanode上数据块的物理存储位置</description> </property> <property> <name>dfs.replication</name> <value>1</value> <description>副本个数,配置默认是3,应小于datanode机器数量</description> </property> </configuration>
4.3 yarn-site.xml
添加如下内容:<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8099</value> </property> </configuration>
4.4 mapred-site.xml
默认没有这个文件,但是可以执行查找命令,可以找到一个templatefind /data/hadoop/hadoop-2.7.2/ -name mapred-site.xml.template
拷贝成mapred-site.xml,再添加如下内容:
<configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> 4000 </property> <property> <name>mapred.local.dir</name> <value>/data/hadoop/tmp</value> </property> </configuration>
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 NameNodeslave端运行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页面。如下图:
Summary表格中可以看到活跃的节点:
至此,最小化Hadoop集群配置完毕。
6 关闭集群
/data/hadoop/hadoop-2.7.2/sbin/stop-all.sh
相关文章推荐
- Hadoop2.7.2之集群搭建(三台)
- Hadoop-2.7.2伪分布式集群搭建
- Hadoop2.7.2之集群搭建(三台)
- hadoop2.7.2集群搭建
- Hadoop2.7.2 Centos 完全分布式集群环境搭建 (3) - 问题汇总
- Hadoop2.7.2之集群搭建(单机)
- Hadoop2.7.2之集群搭建(三台)
- Hadoop2.7.2 Centos 完全分布式集群环境搭建 (1) - 基础环境准备-1
- hadoop2.7.2集群搭建
- Hadoop-2.7.2集群的搭建——集群学习日记
- Hadoop2.7.2之集群搭建(高可用)
- Spark 1.6.2 + Hadoop 2.7.2 集群搭建
- Hadoop 2.7.2 集群搭建
- hadoop2.7.2和jdk1.8.0_121集群搭建
- centos7搭建hadoop2.7.2完全分布式集群
- hadoop2.7.2集群搭建之虚拟机安装
- Hadoop 2.7.2 集群搭建
- Hadoop 2.7.2 集群搭建-预备工作
- Hadoop-2.7.2集群的搭建——集群学习日记
- Hadoop2.7.2 Centos 完全分布式集群环境搭建 (2) - Hadoop安装与配置(完全分布式)