Hadoop2/cdh4集群安装
CDH 是Cloudera 完全开源的Hadoop 分布式系统架构,为了满足企业的需求而特别构建的系统。即一个开源的企业级分布式存储系统。全称:Cloudera Hadoop。
它是在Apache Hadoop基础上打入了很多patch。使之性能更好,更加满足生产环境。
Hadoop介绍
Hadoop是apache 的开源项目,开发的主要目的是为了构建可靠、可拓展、稳定的分布式的系统,hadoop 是一系列的子工程的总和,其中包含:
1. hadoop common:为其他项目提供基础设施
2. HDFS:分布式的文件存储系统
3. MapReduce:A software frameworkfor distributed processing of large data sets on compute clusters,一个简化分布式编程的框架。
4. 其他工程包含:Avro(序列化系 统),Cassandra(数据库项目)等。
Hadoop以 Hadoop 分布式文件系统HDFS (Hadoop Distributed File System)和MapReduce(GoogleMapReduce的开源实现)为核心,Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于 Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个 HDFS 集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存储的数据。MapReduce框架是由一个单独运行在主节点上的 JobTracker和运行在每个集群从节点上的TaskTracker 共同组成的。主节点(NameNode)节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上,主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点(DataNode)仅负责由主节点指派的任务,当一个 Job 被提交时,JobTracker 接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS 和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce 在HDFS 的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop 分布式集群的主要任务。
安装
1、 准备环境:
集群安装在虚拟机上需要3台,1个master节点, 2个slave节点,可以相互ping通。
修改主机名和hosts文件,使3台机器互相解析。
192.168.117.132 master 192.168.117.128 slave01 192.168.117.129 slave02
2、配置3台机器,使互相之间无密码SSH登录。
3、安装Java(在3个机器上,可复制安装目录)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装:#rpm -ivh jdk-7u65-linux-x64.rpm
配置环境变量
#vim /etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_31 exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
重新加载文件 #source /etc/profile
4、安装CDH4
http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.2.0.tar.gz下载hadoop及生态圈相关组件。
此包为免安装包,直接解压到指定目录即可。
#mkdir /usr/cdh4
#tar–zxvf hadoop-2.0.0-cdh4.2.0.tar.gz
# mv hadoop-2.0.0-cdh4.1.2 hadoop-2.0
5、配置CDH4
1)也可在hadoop-env.sh中配置java环境变量,不过以上己在全局配置了,这里可以省了
2)编辑core-site.xml
[root@slave01 ~]# cat/usr/cdh4/hadoop-2.0/etc/hadoop/core-site.xml[root@slave01 ~]# fs.default.name hdfs://master:9100 hadoop.tmp.dir /hadoop/tmp ---要在hadoop目录内建立tmp目录
3)配置hdfs-site.xml
# cat hdfs-site.xmldfs.replication 1 dfs.namenode.name.dir file:/hadoop/name true dfs.datanode.data.dir file:/hadoop/data true dfs.permission false
4)配置mapred-site.xml
# cat/usr/cdh4/hadoop-2.0/etc/hadoop/mapred-site.xml[root@slave01 ~]# mapreduce.framework.name yarn mapreduce.job.tracker master:9101 true mapred.system.dir file:/hadoop/mapred/system true mapred.local.dir file:/hadoop/mapred/local true
5)配置yarn-site.xml
# cat/usr/cdh4/hadoop-2.0/etc/hadoop/yarn-site.xml[root@slave01 ~]# yarn.resourcemanager.resource-tracker.address master:18025 yarn.resourcemanager.address master:18040 yarn.resourcemanager.scheduler.address master:18030 yarn.resourcemanager.admin.address master:18141 yarn.resourcemanager.webapp.address master:8088 yarn.nodemanager.aux-services mapreduce.shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
6)配置slaves
# cat/usr/cdh4/hadoop-2.0/etc/hadoop/slaves localhost 192.168.117.129 192.168.117.128
7)配置Hadoop环境变量
#vim /etc/profile export HADOOP_HOME=/usr/cdh4/hadoop-2.0 export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=${HADOOP_HOME} export YARN_HOME=${HADOOP_HOME} exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop exportHDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop exportYARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
6、把配置好的Hadoop目录文件夹复制到其他节点上,路径要一致
其他节点的环境变量不要忘记配置(可直接复制profile文件)
7、启动集群(第一次格式化namenode)
#hadoop namenode -format
#./sbin/start-all.sh
8、验证: