Hadoop集群大数据平台搭建

Hadoop集群环境搭建配置

前言

Hadoop的搭建分为三种形式:单机模式、伪分布模式、完全分布模式,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式。

硬件选择

须知:

  1. 分布式环境中一个服务器就是一个节点
  2. 节点越多带来的是集群性能的提升
  3. 一个Hadoop集群环境中,NameNode,SecondaryNameNode和DataNode是需要分配不同的节点上,也就需要三台服务器
  4. 在Hadoop运行作业完成时,History Server来记录历史程序的运行情况,需要独立一台服务器
  5. 第一台:记录所有的数据分布情况,运行进程:NameNode

    第二台:备份所有数据分布情况,因为当前面的那台服务器宕机(日常所说的死机)时,可通过该服务器来恢复数据。所以,该服务器运行的程序就是:SecondaryNameNode

    第三台:存储实际数据,运行的进程就是;DataNode

    第四台:记录应用程序历史的运行状况。运行的程序就是:History Server。(可选)

    所以说,至少三台。

集群环境各个服务配置

  1. 在Hadoop集群环境中,最重要的就是NameNode运行的服务器是整个集群的调度和协调工作,还有一个很重要的进程是资源管理(真正的协调整个集群中每个节点的运行),所以配置要高于其他节点。

软件选择

关于Hadoop集群环境软件的选择,无非就是围绕这个几个软件产品去选择:OS操作系统,Hadoop版本,JDK版本,Hive版本、MySQL版本等。

节点配置信息的分配

提前规划出四台服务器用来搭建Hadoop集群,然后分别为其分配了机器名称、IP,IP需要设置为统一网段,可根据使用的情况,进行动态调整的。

另外说明:搭建了两台Ubuntu的服务器来单独安装MySQLServer,搭建了一个主从模式,Ubuntu是一个界面友好的操作系统,这里和Hadoop集群分离的目的是因为Mysql数据库是比较占内存资源的,所以我们单独机器来安装,当然,MySQL并不是Hadoop集群所需要的,两者没有必然的关系,这里搭建它的目的就为了后续安装Hive来分析数据应用的,并且我们可以在这个机器里进行开发调试,当然Window平台也可以,毕竟我们使用Windows平台是最熟练的。(hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。)

Hadoop集群环境安装

安装前需明了:

  1. 将Hadoop集群中的主节点分配2GB内存,然后剩余的三个节点都是1GB配置。
  2. 所有的节点存储都设置为50GB

安装流程

  1. 首先需要在VMWare中创建一个新的计算机,然后指定CentOS的镜像路径和用户名和密码。
  2. 指定当前虚拟机操作系统的存储大小(50GB)和内存大小(2GB)。
  3. 完成安装
  4. 至此,我们已经成功的安装上了CentOS操作系统,然后安装的过程中顺便创建了一个新用户Hadoop,这个账户就是我们后面安装Hadoop集群环境所使用的账号。
  5. 我们登录到CentOS操作系统,然后为了后续节点识别,要改计算机名。Master.Hadoop,然后重启。(不知理解是否有误)

    (1)、切换到root用户

    (2)、编辑/etc/sysconfig/network文件:vi /etc/sysconfig/network

    (3)、保存该文件,重启计算机(reboot)

    (4)、查看是否生效:hostname

  6. 设置固定IP(验证我们当前虚拟机是否能上网,IP是否能成功配置。),然后配置Host文件(添加集群对应ip与节点名)。(还有要改桥接模式(B):直接连接物理网络。现在用的是虚拟机,但是把它当成物理机一样,也给插上网线,连接到本地的网络中去。当然,如果选择这种方式的前提是要保证局域网的网段和之前规划的IP是一致的,必须都是192.168.1.* 这种网段,这样的目的就是宿主机和我们的虚拟机能够直接通信,那就意味这主机能联网,我们的虚拟机就能联网。)

    (1)、固定IP设置:首先配置DNS,对/etc/resolv.conf 文件进行修改或查看

    (2)、配置固定IP地址:修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件

    (3)、重启网络:/etc/init.d/network restart或service network restart

    修改成功:

    (4)、ping通网络。

    (5)、修改host文件

    (6)、重启服务器

  7. 下载Hadoop安装包,然后进入Hadoop集群的搭建工作。

    把jdk和Hadoop包下载或上传到/home/hadoop/Downloads/下

    (1)、jdk的安装与配置:

    一般将安装的程序存到/usr目录下,所以创建Java目录:mkdir /usr/java

    然后更改权限chown hadoop:hadoop /usr/java/

    然后查看ll /usr

    然后更改系统的环境变量vim /etc/profile

    然后添加脚本# set java environment

    export JAVA_HOME=/usr/java/jdk1.8.0_121

    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

    然后将解压好的jdk移到/usr/java目录中:cp -r jdk1.8.0_121 /usr/java/

    然后查看版本:java -version

    (2)、Hadoop的安装与配置:

    与Jdk配置类似,--/usr目录下,创建hadoop目录

    mkdir /usr/hadoop

    --拷贝解压后的hadoop安装包

    cp -r hadoop-2.6.4 /usr/hadoop

    --赋权给Hadoop用户

    chown hadoop:hadoop /usr/hadoop/

    --查看确认

    ll /usr/

    对几个关键的文件进行配置:

    转到目录:cd /usr/hadoop/hadoop-2.6.4/

    配置第一个文件vim etc/hadoop/core-site.xml

<configuration>
<!– HDFS file path –>
<!– HDFS默认的连接地址 –>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.50:9000</value>
</property>
<!– 流文件的配置大小,默认是4K太小了,这里将这个值改的大 –>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!–生成临时结果的配置路径,需要创建目录tmp–>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/hadoop-2.6.4/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
</configuration>

xxxxxxxxxx

19

1

<configuration>

2

<!– HDFS file path –>

3

<!– HDFS默认的连接地址 –>

4

<property>

5

 <name>fs.defaultFS</name>

6

 <value>hdfs://192.168.1.50:9000</value>

7

 </property>

8

<!– 流文件的配置大小,默认是4K太小了,这里将这个值改的大 –>

9

 <property>

10

 <name>io.file.buffer.size</name>

11

 <value>131072</value>

12

 </property>

13

<!–生成临时结果的配置路径,需要创建目录tmp–>

14

 <property>

15

 <name>hadoop.tmp.dir</name>

16

 <value>file:/usr/hadoop/hadoop-2.6.4/tmp</value>

17

 <description>Abasefor other temporary directories.</description>

18

 </property>

19

</configuration>

创建目录mkdir tmp

配置第二个文件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>

?x

1

<property>

2

 <name>dfs.namenode.secondary.http-address</name>

3

 <value>192.168.1.50:9001</value>

4

 </property>

5

?

6

 <property>

7

 <name>dfs.namenode.name.dir</name>

8

 <value>file:/usr/hadoop/hadoop-2.6.4/dfs/name</value>

9

 </property>

10

?

11

 <property>

12

 <name>dfs.datanode.data.dir</name>

13

 <value>file:/usr/hadoop/hadoop-2.6.4/dfs/data</value>

14

 </property>

15

?

16

 <property>

17

 <name>dfs.replication</name>

18

 <value>1</value>

19

 </property>

20

?

21

 <property>

22

 <name>dfs.webhdfs.enabled</name>

23

 <value>true</value>

24

 </property>

文件解释:

创建目录:mkdir dfs

mkdir dfs/name

mkdir dfs/data

配置第三个文件:cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml因为在这里Hadoop已经提供了一个模板,直复制创建,然后修改此文件:vim etc/hadoop/mapred-site.xml

<!– 第一个就是制定当前Hadoop的并行运行计算架构,这里为yarn,第二个就是Job运行的历史记录Server,第三个就是历史运行记录的Web服务器。 –>
<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>

xxxxxxxxxx

15

1

<!– 第一个就是制定当前Hadoop的并行运行计算架构,这里为yarn,第二个就是Job运行的历史记录Server,第三个就是历史运行记录的Web服务器。 –>

2

<configuration>

3

 <property>

4

 <name>mapreduce.framework.name</name>

5

 <value>yarn</value>

6

 </property>

7

 <property>

8

 <name>mapreduce.jobhistory.address</name>

9

 <value>192.168.1.50:10020</value>

10

 </property>

11

 <property>

12

 <name>mapreduce.jobhistory.webapp.address</name>

13

 <value>192.168.1.50:19888</value>

14

 </property>

15

</configuration>

配置第四个文件: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>

1

<!–后续的调优会一直围绕这个文件进行–>

2

<property>

3

 <name>yarn.nodemanager.aux-services</name>

4

 <value>mapreduce_shuffle</value>

5

 </property>

6

 <property>

7

 <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

8

 <value>org.apache.hadoop.mapred.ShuffleHandler</value>

9

 </property>

10

 <property>

11

 <name>yarn.resourcemanager.address</name>

12

 <value>192.168.1.50:8032</value>

13

 </property>

14

 <property>

15

 <name>yarn.resourcemanager.scheduler.address</name>

16

 <value>192.168.1.50:8030</value>

17

 </property>

18

 <property>

19

 <name>yarn.resourcemanager.resource-tracker.address</name>

20

 <value>192.168.1.50:8035</value>

21

 </property>

22

 <property>

23

 <name>yarn.resourcemanager.admin.address</name>

24

 <value>192.168.1.50:8033</value>

25

 </property>

26

 <property>

27

 <name>yarn.resourcemanager.webapp.address</name>

28

 <value>192.168.1.50:8088</value>

29

 </property>

配置Hadoop的jdk路径,不指定是不能运行的,hadoop-env.sh 和 yarn-env.sh 在开头添加如下java环境变量:export JAVA_HOME=/usr/java/jdk1.8.0_73

vim etc/hadoop/hadoop-env.sh

vim etc/hadoop/yarn-env.sh

因为所有Hadoop用户都有执行权限,所以:

chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/

  1. Hadoop配置。Hadoop环境的配置分为两步:1、Java环境配置;2、Hadoop配置。因为Hadoop就是Java语言编写的,所以一定要先配置好Java环境。

    (1)Java环境的配置

    见第7步

    (2)Hadoop环境的配置

    见第7步

  2. 然后格式化文件,来启动这个单节点的Hadoop集群

    (1)Hadoop 分布式存储系统的HDFS格式化,这个只能在初始化系统的时候用一次,一次就好了,要不执行一次数据就丢失一次。bin/hadoop namenode -format运行结果:

    (2)Hadoop 集群进行启动验证:启动HDFS:sbin/start-dfs.sh然后查看jps进程:

    然后,查看状态bin/hadoop dfsadmin -report

    或者直接打开浏览器直接打开浏览器查看:http://192.168.10.87:50070/dfshealth.html#tab-overview

    (3)Hadoop 集群启动查看

    启动Hadoop集群,然后查看其状态sbin/start-yarn.sh

    用浏览器打开:http://192.168.10.87:8088/cluster

Hadoop集群完全分布式坏境搭建

上一部分是单节点的安装,工作已经完成了一半,下面进行的是完全分布式的环境搭建。

为了减少配置时间,我直接对上一节点进行克隆

节点基本信息:

总共需要5台服务器来使用,四台用来搭建Hadoop集群使用,另外一台(可选)作为MySQL等外围管理Hadoop集群来使用。在开发的时候一般也是直接通过连接外围的这台机器来管理Hadoop整个集群

工作大概流程:

  1. 首先需要在VMWare中将之前创建的单实例的计算机进行克隆。

    注意:在克隆过程中一定要选择克隆一个完整的而不是创建链接克隆,也一定不要选择现有的快照。

  2. 配置各个Slave节点的机器信息。

    (1)主节点Master的CUP处理器设置成多路多核,这里设成4,其他节点设成1

    (2)手动更改各个从节点的计算机名和Hosts文件(必须!)vim /etc/sysconfig/network

    vim /etc/hosts

    配置完之后,重启完各个机器之后,确保各个节点之间可以ping 通(重点!!!)

  3. 配置SSH无密码配置。

    (1-1)、进行sshd的配置文件的修改,去掉默认注释,开启SSH验证功能(以root用户进行操作)vim /etc/ssh/sshd_config

    将上面的这三行数据的注释“#”去掉进行,保存。这里记住了!所有的机器都要这么依次进行设置。RSAAuthentication是指开启SSH验证,PubkeyAuthetication是指可以通过公钥进行验证,AuthorizedkeysFile则指的的是公钥存放的位置。

    (1-2)、重启该服务:/sbin/service sshd restart

    (1-3)、用本机验证一下:ssh localhost这个时候会让你输入密码,是因为没有生成密钥,下面进行设置

    (2-1)、加工生成证书公私钥,分发到各个服务器(以Hadoop用户操作)在Master节点上生成Hadoop用户的公钥,然后将这个公钥分发给各个slave节点,然后这样在Master机器上就可以用Hadoop无密码登录到各个salve机器上面了

    (2-2)、ssh-keygen -t rsa -P ‘‘

    红框勾出的路径就是公钥和私钥生成的默认路径

    (2-3)、下一步就是将这个公钥复制到各个slave节点中去,远程文件的复制:scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/复制的公钥文件存在默认的路径“/home/hadoop/.ssh”scp ~/.ssh/id_rsa.pub [email protected]:~/

    (2-4)、登录salve01的机器将刚才生成的公钥加入的本地的权限验证组里面去cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    (2-5)、回到Master机器上面进行,ssh验证SSH <远程IP && 域名>在master机器上登录slave01机器上实验下,看是否还需要进行密码输入ssh slave01.hadoop从Master机器上面无密码的登录到Slave01机器上面,那么说明刚才的配置生效了。

    (2-6)、参照上面的步骤将各个Slave节点配置完成

    (2-7)、注意:在Master生成密钥只需要生成一次就可以了,不要再次生成!因为每次生成以为着所有的节点都需要重新配置。

    (2-8)、参照上面的步骤将各个Slave节点SSH到Master机器(保证各个Slave节点能够无密码登录Master机器,各个Slave子节点干完Master分配的任务之后,需要有权限反馈至Master)

    注意:上面的步骤要一定完成验证,要不以后的Hadoop操作会很出现各种诡异的问题!!

    (3-1)、配置Hadoop集群配置

    将这个单节点的配置成一个真正的分布式集群,充分利用我们刚才搭建的几台Server进行性能的最大发挥

    (3-2)、首先进行slaves文件的配置,指定该集群的各个Slave节点的位置(以hadoop用户进行操作)(只需要在Master的机器上面进行就可以了)vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves将各个Slave的IP或者机器名写入

    (3-3)、更改hdfs-site.xml文件中的dfs.replication属性值为3(因为有另外3台虚拟机,记住:只能是奇数!)vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml

    (这里需要注意的是,所有的机器都要这样配置。)

    (4-1)、启动Hadoop集群,验证是否成功

    先来执行一个HDFS格式的命令(改成完全分布式的集群,所以这里需要重新格式)bin/hadoop namenode -format

    (4-2)、验证一下整个集群的HDFS是否正常可用,启动整个集群的HDFS,在Master机器上面,用hadoop用户操作start-dfs.sh

    通过浏览器来查看整个集群的HDFS状态,地址为:http://192.168.1.50:50070/dfshealth.html#tab-overview

    (4-3)、验证一下整个集群的YARN分布式计算框架是否正常可用,启动Yarnstart-yarn.sh通过浏览器来查看整个集群的Hadoop集群状态,地址为:http://192.168.1.50:8088/

    可见当前的Hadoop集群已经存在四个正在运行的节点。

时间: 2024-08-25 10:37:48

Hadoop集群大数据平台搭建的相关文章

Hadoop集群间数据拷贝

有时候,我们需要做Hadoop集群迁移时,要把大量存储在Hadoop集群上的数据也一并迁移过去.有2种方法可以使用: 1. old hadoop cluster--->old local disks---->transmission---->new local disks----->new hadoop cluster 2. old hadoop cluster---->mapreduce--->new hadoop cluster 很显然第一种方法很不靠谱,我们采用第

大数据平台搭建笔记一:hadoop

0.机器准备 准备4台测试笔记本用于做服务器(装上CentOS6.5_x86_64系统)作部署集群. 配置每台机器上的/etc/hosts文件,例如: [[email protected] ~]$ sudo vi /etc/hosts 192.168.110.1  master 192.168.110.2   slave1 192.168.110.3   slave2 192.168.110.4   slave3 1.ssh免密码登录设置 [[email protected] ~]$ ssh -

大数据平台搭建 - cdh5.11.1 - oozie安装

一.简介 oozie是hadoop平台开源的工作流调度引擎,用来管理hadoop作业,属于web应用程序,由oozie server 和oozie client构成. oozie server运行与tomcat容器中 oozie的工作流必须是一个有向无环图,当用户需要执行多个关联的MapReduce作业时,只需要把作业写进workflow.xml中,再提交到oozie,oozie便可以托管服务,按照预先的配置有序执行任务. 二.安装 1.下载编译好的cdh版本 http://archive.cl

Pentaho Work with Big Data(七)—— 从Hadoop集群抽取数据

一.把数据从HDFS抽取到RDBMS 1. 从下面的地址下载示例文件. http://wiki.pentaho.com/download/attachments/23530622/weblogs_aggregate.txt.zip?version=1&modificationDate=1327067858000 2. 用下面的命令把解压缩后的weblogs_aggregate.txt文件放到HDFS的/user/grid/aggregate_mr/目录下. hadoop fs -put webl

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker 上篇介绍了快速上手Docker部分,下面接着介绍搭建Hadoop集群部分. 六.搭建Hadoop伪分布模式 我们先用前面创建的这个容器来搭建Hadoop伪分布模式做测试,测试成功后再搭建完全分布式集群. 1.SSH这个centos容器可以看做是一个非常精简的系统,很多功能没有,需要自己安装.Hadoop需要SSH,但容器没有自带,需要我们安装.①安装SSH # yum -y ins

Cloudera Manager大数据平台搭建

在企业里快速搭建大数据平台除了Ambria外还可以用Cloudera Manager,这两种工具相对于纯手工搭建确实便捷很多,但是有利也有弊,相对于新手来说就不便于掌握内部原理,不好排错等,而纯手工搭建,出错较多,不容易成功. 一. 规划:192.168.3.201 server/agent mysql 192.168.3.202 agent namenode 192.168.3.203 agent namenode(备) resourcemanager192.168.3.204 agent r

小型大数据平台搭建

目录 前言 一. 搭建环境 1.1集群规划 二. 集群的相关配置 2.1 新建用户hadoop 2.2 更改主机名 2.3 主机和IP做相关映射 2.4 SSH免密码登录 2.5 时间配置 2.6 整体安装目录安排 三. Hadoop HA环境搭建 3.1 JDK配置 3.2 安装配置Zookeeper集群 3.3 安装配置hadoop HA集群 四. Hive+MySQL 的安装与配置 4.1 Hive的安装部署 4.2 MySQL数据库安装配置 4.3 修改hive-site.xml 4.4

大数据平台搭建:Hadoop-3.1.3+Hive-3.1.2+HBase-2.2.3+Zookeeper-3.5.7+Kafka_2.11-2.4.0+Spark-2.4.5

1.框架选型 hadoop-3.1.3 hive-3.1.2 zookeeper-3.5.7 hbase-2.2.3 kafka_2.11-2.4.0 spark-2.4.5-bin-hadoop2.7 2.安装前准备 1.关闭防火墙 2.安装 JDK 3.安装 Scala 4.配置ssh 免密 5.配置 IP 和 主机名映射 6.Mysql 安装 3.安装 3.1 Hadoop 安装 1.hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_1

小象学院Hadoop 2.X大数据平台V3

课时1:培训须知第1 章 : Hadoop生态系统以及版本演化 课时2:课程视频 66:53 课时3:学习资料 课时4:第一讲 课后作业第2 章 : HDFS 2.0应用场景.原理.基本架构及使用方法 课时5:课程视频1-HDFS 2.0应用场景.原理.基本架构及使用方法 59:11 课时6:课程视频2-Hadoop 2.0理论基础-安装部署方法1 50:05 课时7:课程视频2-Hadoop 2.0理论基础-安装部署方法2 50:05 课时8:课程视频2-Hadoop 2.0 上机实践(部署单