前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop分布式部署

Hadoop分布式部署

作者头像
用户5252199
发布2022-04-18 13:46:48
4640
发布2022-04-18 13:46:48
举报
文章被收录于专栏:大数据技术博文

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
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术博文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档