零基础教你搭建Hadoop集群

需要的安装包:

  • JDK压缩包
  • Hadoop压缩包

linux安装虚拟机 使用linux安装虚拟机就不做过多描述,可以参考,安装的方法大同小异

一、使用VMvare创建两个虚拟机,使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙

a)因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1

  • 修改主机名的命令:sudo gedit /etc/hostname,把原主机名ubuntu改为master(在从主机上则改为slave1)

b)为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作),把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址

  • 命令:sudo gedit /etc/hosts

    查看IP地址命令
    命令:ifconfig -a

    上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:

    slave1的ip地址就是从虚拟机slave1的真实ip地址。同样,我们在slave1虚拟机上也要进行这一步操作。

c)关闭虚拟机的防火墙
ubuntu默认都是安装防火墙软件ufw的,使用命令 sudo ufw version,如果出现ufw的版本信息,则说明已有ufw。使用命令 sudo ufw status查看防火墙开启状态:如果是active则说明开启,如果是inactive则说明关闭。

  • 开启/关闭防火墙 (默认设置是’disable’)
    sudo ufw enable|disable

使用sudo ufw disble来关闭防火墙,并再次用sudo ufw status 查看防火墙是否关闭。

二、安装jdk(所有虚拟机都要安装配置)
将jdk的压缩文件拖进master和slave1虚拟机中,压缩(右键extract here),或者用命令行tar -zxvf jdk1.8.0_161.tar.gz

配置环境jdk环境:

命令:sudo gedit /etc/profile

将jdk的路径添加到文件后面(根据自己的文件路径来,我这里jdk1.8.0_161文件夹的路径是/home/hadoop/java)

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据


保存退出,为了使配置立即生效,键入命令:source /etc/profile,或者重启虚拟机,命令:shutdown -r now

检查路径jdk是否安装成功,键入命令:java -version

如果出现了版本信息,则恭喜配置成功;

三、安装SSH服务
1.首先确保虚拟机能连上网
2.更新源列表:sudo apt-get update
3.安装ssh:输入"sudo apt-get install openssh-server"–>回车–>输入"y"–>回车–>安装完成。
4.查看ssh服务是否启动,打开"终端窗口",输入"sudo ps -e |grep ssh"–>回车–>有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"–>回车–>ssh服务就会启动。

四、建立ssh无密码登录本机

ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

1.创建ssh-key,这里我们采用rsa方式

ssh-keygen -t rsa -P “” //(P是要大写的,后面跟"")

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_02

(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

2.进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

cd ~/.ssh

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop集群_03


输入命令

cat id_rsa.pub >> authorized_keys

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_04


完成后就可以无密码登录本机了。3.登录localhost

ssh localhost

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_05


(注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机)4.执行退出命令

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop集群_06

前面1~4步骤,在master和slave1两台虚拟机上都是配置

5.配置master无密码登陆slave1

mater主机中输入命令复制一份公钥到home中

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_07


把master的home目录下的id_rsa_master.pub拷到slave1的home下(做法是先拖到windows桌面上,在拖进slave1虚拟机中)slave1的home目录下分别输入命令

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_08

至此实现了mater对slave1的无密码登陆

五.安装hadoop
a)将hadoop压缩包拖进master虚拟机中,解压(这里解压的路径是/home/hadoop/hadoop-2.7.3)

b)在hadoop-2.7.3文件夹里面先创建4个文件夹:
hadoop-2.7.3/hdfs
hadoop-2.7.3/hdfs/tmp
hadoop-2.7.3/hdfs/name
hadoop-2.7.3/hdfs/data

c)配置 hadoop的配置文件

先进入配置文件的路径:cd /home/hadoop/hadoop-2.7.3/etc/hadoop(对应到自己的路径)

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_09


命令ls,查看该路径下的文件列表(被红框框住的文件是要进程配置的文件)

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop集群_10


c1) 首先配置core-site.xml文件

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_hadoop_11


在configuration中加入以下代码:

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop集群_12


(注意:第一个属性中的value和之前创建的/hadoop-2.7.3/hdfs/tmp路径要一致)c2) 配置 文件, 将JAVA_HOME文件配置为本机JAVA_HOME路径

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_13


c3) 配置

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_hadoop_14


将其中的JAVA_HOME修改为本机JAVA_HOME路径

c4) 配置hdfs-site.xml

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_hadoop_15


在configuration中加入以下代码:

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_16


注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)c5 )复制mapred-site.xml.template文件,并命名为mapred-site.xml, 配置 mapred-site.xml,在标签configuration中添加以下代码

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_17


搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_零基础_18

c6)配置yarn-site.xml

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_hadoop_19


在标签configuration中添加以下代码

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_零基础_20

c7) 配置slaves 文件, 把原本的localhost删掉,改为slave1

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_21


c8) 配置hadoop的环境,就像配置jdk一样,根据hadoop文件夹的路径配置,以路径/home/hadoop/hadoop-2.7.3 为例,键入命令 source /etc/profile 使配置立即生效

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_零基础_22


搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop集群_23

c9) 接下来,将hadoop传到slave1虚拟机上面去

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_零基础_24


(注意:hadoop是虚拟机的用户名,创建slave1时设定的,传过去后,在slave1上面同样对hadoop进行路径配置,和c8步一样)c10) 初始化hadoop

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_25


c11) 开启hadoop

两种方法:

先,再

如果在mater上面键入jps后看到

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_hadoop_26


在slave1上键入jps后看到

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_27


则说明集群搭建成功六 、最后用自带的样例测试hadoop集群能不能正常跑任务

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_大数据_28


用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)

搭建Hadoop 集群时无法ping通 hadoop集群搭建原理_搭建Hadoop 集群时无法ping通_29


则恭喜你,hadoop集群搭建完成