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
[[email protected] ~]# cat/usr/cdh4/hadoop-2.0/etc/hadoop/core-site.xml <?xml version="1.0"encoding="UTF-8"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <!-- Licensed under the Apache License, Version 2.0 (the"License"); youmay not use this file except in compliance with the License. Youmay obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Seethe License for the specific language governing permissions and limitationsunder the License. See accompanying LICENSE file. --> <!-- Put site-specific propertyoverrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9100</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp</value> ---要在hadoop目录内建立tmp目录 </property> </configuration> [[email protected] ~]#
3)配置hdfs-site.xml
# cat hdfs-site.xml <?xml version="1.0"encoding="UTF-8"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <!-- Licensed under the Apache License, Version 2.0 (the"License"); youmay not use this file except in compliance with the License. Youmay obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Seethe License for the specific language governing permissions and limitations under the License. See accompanying LICENSE file. --> <!-- Put site-specific propertyoverrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/hadoop/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/hadoop/data</value> <final>true</final> </property> <property> <name>dfs.permission</name> <value>false</value> </property> </configuration>
4)配置mapred-site.xml
# cat/usr/cdh4/hadoop-2.0/etc/hadoop/mapred-site.xml <?xml version="1.0"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <!-- Put site-specific propertyoverrides in this file. --> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.job.tracker</name> <value>master:9101</value> <final>true</final> </property> <property> <name>mapred.system.dir</name> <value>file:/hadoop/mapred/system</value> <final>true</final> </property> <property> <name>mapred.local.dir</name> <value>file:/hadoop/mapred/local</value> <final>true</final> </property> </configuration> [[email protected] ~]#
5)配置yarn-site.xml
# cat/usr/cdh4/hadoop-2.0/etc/hadoop/yarn-site.xml <?xml version="1.0"?> <configuration> <!-- Site specific YARN configurationproperties --> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:18025</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:18141</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> [[email protected] ~]#
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、验证:
Hadoop2/cdh4集群安装