文档章节

大数据——Hadoop集群坏境CentOS安装

bopoco
 bopoco
发布于 2017/04/05 09:27
字数 3785
阅读 7
收藏 0

前言

前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题。

技术准备

VMware虚拟机、CentOS 6.8 64 bit

安装流程

因为我的笔记本是Window7操作系统,然后内存配置,只有8G,内存配置太低了,当然为了演示,我会将Hadoop集群中的主节点分配2GB内存,然后剩余的三个节点都是1GB配置。

所有的节点存储我都设置为50GB。

在安装操作系统之前,我们需要提前规划好操作系统的分区如何设置,我们知道,在 Linux系统中,它的磁盘分区并不同于Windows系统,它是通过目录挂载的方式进行分区,简单点说的话就是将不同的系统内置目录进行分配到不同的逻 辑分区中,然后我们在进行存储的时候只需要根据目录进行存放就可以了。

上面的这种分区方式是和Windows操作系统有区别的,当然在Linux操作系统中还存在磁盘格式的不同,比如一般常见的格式为:ext2,ext3,ext4等,我们当前最常用的就是ext3,关于每种格式的不同点和应用场景大家有兴趣的可以网上查阅,这里不再赘述。

那么我们来分析一下Linux系统中最常见的几种目录分区方式

  • /boot 系统引导目录,用来存放与Linux系统启动相关的程序,比如启动引导装载程序等。建议大小200MB。
  • /usr  存放系统中安装的应用程序,一般的数据都比较多,所以建议大于3GB。
  • /var  用来存放Linux系统中经常变化的数据以及日志文件,建议大于1GB。
  • /home 存放普通用户的数据,是普通用户的宿主目录,一般一个用户就会创建一个home目录,建议大小为剩下的空间。
  • /  为Linux系统的根目录,所有的目录都挂在到这个目录下面,建议大小为大于5GB以上。
  • /tmp 临时文件存放的地方,一般需要独立的分区,这样可以避免系统被塞满后系统的稳定性。建议大小为500MB以上。
  • swap  这个是虚拟内存,一般建议为物理内存的1——2倍。

以上为我基于我们的50GB的存储空间做的一个规划,如果生产或者物理机大家可以根据需要成比例递增。

 

 

我们完成了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系统中就可以了,文章的最后我也会给出相关的下载包文件,再次提醒:一定要上官网下载!

 

 

 

8、上面完成了安装包的下载,下面就是Hadoop配置了。

 

其实,关于Hadoop环境的配置分为两步:1、Java环境配置;2、Hadoop配置。原因很简单,因为Hadoop就是Java语言编写的,所以一定要先配置好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环境的配置

 

 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.dirdfs.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/

 

我再强调一遍,已经要把权限配置好,要不后面的运行故障足够把你玩死!!!

 

 

 

 

8、上面我们完成了Hadoop基础配置,然后我们格式化文件,来启动这个单节点的Hadoop集群。

 

到此,我们已经完成了Hadoop的配置了,下面要做的就是格式化HDFS文件,然后启动单节点的Hadoop集群。

 

  • Hadoop 分布式存储系统的HDFS格式化,记住了,这货只能在初始化系统的时候用一次,一次就好了,要不执行一次数据就丢失一次,我们来执行以下命令:

 

bin/hadoop namenode -format

 

 

看到上面现实的信息,那就说明你已经成功执行了,否则报什么错误,解决什么错误。一般错误的原因都是配置文件粗心导致的错误,自己仔细检查就得了。

     

好了,如果没有任何异常,那面所有准备工作已经完成了,下面就可以开始启动

 

注:为了防止其他问题建议关闭防火墙和selinux
1)关闭防火墙(每个节点)

[Bash shell]
?
1
2
service iptables stop
chkconfig iptables off
2)关闭selinux(重启生效)
[Bash shell]
?
1
vim /etc/selinux/config


 

 

  • Hadoop 集群进行启动验证

 

这里的验证方式有两点,第一点就是保证HDFS完整没问题,验证方式如下:

 

首先,启动HDFS

 

sbin/start-dfs.sh

 

然后,查看状态

 

bin/hadoop dfsadmin -report

 

 

还有一种更直接的方式,直接打开浏览器查看:http://192.168.1.50:50070/dfshealth.html#tab-overview

 

 

是不是很酷,这里可以直接查看分布式文件系统HDFS的各个状态。有兴趣的自己查看吧...我们接着验证其它的内容。

 

  • Hadoop 集群启动查看

 

首先,我来启动Hadoop集群,然后查看其状态,脚本如下:

 

sbin/start-yarn.sh 

 


这次来个大招,直接打来浏览器瞅瞅,地址为:

 

 

 

 

至此,一款单机版的装X神器Hadoop已经被我们搭建成功,当然这只是单机版的后面我们会逐渐完善它,并且,将节点完全配置成功。

 

在完成到此的时候,已经可以进行集群搭建了,然后后面的文章我将教你怎么搭建所谓的伪分布式...全分布式的大数据平台。....淡定....不要着急.....

 

 

 

结语

 

此篇篇幅已经超长度了,先到此吧,关于Hadoop大数据集群的搭建后续依次介绍,比如利用Zookeeper搭建Hadoop高可用平台、 Map-Reducer层序的开发、Hive产品的数据分析、Spark的应用程序的开发、Hue的集群坏境的集成和运维、Sqoop2的数据抽取等,有 兴趣的童鞋可以提前关注。

 

本篇主要介绍了搭建一个Hadoop单机集群,后面我们会逐渐完善它,我会教你如何一步步的搭建起完全分布式的Hadoop集群,然后教你如何使用它,骚年...不要捉急...让思维飞一会...

 

有问题可以留言或者私信,随时恭候有兴趣的童鞋加大数据平台深入研究。共同学习,一起进步。 

 

本文转载自:http://www.cnblogs.com/fanlinglong/p/5774938.html

bopoco
粉丝 0
博文 29
码字总数 0
作品 0
私信 提问
大数据教程(一)—— Hadoop集群坏境搭建配置

前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到...

biubiubiu!
2017/05/02
0
0
大数据自动化安装部署方案(一)——集群系统环境设置

1.前期准备 1.1系统和yum源镜像准备 需要的条件: ① 至少三台刚装上Centos7.0系统的物理机或者虚拟机; ② CentOS-7.0-x86_64-bin-DVD1.iso镜像,用于制作本地yum源; 注意:本文三台物理机...

牧梦者
2018/07/30
0
0
如何构建最佳的 Hadoop 集群

序言 数据库和文件中储存的数据量每天都在增长,因此我们需要构建能够储存大量数据(“大数据”),并且廉价、可维护、可伸缩的环境。传统的关系数据库(RDBMS)系统在当前的需求下成本过高并...

oschina
2013/01/04
3.1K
1
大数据怎样才能踏入进去?年薪60万大数据架构师教你如何入门!

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构; 学完此...

董黎明
2018/06/09
0
0
hadoop 2.8.3 集群环境搭建

hadoop 2.8.3集群环境搭建 Linux : CentOS 7 hadoop版本: hadoop-2.8.3 JDK: 1.8.0_161 这里打算直接root用户,搭建3个节点的hadoop集群环境。先关闭防火墙,安装成功后,启动哪里报错再针...

huangliuyu00
2018/04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

HeyUI组件库按需加载功能上线,盘点HeyUI组件库有哪些独特功能?

HeyUI组件库 如果你还不了解heyui组件库,欢迎来我们的官网或者github参观。 官网 github 当然,如果能给我们一颗✨✨✨,那是最赞的了! 按需加载 当heyui组件库的组件越来越多的时候,按需...

vvpvvp
4分钟前
0
0
Dockerfile文件详解

Dockerfile文件详解 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker bui...

Jeam_
17分钟前
0
0
阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统...

zhaowei121
25分钟前
0
0
在数据数据探索过程中的一些常用操作

###pandas在做数据探索时,分组统计均值和中位数参考资料:http://www.cnblogs.com/nxld/p/6058591.htmlhttp://python.jobbole.com/85742/按字典重新赋值,可以直接使用pandas中的repla...

KYO4321
28分钟前
0
0
好程序员分享干货 弹性分布式数据集RDD

一、RDD定义 RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变(数据和元数据)、可分区、里面的元素可并行计算的集合。其特点在于自动容...

好程序员IT
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部