1、hadoop集群结构介绍html
hadoop自身集群中包含两个子集群,它们分别是hdfs集群、yarn集群;hdfs集群用于管理数据文件,而yarn集群用于管理集群运算相关的工做。hdfs集群中主要包含两种节点角色(name node、data node),name node即名称服务节点,主要用于为集群提供记录数据文件地址的名称服务,data node即数据节点,主要用于为集群提供存储文件的功能。node
集群结构图以下: c++
2、hadoop官网介绍git
官网地址:http://hadoop.apache.org/
hadoop common :内包含rpc框架
Ambarl:页面图形的hadoop管理工具
CDH:商业hadoop版本,包含一个web管理平台,能够停掉服务器、看状态、加节点等等。web
3、hadoop安装环境准备apache
因为是本身学习使用,因此将name node和resource manager安装在同一台Linux服务器上。centos
1.服务器准备
centos-aaron-h1:192.168.29.14四、name node、SecondaryNameNode、resource manager
centos-aaron-h2:192.168.29.14五、data node、node manager
centos-aaron-h3:192.168.29.14六、data node、node manager
centos-aaron-h4:192.168.29.14七、data node、node managerbash
2.服务器主准备:centos6.9 vmware服务器
3.添加hadoop用户,而且配置sudoer权限网络
4.同步时间
5.配置centos-aaron-h1到其h1-h5的免密登陆
6.关闭防火墙
4、hadoop下载
1.首先从hadoop官网下载hadoop-2.9.1.tar.gz、hadoop-2.9.1-src.tar.gz
5、编译hadoop(编译要求可参照源码包中的BUILD.txt文件)
1.安装jdk1.7(省略...)
2.安装apache-maven-3.5.4-bin.tar.gz
sudo tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local 修改配置文件: sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin 在mirrors中添加国内镜像仓库 vi /usr/local/apache-maven-3.5.4/conf/setting.xml <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3.Findbug安装,请先下载,地址为:http://findbugs.sourceforge.net/downloads.html
sudo tar -zxvf findbugs-3.0.1.tar.gz -C /usr/local sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin
4.ProtocolBuffer安装必须使用2.5.0。下载地址 https://code.google.com/p/protobuf/downloads/list
sudo tar -zxvf protobuf-2.5.0.tar.gz -C /usr/local yum install gcc-c++ //如下建议使用root用户只需,不然可能没有权限建立文件的错误 cd protobuf-2.5.0 ./configure --prefix=/usr/local/protobuf make && make install sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin
5.下载安装cmake-3.6.2.tar.gz,下载地址:http://www.cmake.org/download/ 或者 https://gitlab.kitware.com/cmake/cmake/tree/v3.6.2
建议使用root帐号进行操做 tar -zxvf cmake-3.6.2.tar.gz cd cmake-3.6.2 ./configure --prefix=/usr/local/cmake make && make install vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4 export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export CMAKE_HOME=/usr/local/cmake export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin:$CMAKE_HOME/bin
6.安装zlib-devel,执行命令:yum install zlib-devel
7.安装openssl-devel , 执行命令:yum install openssl-devel
8.安装ant环境
tar -zxvf apache-ant-1.9.13-bin.tar.gz -C /usr/local 配置环境变量 vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4 export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export CMAKE_HOME=/usr/local/cmake export ANT_HOME=/usr/local/apache-ant-1.9.13/ export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin:$CMAKE_HOME/bin:$ANT_HOME/bin 生效环境变量 source /etc/profile 测试 ant -version
9.开始编译hadoop
tar -zxvf hadoop-2.9.1-src.tar.gz mv hadoop-2.9.1-src hadoop-2.9.1 cd hadoop-2.9.1 mvn package -Pdist,native,docs,src -DskipTests –Dtar 或 mvn package -Pdist,native -DskipTests -Dtar
错误处理:hadoop pipes编译失败,须要安装openssl;而后执行命令:mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-pipes
编译成功效果图:
编译好的文件路径:/home/hadoop/hadoop-2.9.1/hadoop-dist/target/hadoop-2.9.1.tar.gz
最后总结:编译hadoop工程中极可能会出现假死、网络差致使的jar包下载失败等,能够使用maven clean...命令进行编译。编译过程听说若是顺利的话能够在一个小时内完成,博主编译完成花了半天时间。重要的耐心....
补充知识:maven的setting中能够多配置几个国内镜像
oschina
<mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
repo2
<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror>
net-cn
<mirror> <id>net-cn</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://maven.net.cn/content/groups/public/</url> </mirror>
uk
<mirror> <id>uk</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror>
ibiblio
<mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> </mirror>
jboss
<mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror>