【Big Data】HADOOP集群的配置(一)

                       Hadoop集群的配置(一)

1.    实验准备


1.1    目的:

在虚拟机环境下,让同学们学会从零开始配置Hadoop-2.2集群,并尝试在真实环境下搭建集群。

1.2    主要内容:

物理机器总共4台,想配置基于物理机的Hadoop集群中包括4个节点: 1 个 Master, 3个 Salve ,节点之间局域网连接,可以相互 ping通。IP的分布如表1所示。

            表1        4个节点的IP地址分配及角色

Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

用到的所有文件                        

1.4 用户信息(所有节点一样)

回到顶部

2.搭建虚拟集群环境



安装完VMWare10后,解压CentOS到指定文件夹下,打开VMWare10,点击菜单栏“文件”-->“打开”,选择CentOS文件,如图。

 

右击CentOS选择属性,弹出设置窗口。里面是虚拟系统的主要硬件参数信息,读者可以根据自己机器性能配置,这里选默认。

 

2.1三种连接方式

 VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,就应该先了解一下这三种工作模式。主机上安装VMware Workstation或VMware Server的时候,默认会安装3块虚拟网卡,这3块虚拟网卡的名称分别为VMnet0、VMnet1、VMnet8,其中VMnet0的网络属性为“物 理网卡”,VMnet1与VMnet8的网络属性为“虚拟网卡”。在默认情况下,VMnet1虚拟网卡的定义是“仅主机虚拟网络”,VMnet8虚拟网卡的定义是“NAT网络”,同时,主机物理网卡被定义为“桥接网络”,主机物理网卡也可以称为VMnet0

 大家在安装完虚拟机后,默认安装了两个虚拟网卡,VMnet1和 VMnet8。其中VMnet1是hostonly网卡,用于host方式连接网络的。VMnet8是NAT网卡,用 于NAT方式连接网络的。它们的IP地址默认是的,如果要用虚拟机做实验的话,最好将VMnet1到VMnet8的IP地址改掉。习惯上把 VMware虚拟网卡使用的网段“固定”,即设置为静态ip。使用如下原则:VMnet1对应的网段是192.168.10.0,VMnet8对应的网段是 192.168.80.0

1.bridged(桥接模式)

  在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。如果想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。使用这种方式很简单,前提是要得到1个以上的地址。对于想进行种种网络实验的朋友不太适合,因为无法对虚拟机的网络进行控制,它直接就出去了。

 

使用桥接方式,A,A1,A2,B可互访。

2.host-only(仅主机模式)

  在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都可以由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配。如果想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。

    

使用Host方式,A,A1,A2可以互访,但A1,A2不能访问B,也不能被B访问。

3.NAT(网络地址转换模式)

  使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统中安全的访问互联网。NAT模式下虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。如果想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议采用NAT模式。提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。

 

使用NAT方式,A1,A2可以访问B,但B不可以访问A1,A2。但A,A1,A2可以互访。

全局网络拓扑图:

 

思考:真实部署要根据网络环境的不同而配置不同的连接方式,那么请思考,在6601机房搭建真实集群对应哪种连接方式?

2.2  host-only连接步骤

在学习VMWare虚拟网络时,我们建议选择host-only方式。第一,如果你的电脑是笔记本,从A移到B网络环境发生变化后,只有host-only方式不受影响,其他方式必须重新设置虚拟交换机配置。第二,将真实环境和虚拟环境隔离开,保证了虚拟环境的安全。

按绿色箭头启动虚拟机,角色选择other,输入root角色名,这里的密码是hadoop,具体密码由CentOS安装时设置,而我们使用的是安装好的。

 

由于选择的是host-only连接方式,VMnet1必须打开,然后设置ipv4。

 

 

由于host-only方式不能连接外网,所以DNS不需配置,其他方式想要访问外网必须配置。

在Linux桌面环境中右击电脑图标,选中“EditConnection”进行如下配置:

 

 

打开终端,查看配置情况。

 

检查与Windows主机的通信情况。

1.Windows-->Linux

 

2.Linux-->Winodws

 

思考:访问外部主机失败,分析为什么?

2.3 使用PieTTY连接Linux

    填写连接目的的IP地址,端口是SSH模式的访问端口22,点击open,输入角色和密码登录。

 

提示“潜在安全缺口”,由于首次使用PieTTy登陆Linux[微软用户1] 虚拟机,PieTTY缓存里面并没有该Linux虚拟机的rsa2公钥信息,因此会提示是否信任次机器,我们选择是。

 

 

 

其他常用登录工具还有putty,XShell等,PieTTY相比之下操作简单功能丰富。

2.3 新建用户

使用root登陆后,创建Hadoop用户,在hadoopGroup组里。

1.创建hadoopGroup组

添加用户时,可以将用户添加到现有的用户组,或者创建一个新的用户组。可以在/etc/group文件中看到所有的用户组信息。默认的用户组通常用来管理系统用户,不建议将普通用户添加到这些用户组。使用groupadd命令创建用户组的语法为:

groupadd [-g gid [-o]] [-r] [-f] groupname

每个选项的含义如下:

 

如果不指定选项,系统将使用默认值。创建一个 hadoopGroup用户组:

$ groupadd hadoopGroup
2. 添加Hadoop用户

添加用户可以使用useradd命令,语法为:

useradd -d homedir -g groupname -m -s shell -u userid accountname

每个选项的含义如下:

指定用户主目录/home/hadoop用户组hadoopGroup。

 

用户被创建后,可以使用passwd命令来设置密码,如:

$ passwd hadoop
Changing password for user hadoop.
New Linux password:******
Retype new UNIX password:******
passwd: all authentication tokens updated successfully.

2.4 安装jdk,hadoop

1.使用winscp传输文件

在root用户下,执行命令rm -rf  /usr/local/*

删除目录下所有内容(当前内容无用)使用winscp把jdk文件从windows复制到/usr/local目录下。点击新建一个会话。

 

输入用户和密码:

 

 

 

 

2.解压文件

解压命令tar -zvxf jdk-7u67-linux-x64.tar.gz到当前目录。

 

 更改文件名为jdk1.7。

同样,解压命令tar -zvxf jdk-7u67-linux-x64.tar.gz到当前目录,并通过命令

 mv hadoop-2.2.0 /home/hadoop/hadoop2.2 移动到Hadoop用户的主目录下。

 

3.目录规划

Hadoop程序存放目录为/home/hadoop/hadoop2.2,相关的数据目录,包括日志、存储等指定为/home/hadoop/hadoop2.2。将程序和数据目录分开,可以更加方便的进行配置的同步。

具体目录的准备与配置如下所示:

l  在每个节点上创建程序存储目录/home/hadoop/hadoop2.2,用来存放Hadoop程序文件。

l  在每个节点上创建数据存储目录/home/hadoop/hadoop2.2/hdfs,用来存放集群数据。

l  在主节点node上创建目录/home/hadoop/hadoop2.2/hdfs/name,用来存放文件系统元数据。

l  在每个从节点上创建目录/home/hadoop/hadoop2.2/hdfs/data,用来存放真正的数据。

l  所有节点上的日志目录为/home/hadoop/hadoop2.2/logs。

l  所有节点上的临时目录为/home/hadoop/hadoop2.2/tmp。

执行命令mkdir -p  /home/hadoop/hadoop2.2/hdfs,为还没有的目录创建,后面以此类推。

给hadoopGroup组赋予权限,凡是属于hadoopGroup组的用户都有权利使用hadoop2.2,方便多用户操作。首先,把Hadoop2.2加入到hadoopGroup组: 

 chgrp -R hadoopGroup hadoop2.2

给这个组赋予权限:

chmod -R g=rwx hadoop2.2

4.导入JDK环境变量

执行cd /etc命令后执行vi profile,在行末尾添加:

export JAVA_HOME=/usr/local/jdk1.7

export CLASSPATH=.:JAVAHOME/lib/tools.jar:JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar

export PATH=.:JAVAHOME/bin:JAVAHOME/bin:PATH


 执行source profile,使其配置立即生效。

 执行java –version,查看是否安装成功。

 

5.导入Hadoop环境变量

同上面一样,修改profile。

export  HADOOP_HOME=/home/hadoop/hadoop2.2

export PATH=.:HADOOPHOME/sbin:HADOOPHOME/sbin:HADOOP_HOME/bin:JAVAHOME/bin:JAVAHOME/bin:PATH

export HADOOP_LOG_DIR=/home/hadoop/hadoop2.2/logs

export YARN_LOG_DIR=$HADOOP_LOG_DIR

 

执行hadoop命令,查看有没有成功。

2.5.修改主机名

1.修改当前会话中的主机名,执行命令hostname node。

 

但是这种配置只对当前状态有效,一旦重新启动虚拟机,主机名未变。

2.修改配置文件中的主机名,执行命令vi /etc/sysconfig/network。

 

重启生效,由于第一步已经在当前会话中配置了hostname,所以不用重启。

3.绑定hostname与IP

执行vi/etc/hosts,增加内容如下:

192.168.10.100         node

192.168.10.101         node1

192.168.10.102         node2

192.168.10.103         node3

Ping node,检验是否修改成功?

 

2.6 关闭防火墙

如果不关闭防火墙,有以下几种情况出现:

第一:hdfs的Web管理页面,打不开该节点的文件浏览页面。

第二:后台运行脚本(HIVE的),会出现莫名其妙的假死状态。

第三:在删除和增加节点的时候,会让数据迁移处理时间更长,甚至不能正常完成相关操作。

第四:不管你做任何操作,都是会运行不正常,而且很不顺手。

执行命令service iptables stop

验证:  service iptables status

 

执行上面操作可以关闭防火墙,但重启后还会继续运行,所以还要关闭防火墙的自动运行。

执行命令 chkconfig iptables off

验证:  chkconfig --list |grep iptables

 

2.7 修改hadoop2.2配置文件

      Hadoop没有使用java.util.Properties管理配置文件,也没有使用Apache Jakarta Commons Configuration管理配置文件,而是使用了一套独有的配置文件管理系统,并提供自己的API,即使org.apache.hadoop.conf.Configuration处理配置信息,大家也可以通过eclipse工具分析下源码,并利用这些api修改配置文件。

由于Hadoop集群中每个机器上面的配置基本相同,所以先在namenode上面进行配置部署,然后再复制到其他节点。 

 

1. 配置 ~/hadoop2.2/etc/hadoop下的hadoop-env.sh、yarn-env.sh、mapred-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/local/jdk1.7/)

 

2. 配置 ~/hadoop2.2/etc/hadoop/slaves(这个文件里面保存所有slave节点)

                

3. 配置 ~/hadoop-2.2.0/etc/hadoop/core-site.xml

<configuration>

  

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node:9000/</value>

        <description> 设定 namenode 的 主机名 及 端口 </description>

    </property>

  

    <property>

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

        <value>/home/hadoop/tmp/hadoop-${user.name}</value>

        <description> 存放临时文件的目录 </description>

    </property> 

  

    <property>

        <name>hadoop.proxyuser.hadoop.hosts</name>

        <value>*</value>

    </property>

  

    <property>

        <name>hadoop.proxyuser.hadoop.groups</name>

        <value>*</value>

    </property>

  

</configuration>

 http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/core-default.xml

4. 配置 ~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

<configuration> 

  

    <property> 

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

        <value>node:50070</value> 

        <description> NameNode 通过当前参数 获得 fsimage 和 edits </description> 

    </property>

  

    <property> 

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

        <value>node1:50090</value> 

        <description> SecondNameNode 通过当前参数 获得最新的 fsimage </description> 

    </property>

  

    <property>

        <name>dfs.replication</name>

        <value>3</value>

        <description> 设定 HDFS 存储文件的副本个数,默认为3 </description>

    </property>

  

    <property> 

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

        <value>file:///home/hadoop/hadoop2.2/hdfs/name</value> 

        <description> namenode 用来持续存放命名空间和交换日志的本地文件系统路径 </description> 

    </property> 

  

    <property> 

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

        <value>file:///home/hadoop/hadoop2.2/hdfs/data</value> 

        <description> DataNode 在本地存放块文件的目录列表,用逗号分隔 </description> 

    </property> 

  

    <property> 

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

        <value>file:///home/hadoop/hadoop2.2/hdfs/namesecondary</value> 

        <description> 设置 secondary 存放 临时镜像 的本地文件系统路径,如果这是一个用逗号分隔的文件列表,则镜像将会冗余复制到所有目录,只对 secondary 有效 </description> 

    </property>

  

    <property>

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

        <value>true</value>

    </property>

  

    <property>

        <name>dfs.stream-buffer-size</name>

        <value>131072</value>

        <description> 默认是4KB,作为hadoop缓冲区,用于hadoop读hdfs的文件和写

hdfs的文件,还有map的输出都用到了这个缓冲区容量,对于现在的硬件很保守,可以设置为128k

(131072),甚至是1M(太大了map和reduce任务可能会内存溢出) </description>

    </property>

  

    <property> 

        <name>dfs.namenode.checkpoint.period</name> 

        <value>3600</value> 

        <description> 两次 checkpoints 之间的间隔,单位为秒,只对 secondary 有效 </description> 

    </property>

  

</configuration>

 http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

5. 配置 ~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

<configuration> 

         <property>

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

        <value>yarn</value>

    </property>

 <property>

        <name>mapreduce.jobtracker.address</name>

        <value>hdfs://trucy:9001</value>

    </property>

    <property>

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

        <value>node:10020</value>

        <description>

MapReduce JobHistory Server host:port, default port is 10020.</description>

    </property>

  

    <property>

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

        <value>node:19888</value>

<description>MapReduce JobHistory Server Web UI host:port, default port is 19888.</description>

    </property>

  

</configuration>

 http://hadoop.apache.org/docs/r2.2.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

6. 配置 ~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

<configuration>

  

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node</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>

  

    <property>

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

        <value>node:8032</value>

    </property>

  

    <property>

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

        <value>node:8030</value>

    </property>

  

    <property>

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

        <value>node:8031</value>

    </property>

  

    <property>

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

        <value>node:8033</value>

    </property>

  

    <property>

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

        <value>node:8088</value>

    </property>

  

</configuration>

时间: 2024-09-24 01:09:49

【Big Data】HADOOP集群的配置(一)的相关文章

【Big Data】HADOOP集群的配置(二)

Hadoop集群的配置(二) 2.8 节点之间的免密码通信 1.什么是SSH SSH是Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定:SSH为建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. 从客户端来看,SSH提供两种级别的安全验证. 第一种级别  基于口令的安全验证 只要知道自己的帐号和口令,就可以登录到远程主机.所有

《Hadoop集群与安全》一2.1 在Hadoop集群中配置操作系统

2.1 在Hadoop集群中配置操作系统 正如之前所提到的,Hadoop能够运行在几乎所有Linux版本的系统上.本章随后的讲解会将重点放在CentOS 6.x上,CentOS和Red Hat是Hadoop相关产品安装最为普及的平台.要掌握这些步骤并不难,对于Debian系统所有与配置Hadoop组件的步骤都是一致的,因此读者可以根据自身需求替换对应的包管理器. 2.1.1 选择和设置文件系统 现代Linux系统支持多种不同的文件系统:如EXT3.EXT4.XFS.BTRFS,等等.针对特定的工

【Hadoop】 分布式Hadoop集群安装配置

第一次安装hadoop 集群,记录其安装过程! 1 前期准备,配置所有的机器的/etc/hosts 文件 # cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1       rac localhost ::1             rac3 localhost 10.250.7.225  

完全分布模式hadoop集群安装配置之二 添加新节点组成分布式集群

前文说到如何搭建集群中第一个节点,这篇将说到如何向集群添加节点.这篇是基于前文的,没有看过前文的可以参考此链接:http://www.cnblogs.com/mikelij/archive/2012/03/06/2380937.html   2 向集群添加节点     前文已经建立了一个节点的hadoop集群.现在要做的添加节点.安装JDK, 创建hadoop用户等见前文.这里就不重复了.   2.1 检查主机名,修改/etc/hostname, /etc/hosts   新节点需要在这个集群里

完全分布模式hadoop集群安装配置之一安装第一个节点

  本系列文章讲述搭建完全分布模式hadoop的安装配置过程,还将讲述完全分布式模式的一些基本操作.准备采用先单机调通再加入节点的方式.本文只讲述单节点的安装和配置.   1. Namenode和JobTracker的安装       这是完全分布模式集群的第一台,也是很关键的一台.采用VMWARE虚拟的Ubuntu Linux 11.10  server版.安装Linux非本文重点就不说了. 默认建立了一个用户叫abc, 其有sudo权限.root的口令是随机的一个口令,只能用sudo命令暂时

在Hadoop集群环境中为MySQL安装配置Sqoop的教程_Mysql

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中. Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS. 一.安装sqoop1.下载sqoop压缩包,并解压 压缩包分别是:sqoop-1.2.0-CDH3B4.tar.gz,hadoop-0.20.2-CD

《Hadoop实战第2版》——2.4节安装和配置Hadoop集群

2.4 安装和配置Hadoop集群 2.4.1 网络拓扑 通常来说,一个Hadoop的集群体系结构由两层网络拓扑组成,如图2-3所示.结合实际应用来看,每个机架中会有30~40台机器,这些机器共享一个1GB带宽的网络交换机.在所有的机架之上还有一个核心交换机或路由器,通常来说其网络交换能力为1GB或更高.可以很明显地看出,同一个机架中机器节点之间的带宽资源肯定要比不同机架中机器节点间丰富.这也是Hadoop随后设计数据读写分发策略要考虑的一个重要因素. 2.4.2 定义集群拓扑 在实际应用中,为

树莓派上搭建 Hadoop 集群环境的方法

最近在学习 Hadoop,正好前几天又在玩儿树莓派,查阅了一些文档,感觉在树莓派上搭建 Hadoop 集群是可行的,当然了,别对性能抱太大的希望,主要是感受一下分布式计算的魅力.在这个过程中参考了很多文档,先列在这里,基本上这些文档都非常详细了,大家可以直接参考. How to build 7 node Raspberry Pi Hadoop cluster Hadoop集群安装配置教程 Hadoop2.6.0 Ubuntu/CentOS 实验软硬件清单 以下是我的实验环境所用的硬件和软件版本清

hadoop集群搭建详述

1.集群搭建策略 分析: 我手上只有3台电脑,两台华硕笔记本i7.i3的处理器,一台台式机Pentium4处理器.为了更好的测试zookeeper的功能, 我们总共需要6台ubuntu(Ubuntu 14.04.3 LTS)的主机.以下是我的主机分布策略: i7:开启4台ubuntu虚拟机分别是 虚拟机名 内存 硬盘 网络连接 master 1G 20G 桥接 master2 1G 20G 桥接 rm 512M 20G 桥接 slave3 1G 20G 桥接 i3: 安装ubuntu系统 ,作为