Hadoop学习笔记(一) 搭建一个Hadoop集群

 

在学习的Hadoop的的过程中,首先要做的就是建立一个Hadoop的的的集群。我在搭建的过程中,除了许多问题,然后不断的查找不断的百度,通过大量的实验。不知道废了多少组虚拟机终于成功了,下面就把我搭建的过程分享出来吧。

1.下载的VMware,安装虚拟机

我下载的是VMware12Pro,现在好像最新的是VMware14,你们也可以下载使用。下面直接给你们一条链接吧。

下咱完成后点击安装就可以,他上面有试用版的。我们用来学习,所以我们使用试用版的就可以了。

安装的VMware的完成后,我们就可以在上面安装的Linux的虚拟机了。因为安装的Linux的虚拟机没有什么技术难度我在这里就不详细说了。直接给大家一个网址。大家参考这个上面的安装Linux的的虚拟机就可以了。

VM安装的Linux的虚拟机

这篇文章上面写的很详细,但是在最后选择系统类型的时候,我们不要选基本版的,而是直接选择最小版的虚拟机就可以了。

我们按照相同的方法安装三个的Linux的虚拟机,并且将所有机器的名字分别命名为master,SLAVE1,SLAVE2。

2.配置的的Linux的各项环境

安装好Linux的的虚拟机之后,我们需要配置虚拟机的各项环境。包括IP,主机文件,关闭防火墙,关闭SELINUX,安装JDK等。

2.1配置静态IP地址

首先配置IP,我们这里将IP直接配置为静态IP,这样在学习的过程中可以减少许多问题。

主机名为我们首先约定一下,各台虚拟机的IP分别是多少。

主机名IP地址
192.168.2.126
SLAVE1

192.168.2.127

SLAVE2192.168.2.128

我们将三台虚拟机的IP分别配置为上表缩写的,当然也可以自己任意写。但需要保证所有的IP在同一号码段下。

配置静态IP的方法是:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

首先打开这个文件

我们需要修改一下几个参数,如果这个文件中没有这些参数,那么我们直接在后面添加上就好了。

IPADDR = 192.168.2.12 *
GATEWAY = 192.168.24.2
ONBOOT = yes
BOOTPROTO =static
DNS1 = 8.8.8.8

在IPADDR后面添加上我们前面约定号的IP地址。

这样我们的静态IP就配置好了。

在配置号IP之后,我们需要重启网卡让刚才的配置生效。

service network restart

重启网卡之后,我们可以使用的使用ifconfig指令看一下,刚才的配置是否生效。

2.2关闭防火墙以及SELINUX

如果不关闭防火墙,我们安装的的Hadoop的是没办法从本机之外的地方访问的。所以一定要关闭防火墙。

1)查看防火墙开机启动状态
chkconfig iptables --list    
2)关闭防火墙
chkconfig iptables off   

关闭SELINUX

我们一定要关闭selinux.SElinux是Linux的的里面的安全机制,如果不管的话可能造成各种外部的连接不成功。

vi / etc / selinux / config
将SELINUX =强制改为SELINUX =禁用

当关闭防火墙并执行上面的操作之后,如果我们的电脑已经联网了的话,我们可以直接平白百度。如果能平通的话,则前面的操作没有问题。

2.3修改主机名以及安装JDK

我们进入到vi / etc / sysconfig / network下面并将HOSTNAME设置为master或者其它.HOSTNAME
= master

下面为Linux的的新建立一个USER1的用户,我们将所有的文件都安装到它的下面。

[root@node101 opt]# adduser user1
[root@node101 opt]# passwd 123456

新建USER1的用户并设置密码123456

Hadoop的的使用的Java的编写的所以一定要在Hadoop的的上面安装JDK或者JRE才能保证运行。这里我们直接安装JDK了。

JDK选用的1.8,可以直接去官网下载。这里就是下载的地址,注意的一点是我们需要下载额是Linux的下的JDK.JDK1.8下载地址

我们切换用户到刚才新建的用户1的下面。然后创建软文件夹。这样我们以后就可以将所有的安装文件都放到这个下面。

mkdir soft

在USER1用户下上传JDK文件到软文件目录下面。这里注意力,一定要在USER1的用户下上传不然在后面的使用过程中你会碰到各种权限问题。所以千万,一定要注意。

上传之后解压缩,并且重命名为Java的的就可以了。

我们解压缩完JDK之后就是配置JDK的环境变量了。配置环境变量的时候可以在两个地方配置。第一个地方是在.bashrc中配置但是在这个里面配置的话。除了用户1和根能用之外其它的用户是没办法使用的。所以为了方便期间,我们直接配置一个全局的环境变量我们切换会根用户,并且打开

/ etc / profile文件文件

然后在文件最后写入下面这行代码

export JAVA_HOME=/home/user1/soft/java
export PATH=$PATH:$JAVA_HOME/bin

然后保存退出使用并使用source / etc / profile使其生效。

检查是否生效的方法很简单就是直接使用的Java的命令,看是否有效。如果有效则配置成功。

2.4配置免密登陆

我们在安装以及使用的Hadoop的的过程中需要多次与别的机器通信。每一次通信都要求你输入密码,这样其实是非常不方便的。荣国我们配置的免密登陆就减少了这样的烦恼。那么下面我们就开始配置免密登陆吧。

我们先切换到USER1下面。

因为我们是新安装的机器所以需要先先下载SSH,执行

yum -y install openssh-clients

注意,要在确保电脑联网的情况下使用上面那条指令。

然后执行下面这条指令。

ssh-keygen -t rsa -P ''

完成之后按3次回车,这时候我们使用ll -a指令会发现这里面多了一个.ssh目录。在这个目录里面就存放着我们生成的公匙和私匙。我们cd进入到这个文件夹里面我们发现这个文件夹里面一共有id_rsa id_rsa.pub。还有其它文件,但是最关键的是这两个文件。其中id_rsa我们们的私匙,而id_rsa.pub是我们的公匙。

然后,我们需要给群中所有的机器都分发自己的公匙过去。配置完成后,这样集群内的其它机器可以任意访问了。

scp id_rsa.pub user1@192.168.2.*:~/.ssh/xxx_id_rsa.pub

其中XXX是那台机器的名字,这样是为了我们后面的操作方便起见而做的。

我们将自己的公匙发送给其它的机器之后就需要将共别人的公匙和自己的公匙添加。进去。

cat xxx_id_rsa.put >> authorized_keys 

我们在每台机器上都这样执行一遍之后。这样我们就完成的免密登陆的配置。注意最后一点,我们需要修改的authorized_keys文件的权限为600,不然的话配置的SSH免密登陆没有作用。

修改的指令是:chmod 600 authorized_keys

接下来,我们验证免密登录是否配置成功。

ssh 192.168.2.12x

我们使用上面的命令段,如果能成功登陆其它机器那么SSH免密登陆配置成功。如果失败,我们退出的的.ssh文件然后删除的的.ssh文件夹重新执行以便前面的操作。

这里再说一遍,一定要修改的authorized_keys文件的权限为600

2.4修改hosts文件

当修改了主机文件之后,我们以后就可以直接使用名字来配置相关的文件了而不是每次都输入IP地址。

我们先切换到根用户下面

然后打开vi / etc / hosts文件。

将这个文件中所有的内容都清空,(你们有听错,是全部都清空,不然在后面启动的Hadoop的时候会气死你的。)然后将我们的主机名和对应的IP全都写进去。

192.168.2.126 master
192.168.2.127 slave1
192.168.2.128 slave2

这样的主机文件就修改完毕了。

3.安装Hadoop的

3.1上传的Hadoop文件,并配置环境变量

我们在安装的Hadoop之前首先需要在SLAVE1或者SLAVE2上面安装一个MySQL的数据库。这样做的原因是,我们在后面安装不亦乐乎的时候需要一个元数据库。我们就可以直接使用集群中的数据库了。

在MySQL的上面安装数据库的步骤直接看我另外一篇博客

CentOS 6.5下安装MySQL

Hadoop的我们直接在Apache的Hadoop的的官网上面下载就好了。我安装选用了Hadoop2.6版本的。当然现在有高版本了,但是安装的方法都是大同小异的。

首先,我们需要下载的Hadoop的压缩包。

Hadoop的下载的地址   你在这里可以直接选择你想要的的Hadoop版本。然后安装。

首先切换到user1用户下,同样将Hadoop的压缩包上传到/ home / user1 / soft下面解压缩并且重命名为Hadoop。

然后在切换回root用户打开/ etc / profile文件,然后配置环境变量。如果你前面完全按照我的配置来的,那么你直接在文件中把我下面的内容直接粘贴过去放到最后就可以了。

export JAVA_HOME=/home/user1/soft/opt/wdp/jdk
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/user1/soft/hadoop
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$JAVA_HOME/bin

然后保存退出,并且使用source / etc / profile指令让其生效。

然后我们切换回user1的用户。

进入到/ home / user1 / soft / hadoop / etc / hadoop文件目录下面。接下来我们需要修改一下几个文件

核心的site.xml

hadoop-env.sh

HDFS-site.xml中

mapred-site.xml中

奴隶

纱的site.xml

一共需要修改或创建这6个文件

首先,我们使用vi core-site.xml打开这个文件然后修改其中的值为hdfs:// master:8020如果你前面也是按照我的做的话,这样修改是没有问题的。如果不是,那么你可以修改成任意一台主机名,前提是你修改了主机文件中的相关内容。修改完毕后,退出并保存。

然后打开hadoop-env.sh文件在#export JAVA_HOME = $ {JAVA_HOME}这行下面,把你前面配置的JAVA_HOME直接抄过来就好了。同样如果你前面是按照我说的做的那么你直接吧我的这段代码粘贴过去就好了export JAVA_HOME = / home / user1 / soft / java保存并退出该文件。

然后我们打开hdfs-site.xml文件 

<property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
<!-- 设置文件的备份数  -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/user1/soft/hadoop/dfs/name</value>
  </property>
    <!-- 设置namenode的位置 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/user1/soft/hadoop/dfs/data</value>
  </property>
    <!-- 设置datanode的位置 -->

直接按照我上面的内容修改你的HDFS-site.xml的文件的内容。

现在直接vi slaves文件然后在里面吧我们这个集权中所有的主机名全部都配置进去。前提是你在前面的主机文件中配置了集群中所有机器的IP以及主机名映射关系。如果没有的话,直接吧所有的IP地址配置进去也是可以的。

然后这样所有的配置文件就设置完了。

3.2初始化的Hadoop

在初始化的Hadoop之前,我们先回到Hadoop的文件目录下面。查看一下有哪些文件目录,我们如果发现DFS这个文件目录存在的话直接删除它,不要犹豫。

下面使用这个指令来格式化的Hadoop,如果我们前面的所有操作都正确的话,都按照我的来的话。应该是没有问题的,如果没有按照我的做,那么可能会产生这样那样的问题,不过不要害怕,我们可以看错误提示然后一一解决。

注意前面的所有操作,是需要在3台机器上都要执行的,但是下面格式化以及其中只需要在主上面执行就好了。一定要注意,一定要注意,一定要注意。

首先格式化的Hadoop

hadoop namenode -format

如果格式化成功,我们在Hadoop的文件目录下面可以看到有一个DFS文件夹出现,(当然失败了也可能出现,如果失败了。那就删除这个DFS文件目录,然后修改错误的地方。最会直到成功就好了。)。

下面开始启动的Hadoop的,Hadoop的的启动一共有三条指令可以选,分别是

start-all.sh代表全部都启动(最常用,最方便)

start-yarn.sh代表启动纱线

start-dfs.sh代表启动HDFS系统

我们直接只用start-all.sh全部都启动,如何判断的Hadoop的已经启动呢,我们可以使用JPS这个指令。查看有哪些的Java的进程在运行。

一般来说需要在主上开到6个的Java的进程如下图:

主启动进程

然后我们在子节点上面也应该能够看到3个进程分别如下图:

从启动进程

如果我们看到,这些进程全部都启动成功了,那么代表我们的Hadoop的的安装并启动成功。

这篇博客写的比较粗糙,但是还是希望能够给刚学习的人一点帮助。如果在安装或者学习的Hadoop的的过程中有遇到什么问题。你们可以私信我,我可以帮助你解决这些问题。或者我们一块讨论来解决这些问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值