Hadoop分布式部署

2022-04-18 13:46:48 浏览数 (1)

Hadoop分布式环境部署

本篇预期收益:

1:Hadoop分布式环境搭建部署

2:Hadoop基本配置文件的了解

3:集群管理工具clustershell的了解与使用

4:Linux免密登录配置

5:hadoop启动时异常信息的处理

使用JAR包进行安装部署

一:准备硬件( Linux 操作系统 )

一台物理机 window7 , 内存8GB , 硬盘1TB

VMware12 Pro创建了三个虚拟机

各虚拟机之前配置免密登录

对于Hadoop Master(ResourceManager/NameNode)节点硬件配置要高一些

安装一台虚拟机之后, 在克隆出来两个(注意:在克隆虚拟机的时候,最好是递归以此克隆,比如:我们将hadoop01克隆出来hadoop02, 那么在克隆hadoop03的时候 , 要在hadoop02基础上进行克隆, 因为涉及到在克隆之后 , 自动生成Mac地址的问题.如果我们在hadoop01的基础上进行克隆hadoop03,那么hadoop03的mac地址就会和hadoop02的一样.这样会导致Mac地址冲突问题)

克隆之后修改项 :

  1. 1.1: 修改hostname

vim/etc/sysconfig/network

修改hostname 为hadoop01

重启Linux : 命令reboot

  1. 1.2: IP设置

查看Mac地址

Vim/etc/udev/rules.d/70-persistent-net.rules

删除eth0 或者删除eth0之后将eth1修改为eth0

修改network-scripts

Vim /etc/sysconfig/network-scripts

将DEVICE设置为etho1

将IPADDR设置为我们需要的IP地址

我这里Hadoop三台机器的IP分别为192.168.17.140/141/142 重启网卡

servicenetwork restart

查看IP –ifconfig

然后将hadoop02,hadoop03按照上面的步骤进行设置

  1. 1.3:配置免密登录(各集群节点间,互相操作对方时,只需要输入对方ip或者host即可,不需要输入密码,即:免密登录)

配置免密登录步骤:

1):ssh-keygen –t rsa

  • 连续敲三个回车
  • 查看 ls /root/.ssh 有两个秘钥文件

4):将本机的秘钥文件,分别复制到其它两台中(这里可以将shell窗口设置为垂直排序,然后将命令行作用于所有窗口)

5):ssh-copy-id –i /root/.ssh/id_rsa.pub 192.168.17.140

ssh-copy-id –i /root/.ssh/id_rsa.pub 192.168.17.140

ssh-copy-id –i /root/.ssh/id_rsa.pub 192.168.17.140

  • 修改hosts文件,通过hostname进行登录

命令 :vim /etc/hosts

每台机器的hosts文件都设置如图:

至此:免密登录设置完成

集群管理工具:clustershell

通过 yuminstall clustershell 安装 clustershell 只需要在一台机器上进行安装即可,这样所有的文件都通过这台机器分发到其它机器中。

安装完clustershell之后, 需要按照它的规则创建链接到其它服务的地址是多少

clustershell的配置文件在/etc/clustershell目录下,其中的groups是最常用的,我们只需要配置这个即可:

vim /etc/clushtershell/groups

配置为:

hadoop: hadoop[01-03]

这样我们就把hadoop01 hadoop02 hadoop03 都配置在了clustershell groups里面

或者hadoop: hadoop[01,02,03]

接下来验证一下:

在hadoop01 输入命令 clush –ghadoop echo $JAVA_HOME

我们可以看到所有机器的javahome配置信息,如图:

二:准备软件安装包,并安装基础软件(JDK)

JDK1.7和 Hadoop安装包

Hadoop安装包下载:

下载地址:http://apache.fayea.com/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

通过linux命令下载:

首先进入到/opt/hadoop 目录下,然后

wget http://apache.fayea.com/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

将hadoop压缩包下载到 /opt/hadoop目录下

解压缩hadoop-2.6.5.tar.gz

tar–zxvf hadoop-2.6.5.tar.gz

解压之后的目录结果为:

Hadoop文件结构说明:

bin:Hadoop最基本的管理脚本和使用脚本所在目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用hadoop

etc:hadoop配置文件所在目录,包括core-sit.xml/ hdfs-site.xml ,mapred-site.xml 等从hadoop1.0继承而来的配置文件和yarn-sit.xml 等 hadoop2.0新增的配置文件

include:对外提供的编程库头文件(具体动态库和静态库在lib目录中)这些头文件均是C 定义的,通常用于C 程序访问HDFS或者编写MapReduce程序

lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用

libexec:各个服务对应的shell配置文件所在目录,可用于配置日志输出目录,启动参数(比如JVM参数)等基本信息

sbin:hadoop管理脚本所在目录,主要包含HDFS和YARN中各类服务的启动和关闭脚本

share:Hadoop各个模块编译后的jar包所在目录

Hadoop HA部署架构

三:修改配置文件

修改Hadoop配置文件

1 :配置文件存放目录

  1. 1.1 :Hadoop中所有的配置文件都在etc/hadoop 下面
  1. 1.2 :修改slaves文件

vimetc/hadoop/slaves

将localhost修改为hadoop01(注:修改本机的hostname)

  1. 1.3 : 修改hadoop-env.sh

将JAVA_HOME设置为本地JDK的路径

查看本机的JAVA_HOME安装路径

Echo $JAVA_HOME

编辑hadoop-env.sh

修改JAVA_HOME=/opt/hadoop/jdk1.7.0_79

  1. 1.4 : 修改mapred-site.xml

在配置目录中,有一个mapred-site.xml.template这个是hadoop为我们提供的关于mapred-site的模板文件,在后续还有很多类似的这样的文件

首先,我们将mapred-site.xml.template拷贝一份并重命名为mapred-site.xml

mvmapred-site.xml.template mapred-site.xml

然后编辑mapred-site.xml

设置为以下内容

代码语言:javascript复制
<configuration>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>
</configuration> 

参数解释:mapreduce.framework.name采用yarn进行提交mapreduce作业

  1. 1.5 : 修改core-site.xml 文件
代码语言:javascript复制
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop01:8020</value>
</property>
</configuration>

参数解释:

fs.default.name :NameNode的URL

  1. 1.6 : 修改hdfs-site.xml 文件
  1. 1.7 :修改yarn-env.sh

将去掉JAVA_HOME注释,并设置JAVA_HOME对应的JDK路径

JAVA_HOME=/opt/hadoop/jdk1.7.0_79

四:将Hadoop 配置完成之后的文件分发到其它节点中

命令 :scp –rhadoop-2.6.5 hadoop02:/opt/hadoop

scp –rhadoop-2.6.5 hadoop03:/opt/hadoop

五:启动服务

1 :格式化namenode (参考Hadoop技术点01)

命令:./bin/hdfsnamenode -format

2 : 启动HDFS

./sbin/start-dfs.sh

验证 hdfs

查看hadoop01 ,02,03的hdfs进程

jps

hadoop01 上面有datanode ,secondarynamenode

hadoop02 上面有 datanode

hadoop03 上面有 datanode

注:启动异常信息参考异常处理

4 :启动yarn

./sbin/start-yarn.sh

验证yarn

Hadoop01 启动的进程有 nodemanager ,resourcemanager,secondarynamenode,datanode

Hadoop02 启动进程有 nodemanager , datanode

Hadoop03 启动集成有 nodemanager ,datanode

1 : 格式化HDFSnamenode

./bin/hdfs namenode –format

六:验证是否启动成功

异常处理:

1 :启动HDFS时,报error:connotfind configuration directory:/etc/hadoop

解决方法1:

代码语言:javascript复制
修改hadoop_env.sh中的 HADOOP_CONF_DIR
vim/etc/hadoop/hadoop_env.sh
// 将hadoop 的完整路径附上即可
// pwd得到完整目路径
exportHADOOP_CONF_DIR=/opt/hadoop/hadoop-2.6.5/etc/hadoop 
然后 source etc/hadoop/hadoop_env.sh

解决方法2:

代码语言:javascript复制
修改/etc/profile
在profile中加入 HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
HADOOP_CONF_DIR=$HADOOP_HOME//etc/hadoop
然后 source /etc/profile

0 人点赞