前言html
前面咱们主要分析了搭建Hadoop集群所须要准备的内容和一些提早规划好的项,本篇咱们主要来分析如何安装CentOS操做系统,以及一些基础的设置,闲言少叙,咱们进入本篇的正题。java
技术准备node
VMware虚拟机、CentOS 6.8 64 bitlinux
安装流程web
由于个人笔记本是Window7操做系统,而后内存配置,只有8G,内存配置过低了,固然为了演示,我会将Hadoop集群中的主节点分配2GB内存,而后剩余的三个节点都是1GB配置。apache
全部的节点存储我都设置为50GB。vim
在安装操做系统以前,咱们须要提早规划好操做系统的分区如何设置,咱们知道,在Linux系统中,它的磁盘分区并不一样于Windows系统,它是经过目录挂载的方式进行分区,简单点说的话就是将不一样的系统内置目录进行分配到不一样的逻辑分区中,而后咱们在进行存储的时候只须要根据目录进行存放就能够了。浏览器
上面的这种分区方式是和Windows操做系统有区别的,固然在Linux操做系统中还存在磁盘格式的不一样,好比通常常见的格式为:ext2,ext3,ext4等,咱们当前最经常使用的就是ext3,关于每种格式的不一样点和应用场景你们有兴趣的能够网上查阅,这里再也不赘述。服务器
那么咱们来分析一下Linux系统中最多见的几种目录分区方式网络
以上为我基于咱们的50GB的存储空间作的一个规划,若是生产或者物理机你们能够根据须要成比例递增。
下面,我们进去CentOS操做系统的详细安装过程。
一、首先须要在VMWare中建立一个新的计算机,而后指定CentOS的镜像路径和用户名和密码。
二、指定当前虚拟机操做系统的存储大小和内存大小。
三、点击完成VMware就进入了系统自动安装的过程当中,而后等待完成安装就能够。
四、至此,咱们已经成功的安装上了CentOS操做系统,而后安装的过程当中顺便建立了一个新用户Hadoop,这个帐户就是咱们后面安装Hadoop集群环境所使用的帐号。
五、咱们登录到CentOS操做系统,而后进入系统的首先要作的事情就是:改计算机名!改计算机名!改计算机名!。
打开终端输入界面,而后根据角色更改当前计算机的名称。打开终端的方式是在右键——>Open In Terminal
至此,你的计算机名称更改完毕!
六、在修改完成计算机名以后,咱们须要作的就是设置固定IP,而后配置Host文件。
固然,这里有几个知识点须要跟你们讲解一下,就是关于网络的配置,其实在VMware虚拟机中存在几种网络模式:
其实,这里最经常使用的就是第二种模式:NAT模式(N):用于共享主机的IP地址,可是,这里我须要跟你们讲解的是,其实在咱们的生产环境中,每一台虚拟机都是须要独立配置IP的,为了最大限度的避免由于宿主机的网络带来的问题,在Hadoop集群中咱们选择第一种模式:桥接模式(B):直接链接物理网络。啥意思呢?意思就是很简单,虽然你如今用的是虚拟机,可是把它当成物理机同样,也给插上网线,链接到本地的网络中去。
固然,若是选择这种方式的前提是要保证你的局域网的网段和以前我们规划的IP是一致的,必须都是192.168.1.* 这种网段,这样的目的很简单就是宿主机和咱们的虚拟机可以直接通讯,那就意味这主机能联网,咱们的虚拟机就能联网。
而后,咱们进入咱们的虚拟机进行固定IP的设置。
咱们利用界面进行设置,毕竟这种方式比较简单易操做:
而后,根据咱们以前的系统规划,将咱们的IP设置上,这里有一个选项必定要勾选上:Available to all users.我以前搭建集群的时候就由于这一个选择折腾了我一天的时间!!这都是坑哈...记住了!!!勾上!!
而后,就是验证咱们当前虚拟机是否能上网,IP是否能成功配置。
而后,确保能上网,毕竟我们须要下载不少安装包。
应该明白上面我输入的含义吧、这货是最经常使用的命令。
最后必定要记得修改咱们的hosts文件,固然了在生产集群中通常都会有本身的DNS服务器,可是这里咱们条件有限,就手动的配置下Host文件得了。
切换至root超级管理员帐户,而后修改host文件,执行如下命令:
vim /etc/hosts
保存文件,而后重启一下服务器。至此,关于服务器的网络咱们已经配置完成了。
七、上面咱们完成了CentOS的基础配置,确保了计算机可以联网,下面咱们就须要下载Hadoop安装包,而后进入Hadoop集群的搭建工做。
首先,咱们须要下载安装Hadoop集群环境中须要的Jdk包,由于Java编写的嘛,而后下载Hadoop安装包,因此咱们切换到CentOS的Downloads目录下:
cd /home/hadoop/Downloads
而后,下载咱们所须要的安装包,到这个目录下:
cd /home/hadoop/Downloads/
咱们找到相关的版本的java JDK和Hadoop版本包,这里咱们选择Hadoop 最新的安装包,记住下载安装包的时候必定要上Hadoop官网上下载,能避免不少没必要要的麻烦。
CentOS中下载脚本以下:
wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
而后,咱们下载JDK,这个上Oracle官网上,找到最新版本的JDK下载就能够了,一样咱们也保存到Downloads目录中。
JDK下载脚本以下:
wget http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz
到此,咱们已经准备好了相关的安装包,有图有真相:
固然了,若是感受这种方式比较麻烦,就直接下载到本地,而后拷贝到CentOS系统中就能够了,文章的最后我也会给出相关的下载包文件,再次提醒:必定要上官网下载!
八、上面完成了安装包的下载,下面就是Hadoop配置了。
其实,关于Hadoop环境的配置分为两步:一、Java环境配置;二、Hadoop配置。缘由很简单,由于Hadoop就是Java语言编写的,因此必定要先配置好Java环境。
首先,咱们来解压刚才咱们下载的JDK文件,而后配置环境变量。
解压脚本以下,记住一点要在刚才我们下载的Downloads文件夹下进行:
tar -zxvf jdk-8u101-linux-x64.tar.gz
若是这里一直报错,或者无法解压,那说明你下载的JDK安装包不完整,须要重新下载,或者你直接Windows环境下确保下载完成,顺便解压了。
因此,这里我就用了以前已经下载的jdk版本,直接解压就行了。
而后,上面咱们已经介绍过,通常将安装的程序存入到系统的/usr目录中,因此这里在usr目录中建立一个Java目录,而后配置环境变量。
mkdir /usr/java
上面的脚本须要在root超级用户下进行建立,因此在执行命令的须要先用su命令进行提权。建立完成以后,记得更改一下这个java新建目录的权限。
chown hadoop:hadoop /usr/java/
上面的脚本就是将这个新建的java目录,变动Owner,直接赋权给hadoop用户。由于咱们须要用这个用户进行环境的搭建。咱们来验证下:
这里重点提示下:权限配置在linux系统中是一个很重的流程,必定要确保当前用户可以拥有文件的执行权限,要不会出现各类莫名其妙的问题!!!
下面,咱们来更改一下系统的环境变量,记得使用root用户,编辑脚本:
vim /etc/profile
添加,以下脚本:
# set java environment export JAVA_HOME=/usr/java/jdk1.8.0_73 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
而后,将咱们解压好的java文件夹拷贝至咱们新建立的文件夹,刷新该文件,验证是否生效,脚本以下:
[root@Master Downloads]# cp -r jdk1.8.0_73 /usr/java/ [root@Master Downloads]# java -version
至此,咱们的Java运行环境已经配置完成。
Hadoop的安装其实很简单的,由于只须要配置好相应的几个关键我文件就能够了。
首先,和上面的java配置相似,咱们如今/usr目录下建立一个hadoop文件夹,而后赋权给hadoop用户,而后将咱们下载的hadoop安装包进行解压,拷贝至咱们新建的hadoop目录,脚本以下:
--解压Hadoop安装包 tar -zxvf hadoop-2.6.4.tar.gz --/usr目录下,建立hadoop目录 mkdir /usr/hadoop --拷贝解压后的hadoop安装包 cp -r hadoop-2.6.4 /usr/hadoop --赋权给Hadoop用户 chown hadoop:hadoop /usr/hadoop/
咱们下面就是须要对几个关键的文件进行配置了,详细步骤以下:
首先,咱们先进入到咱们要配置的hadoop安装目录中:
cd /usr/hadoop/hadoop-2.6.4/
这里提示一下,全部的我们须要配置的文件都存放于hadoop安装目录的/etc/hadoop中,首先我们来配置第一个文件core-site.xml
vim etc/hadoop/core-site.xml
添加如下内容:
<configuration> <!-- HDFS file path --> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.1.50:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/tmp</value> <description>Abasefor other temporary directories.</description> </property> <property> </configuration>
上面的配置项很简单,首先配置HDFS默认的链接地址,而后流文件的配置大小,默认是4K过小了,这里咱们将这个值改的大一点,而后最后就是生成临时结果的配置路径,这里须要根据你的配置结果手动建立。
下面,咱们就来建立该目录,若是在生产环境中,咱们须要将该配置的目录指定到一个固定的配置目录下,这里我们方便演示就直接配置到Hadoop安装目录里面了。
脚本以下:
mkdir tmp
而后,咱来配置第二个文件hdfs-site.xml
vim etc/hadoop/hdfs-site.xml
<property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.1.50:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/hadoop/hadoop-2.6.4/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
这几个参数解释下含义:
<1>dfs.namenode.secondary.http-address 这个含义就是SecondName的地址,在上一篇文章中我就分析过,这个是做为NameNode的一个备份,目的就是灾备之用了。由于咱们这个就一个机器因此都配置了相同的机器,只是用了不一样的端口。
<2>dfs.namenode.name.dir 和 dfs.namenode.data.dir两个配置指的是NameNode存储的DataNode元数据的信息,这里须要配置两个目录一个是存放Name和Data目录,稍后咱们须要手动建立出这两个目录
<3>dfs.replication这个含义是数据文件块(black)复制备份的个数,咱们知道在HDFS分布式文件系统中,为了保证数据的完整性,底层的机制是须要多拷贝几份数据分不到不一样的计算机上的,目的一样是灾备。
<4>dfs.webhdfs.enabled这个指的是是否能够经过web站点进行Hdfs管理,后面咱们会演示,如何经过页面打开HDFS文件。
好,咱们下面手动来建立上面的Name和Data的两个目录:
mkdir dfs mkdir dfs/name mkdir dfs/data
至此,咱们第二个文件配置完成。
而后,咱来配置第三个文件mapred-site.xml
前面的两个文件,都有现成的文件进行配置,可是,这第三个文件须要咱们本身来建立,固然,Hadoop系统给咱们提供了一个模板文件,因此咱们拷贝造成一份新的就好了。
咱们执行cp命令,来建立一个新的mapred-site.xml文件。
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
而后,修改该文件。脚本以下:
vim etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.1.50:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.1.50:19888</value> </property> </configuration>
咱们来解释这几个参数的含义:第一个就是制定当前Hadoop的并行运行计算架构,这里为yarn,固然还有其它的运行架构好比:spark等,第二个就是Job运行的历史记录Server,第三个就是历史运行记录的Web服务器。
而后,咱来配置第四个文件yarn-site.xml。
vim etc/hadoop/yarn-site.xml
<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> <property> <name>yarn.resourcemanager.address</name> <value>192.168.1.50:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.1.50:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.1.50:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>192.168.1.50:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>192.168.1.50:8088</value> </property>
这个yarn的配置参数我就不怎么解释了,由于咱们后续的调优会一直围绕这个文件进行。
至此,咱们已经完成了Hadoop四个配置文件的配置,而后,不要忘记了最重要的一点:配置Hadoop的jdk路径,不指定是不能运行的。
hadoop-env.sh 和 yarn-env.sh 在开头添加以下java环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_73
vim etc/hadoop/hadoop-env.sh
一样的道理,咱们来配置yarn-env.sh 文件。
好了,到此,咱们已经完成了Hadoop全部的配置文件,这个过程必定要当心认真。而后在最后放一个大招,咱们知道咱们须要制定这全部的文件Hadoop用户都有执行权限,因此咱们将经过以下命令将Hadoop文件夹下全部的文件,进行Owner变动。
chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/
我再强调一遍,已经要把权限配置好,要不后面的运行故障足够把你玩死!!!
八、上面咱们完成了Hadoop基础配置,而后咱们格式化文件,来启动这个单节点的Hadoop集群。
到此,咱们已经完成了Hadoop的配置了,下面要作的就是格式化HDFS文件,而后启动单节点的Hadoop集群。
bin/hadoop namenode -format
看到上面现实的信息,那就说明你已经成功执行了,不然报什么错误,解决什么错误。通常错误的缘由都是配置文件粗心致使的错误,本身仔细检查就得了。
这里的验证方式有两点,第一点就是保证HDFS完整没问题,验证方式以下:
首先,启动HDFS
sbin/start-dfs.sh
而后,查看状态
bin/hadoop dfsadmin -report
还有一种更直接的方式,直接打开浏览器查看:http://192.168.1.50:50070/dfshealth.html#tab-overview
是否是很酷,这里能够直接查看分布式文件系统HDFS的各个状态。有兴趣的本身查看吧...咱们接着验证其它的内容。
首先,我来启动Hadoop集群,而后查看其状态,脚本以下:
sbin/start-yarn.sh
此次来个大招,直接打来浏览器瞅瞅,地址为:
至此,一款单机版的装X神器Hadoop已经被咱们搭建成功,固然这只是单机版的后面咱们会逐渐完善它,而且,将节点彻底配置成功。
在完成到此的时候,已经能够进行集群搭建了,而后后面的文章我将教你怎么搭建所谓的伪分布式...全分布式的大数据平台。....淡定....不要着急.....
结语
此篇篇幅已经超长度了,先到此吧,关于Hadoop大数据集群的搭建后续依次介绍,好比利用Zookeeper搭建Hadoop高可用平台、Map-Reducer层序的开发、Hive产品的数据分析、Spark的应用程序的开发、Hue的集群坏境的集成和运维、Sqoop2的数据抽取等,有兴趣的童鞋能够提早关注。
本篇主要介绍了搭建一个Hadoop单机集群,后面咱们会逐渐完善它,我会教你如何一步步的搭建起彻底分布式的Hadoop集群,而后教你如何使用它,骚年...不要捉急...让思惟飞一会...
有问题能够留言或者私信,随时恭候有兴趣的童鞋加大数据平台深刻研究。共同窗习,一块儿进步。
文章的最后给出上一篇的基础篇:
若是您看了本篇博客,以为对您有所收获,请不要吝啬您的“推荐”。