Hadoop完全分布式安装配置完整过程

一. 硬件、软件准备

    1. 硬件设备

    为了方便学习Hadoop,我采用了云服务器来配置Hadoop集群。集群使用三个节点,一个阿里云节点、一个腾讯云节点、一个华为云节点,其中阿里云和腾讯云都是通过使用学生优惠渠道购买了一年的云服务,华为云使用免费7天或15天的云服务器。我决定使用腾讯云节点作为Master节点,阿里云节点和华为云节点作为Slave节点。集群基本结构如下图:

    云服务器配置信息如下:

集群网络环境:

分别在每台机器上创建了用户hadoop,并且全部禁用了防火墙。

2. 软件

由于Hadoop需要JVM环境,所以需要下载JDK。需要的软件清单如下图所示。

二、环境搭建

1. JAVA安装

  • 解压

我们下载软件jdk-8u61-linux-x64.tar.gz放在了 /home/install-package 下。先在 /home 下创建了java目录,并将jdk压缩文件解压到该目录下,命令如下。

[[email protected]_tencent java]# tar -zxvf /home/install-package/jdk-8u161-linux-x64.tar.gz -C java
  • 建立软连接

和window上的快捷方式一样,我们为jdk安装的长路径建立一个短路径,方便我们后面设置环境变量。

[[email protected]_tencent java]# ln -s /home/java/jdk1.8.0_161/ /home/jdk
  • 配置环境变量

在 /etc/profile 中添加环境变量。

[[email protected]_tencent home]# vim /etc/profile

添加内容:

JAVA_HOME=/home/jdk
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

随后使用 source /etc/profile 命令使配置生效,最后通过执行 java –version 查看java是否安装配置成功。看到输出的结果是我们安装的内容,说明安装配置成功。

[[email protected]_tencent home]# source /etc/profile
[[email protected]_tencent home]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

2. SSH配置

Hadoop控制脚本依靠SSH来进行集群的管理,为了方便操作,设置SSH为免密访问。

  • 进入创建的用户hadoop的工作目录下
[[email protected]_tencent ~]# su hadoop
[[email protected]_tencent root]$ cd ~
  • 执行ssh创建密钥命令
[[email protected]_tencent ~]$ ssh-keygen -t rsa

进入hadoop用户的工作目录,查看目录下的文件,发现出现了一个 .ssh 文件夹。打开 .ssh 文件夹,我们看到了生成的 公钥 id_rsa.pub 和私钥 id_rsa 两个文件。

[[email protected]_tencent ~]$ ls -al
total 28
drwx------  3 hadoop hadoop 4096 Mar 16 23:49 .
drwxr-xr-x. 5 root   root   4096 Mar 16 23:48 ..
-rw-------  1 hadoop hadoop   63 Mar 16 23:49 .bash_history
-rw-r--r--  1 hadoop hadoop   18 Aug  3  2016 .bash_logout
-rw-r--r--  1 hadoop hadoop  193 Aug  3  2016 .bash_profile
-rw-r--r--  1 hadoop hadoop  231 Aug  3  2016 .bashrc
drwx------  2 hadoop hadoop 4096 Mar 16 23:49 .ssh
[hadoop@libaoshen_tencent ~]$ cd .ssh/
[hadoop@libaoshen_tencent .ssh]$ ls
id_rsa  id_rsa.pub
  • 将生成的公钥覆盖到authorized_keys
[[email protected]_tencent .ssh]$ cp id_rsa.pub authorized_keys
  • 通过再这三台机器上分别执行上面的步骤,将三台机器上hadoop用户 ~/.ssh/authorized_keys 中的内容合成一个authorized_keys文件,并使用 scp 命令将该文件复刻到其余两台机器上对应的目录中。并且同时要设置 .ssh 目录的访问权限为700,设置 .ssh/authorized_keys 的权限为600。具体操作如下。

a.合成后的authorized_keys文件

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2XHqv9F0+ueiDlBqV7M2yKRdtDRmV7OgW7WFOmcN9abkBAumDM4+vZ6fFkHlmPcUcskm7HFiQ4BEZep8NdaZ8kRr2V4dSy0T8IidXgPL6Mc8UH+e5h+VOaelfmBprb8oo0vmdJ73rAn4bswx9FW/4Rm/mTG0ZXuE288LEXktKxQEz31sH8HBDKt+uEjYq9SDiPEnE8Dg85WMHLDdTwrNH7okMrskeetXBhcacp28PXuneEB5fCOu02CdPsQ7LmJZpEt4rSGHa3f/m75jGGKlvK5+g+jGO7SXuipWaogQIVxb6xusKl0qm5YwR9uVB5I3Yy7FpFJjJMvEf78bbHYHR [email protected]libaoshen_tencent
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUqHX/2CTD9hJa+qyoEIq3juAXTXr1dBxQpsfySOA1VbKZkyzxJVGlFae9YmHrOOrnWTRFiDGrfJL/KxO7Kt1mpJFYivhAkORGgNWAf6KpjCb0ScRUqp/7aUYMjUv7a8nX0wALHURtoViLmI6A21CWuF9tuIbu5FOpquCV4Vz7z32PFNkHiG2l/mfWGzV+1R8bgkCP7JvBZnB4/4bJ+6mzmTyhiQ5VBnbBzF0IH3kCWeCY7B+XHjrW2iaCEv1mCFrBun0J7ojZYr9tv7FXgr1+B0nr3cDP2parcVPY0BdLDz+sRNVUeczQZfcVypQxfNtdCQ+6pcazBLfgL7cwZ8ab [email protected]libaoshen_ali
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0fq+6HJ72U4S/+FCijVrp6xhKlTOfajQRHISa3+sH3+wQgHzk3OXGYPJC0snkUN5fot+AQcY2n1sc2l+VItRgjxaISXseUjntAG5N0EQb8wjidPaDTYTbcFefc0aHStHJCKH800yoz7Y7DN+Z84G2Lzp7XK+m8zIBuiMpKjrGE77qGd/UmQcQ4Zk1PxWtWogs0xyrjMr3Y3t57r8xMgqPs2lIb2rlYJ3H26q5YAE6XwaNnjogRh1oM0jakEBlKl4jrFMozUQulwabjT+0gfGezXHie4dmrLPesXjGE7cs+hjUEmzYKPZAIK8i0b+YAEw3i/kr0kDWmNOP/JdgQJcEQ== [email protected]

b.为 .ssh 和 .ssh/authorized_keys 分别设置权限为 700 和 600(很关键)

[[email protected]_tencent ~]$ chmod 700 .ssh/
[hadoop@libaoshen_tencent ~]$ chmod 600 .ssh/authorized_keys

c.libaoshen_tencent 节点上测试是否能免密登录,通过输出结果看到,可以成功免密登录

[[email protected]_tencent ~]$ ssh [email protected]libaohshen_tencent
Last login: Sat Mar 17 13:24:42 2018 from 127.0.0.1

d.随后分别使用 scp 命令将该authorized_keys 复制到其他两个节点上,同时设置文件权限以及分别测试是否能免密登录

[[email protected]_tencent ~]$ scp ~/.ssh/authorized_keys [email protected]*.*.*:~/.ssh/
[[email protected]_tencent ~]$ scp ~/.ssh/authorized_keys [email protected]*.*.*:~/.ssh/

e.最后,在libaoshen_tencent节点上,即Master节点上尝试免密连接其余的节点,测试ssh是否配置正确。看输出结果,我们已经可以免密连接Slave节点了,说明ssh配置成功

[[email protected]_tencent .ssh]$ ssh [email protected]*.*.*
Last failed login: Sat Mar 17 13:31:38 CST 2018 from 193..*.*.* on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Sat Mar 17 13:07:31 2018

Welcome to Alibaba Cloud Elastic Compute Service !

[hadoop@libaoshen_ali ~]$

3. Hadoop安装和配置

  • Master节点安装Hadoop

a. 我们已经将下载好的hadoop-2.7.5.tat.gz放在了 /home/install-package 中。首先使用root身份登录,再将 hadoop-2.7.5.tar.gz压缩包解压到 /home/hadoop 中,然后要么设置link,要么修改hadoop-2.7.5 目录为hadoop,缩短hadoop安装目录名。操作命令如下。

[[email protected]_tencent hadoop]# tar -zxvf hadoop-2.7.5.tar.gz -C ../hadoop/
[[email protected]_tencent hadoop]# mv hadoop-2.7.5 hadoop
[[email protected]_tencent hadoop]# chown -R hadoop:hadoop hadoop

b. 配置hadoop环境变量

[[email protected]_tencent hadoop]# vi /etc/profile

添加如下内容

HADOOP_HOME=/home/hadoop/hadoop
PATH=$PATH:$HADOOP_HOME/bin
export PATH HADOOP_HOME

再执行source /etc/profile 让环境变量配置生效。同时在 /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh 修改java路径。如下所示。

[[email protected]_tencent hadoop]# vim /usr/hadoop/hadoop/etc/hadoop/hadoop-env.sh

修改java路径为上面我们所配置的路径,再执行 source hadoop-env.sh 使其生效。

修改后,执行hadoop version, 我们可以看到hadoop的版本号和其他信息。

c. 配置hadoop中的配置文件

i.core-site.xml: hadoop 的核心配置文件,添加设置为namenode节点的地址,端口号一般为9000

ii.hdfs-site.xml:设置备份数量,由于我们有两个datanode,所以设置为2

iii.mapred-site.xml:设置jobtracker对应的节点地址,端口号一般为9001

iv.masters和slaves:masters修改为设置为master的那个节点的ip,slaves修改为设置为slave的节点的ip

v.在master上配置完成后,再使用scp命令将java、hadoop及其配置复制到其他的两个节点上

复制hadoop

[[email protected]_tencent hadoop]$ scp -r /usr/hadoop/hadoop [email protected]*.*.*:/usr/hadoop
[hadoop@libaoshen_tencent hadoop]$ scp -r /usr/hadoop/hadoop [email protected]*.*.*:/usr/hadoop

复制配置,由于我们的配置是在root用户下的,所以需要su root后输入密码才能scp

[[email protected]_tencent hadoop]# scp -r /etc/profile [email protected]*.*.*:/etc
[[email protected]_tencent hadoop]# scp -r /etc/profile [email protected]*.*.*:/etc

三. 启动

  • 格式化

运行 hadoop namenode –format,会初始化namenode,记录集群元数据,即datanode的信息等。

  • 启动

在目录 /usr/hadoop/hadoop/sbin 目录中执行 ./start-all.sh 即可以启动,执行 ./stop-all.sh 即可停止

启动后可以使用 jps 命令查看hadoop后台进程是否已经启动

Master节点

Slave节点

可以在浏览器中输入 namenode 的ip + 8088/50070 查看集群状态

安装过程中遇到的问题

1. 配置不正确,导致分发给其他节点的配置也有问题,最后发现更正的成本比较高。所以一定要仔细检查,确认配置无误后,在复制到每个其他的节点;

2. hostname配置不正确,一定要确保 ip 和 hostname 对应,否则就可能出现 hostname unknown等报错;

3. 在启动过程中,hadoop会打印日志,当出现问题时,可以查看日志信息,准确定位错误位置。

原文地址:https://www.cnblogs.com/glsy/p/8592645.html

时间: 2024-10-10 06:11:45

Hadoop完全分布式安装配置完整过程的相关文章

吴超老师课程---hadoop的分布式安装过程

1.hadoop的分布式安装过程 1.1 分布结构 主节点(1个,是hadoop0):NameNode.JobTracker.SecondaryNameNode            从节点(2个,是hadoop1.hadoop2):DataNode.TaskTracker    1.2 各节点重新产生ssh加密文件    1.3 编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息    1.4 两两节点之间的SSH免密码登陆            ss

hadoop的分布式安装过程

1.hadoop的分布式安装过程 1.1 分布结构 主节点(1个,是hadoop0):NameNode.JobTracker.SecondaryNameNode     从节点(2个,是hadoop1.hadoop2):DataNode.TaskTracker 1.2 各节点重新产生ssh加密文件 1.3 编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息 1.4 两两节点之间的SSH免密码登陆   ssh-copy-id -i  hadoop1   s

Zookeeper分布式安装配置

Zookeeper分布式安装配置 Zookeeper介绍 概述 1.ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. 2.ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效.功能稳定的系统提供给用户. 3.ZooKeeper包含一个简单的原语集,提供Java和C的接

Hadoop伪分布式环境配置

Step1:关闭防火墙   service iptables stop[status]  service iptables status  chkconfig --list |grep iptables  chkconfig iptables offStep2:修改IP   (重启网卡:service network restart)Step3:修改hostname  /etc/hostsStep4:SSH免密码登陆  产生密钥(~/.ssh中)ssh-keygen -t rsa   cd ~/

Hadoop集群安装配置文档

Hadoop集群安装配置文档 日期 内容 修订人 2015.6.3 文档初始化 易新             目录 1 文档概要... 5 1.1软件版本... 5 1.2机器配置... 5 2 虚拟机配置... 5 2.1新建虚拟机... 5 2.2虚拟网络配置... 8 3 CentOS安装及配置... 9 3.1系统安装... 9 3.2系统配置... 10 3.2.1防火墙配置... 10 3.2.2 SElinux配置... 10 3.2.3 IP配置... 11 3.2.4安装vim

< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

< python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分使用了pydub这个音频库,十分快捷方便,但是它完整一套的配置让我还是踩了几个坑.特将其配置过程记录于此,方便大家. Windows10系统 < Pydub in Github > 安装Pydub Anaconda:打开Anaconda prompt,activate切换至工作环境下,键入pip

伪分布式安装Hadoop + zookeeper + hbase安装配置

一.  安装JDK,配置环境JAVA环境变量 exportJAVA_HOME=/home/jdk1.6.0_27 exportJRE_HOME=/home/jdk1.6.0_27/jre exportANT_HOME=/home/apache-ant-1.8.2 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 二.  安装Hadoop-1.0.3 1.     下载hadoop文件,地址为:http://hadoop.apac

Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否则请先查看Hadoop安装教程_单机/伪分布式配置 或 CentOS安装Hadoop_单机/伪分布式配置. 本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,保证按照步骤来,都能顺利安装并运行 Ha

Hadoop完全分布式安装教程

软件版本 Hadoop版本号:hadoop-2.6.0-cdh5.7.0: VMWare版本号:VMware 9或10 Linux系统:CentOS 6.4-6.5 或Ubuntu版本号:ubuntu-14.04.1-desktop-i386 Jdk版本号:Jdk1.7.0._79 后三项对版本要求不严格,如果使用Hbase1.0.0版本,需要JDK1.8以上版本 安装教程 1.VMWare安装教程 VMWare虚拟机是个软件,安装后可用来创建虚拟机,在虚拟机上再安装系统,在这个虚拟系统上再安装