搭建Hadoop集群

1.  首先在虚拟机中安装好三台虚拟机,并配置好网络

至于安装过程和网络配置请参考我的其他文章

2.  搭建集群之前的说明

我使用的是hadoop2.7.3,jdk1.8,CentOS6.8,参考我这篇文章的小伙伴门,请尽量保证和我的版本一致,因为Hadoop的不同组合,有时候不会有用,并且命令也可能不一样,hadoop2.7.3依赖jdk1.8.,可以去百度的页面上,找到可能组合成功的操作系统、Java和Hadoop

3.  配置主机名

我建议将这三台的主机名分别命名为,master,slave1,slave2,当然不这么命名也可以,只要你分的清那台是master就行,如果之前你的主机名不是这三个,那么也可以通过修改配置文件来更改主机名(在CentOS7中可以通过命令来修改)

vim /etc/sysconfig/network

把这个文件中的HOSTNAME修改为:master

保存退出

重启生效。

那两个也是如此修改。

4.  在三个主机中创建三个名字相同的用户

在创建一个用户的目的是为了放置root权限过高,导致我们误删一些Hadoop的东西,并且如果日后需要多人维护的时候,只要我们将这个用户加入我们新建用户的组里面,就可以了。

创建用户的命令为

useradd hadoop #创建这个用户的时候,默认就创建了一个和用户名同名的组,所以不需要在创建组了。

给刚刚创建的用户设计密码,只有root用户有此权限。

passwd 密码

#但是如果密码过于简单,这个命令是无法通过的,会让你重新在设计密码,因为在实验环境下不需要设置过于复杂的密码,所以我有一个办法,可以用以下命令:

echo 密码 | passwd –-stdin(代表键盘的意思) 用户名

比如我的是

另外两个主机同样如此

5.  配置hosts列表

配置host列表的目的就是,将主机名和ip地址对应起来,这样的话,我们在管理集群的时候就可以通过主机名来管理了,这样做更加的便于管理,便于理解,

执行如下命令;

vim /etc/hosts

在这个文件中添加如下代码

#前面是ip地址,后面是主机名。

保存退出

测试是否配置成功

在另外两台主机中也做同样的操作。

6.  ssh免秘钥登录

6.1. 为什么要免秘钥登录

1) 在集群之间传输文件更加方便

2) 因为Hadoop集群依赖于ssh免秘钥登录,才能控制整个集群

6.2. 免秘钥登录步骤

1) 查看本机是否开启了sshd服务(注意带d结尾的进程一般都是服务),

用命令pstree -pu | grep sshd

已经查看到开启了这个服务,如果没有开启,请输入这个命令,service sshd start

2) 关闭防火墙

 输入:

                     serviceiptables stop

                    让防火墙开启不启动

                     chkconfigiptables off

查看是否禁止防火墙开机自启动

                    都是关闭状态,表明已经禁止自启动了

                     另外两个也是如此。

3) 关闭SELINUX

SELINUX也是一个Linux中的安全模块,可以最大限度的减小系统中服务进程可访问的资源。

关闭这个的方法就是通过编辑selinux这个文件将里面的一行改为SELINUX=disabled就可以了。然后重启

执行命令:vim /etc/sysconfig/selinux

4) 切换到hadoop用户下,三个都是

5) 对master执行如下命令

ssh-keygen -t rsa  #中间会有交互,一路回车即可

在hadoop的家目录里面会产生.ssh这个隐藏目录

6)进入.ssh目录

发现,有两个文件,分别是id_rsa(私钥)  id_rsa.pub(公钥),

7) 在slave1,和slave2中hadoop的家目录中,创建.ssh目录,并且给这个目录赋给700的权限。

8) 将master的公钥复制到slave1和slave2的.ssh目录中,并更名为authorized_keys,且将这个文件赋值600的权限,执行如下命令就可以进行远程复制,

scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/authorized_keys

第一次,     需要输入密码,当完成免秘钥登录就可以不用密码了。进入slave1的.ssh目录下,查看是否复制成功

可以看到已经成功了。赋给600的权限

9) 在master就可以不用密码,即可登录slave1和slave2了

退出是用exit

7.  安装JDK

7.1. 在hadoop的用户目录下,创建一个software的目录。将所有hadoop安装的软件都装到这里

7.2.检查是否安装有jdk,有的话卸载。

首先查询看是否安装过

       rpm-qa | grep jdk

       rpm-qa | grep java

然后逐个卸载

       rpm-e 具体包名,#这里演示一个,其他的不显示了,道理一样

7.3.用远程传输工具,将jdk传输过去,到soft目录下。

7.4.安装jdk,执行如下命令

tar -zxvf jdk-8u171-linux-x64.tar.gz

结果如下:

创建一个软连接,以便以后修改

7.5切换到root,.配置环境变量,添加如下内容

编辑文件

vim /etc/profile

保存并且退出。

7.6.验证jdk是否配置成功

先用source使配置文件生效

输入java -version

表明已经成功生效。

7.7.将这个压缩后的目录远程复制到slave1和slave2,并且同样修改这个配置文件,

三个都生效就行。

8.  安装hadoop

8.1. 将hadoop安装包用远程工具传输到master

8.2. 解压这个压缩包

8.3. 创建一个软连接

8.4 添加环境变量

切换为root,编辑/etc/profile,添加如下内容

8.5. 让配置文件生效

source /etc/profile

验证是否成功执行

hadoop version

8.6.修改hadoop的配置文件:

进入/home/hadoop/software/hadoop-2.7.3/etc/hadoop,目录下

编辑hadoop的配置文件,第一个

1)    vim hadoop-env.sh #这个是配置脚本中要用到的环境变量

修改如下内容

2)vim core-site.xml    #Hadoop的配置项,例如MapReduce,YARN等

                     填入如下内容

3) 根据以上内容,此时我们应该在/home/hadoop/software/hadoop-2.7.3,目录下新建一个tmp临时目录,并在这个目录下有一个子目录dfs,dfs有两个子目录分别name和data

4)vim hdfs-site.xml  #这个文件是hadoop守护进程的配置项,包括namenode和datanode

5)vim yarn-site.xml  #这个是YARN守护进程的配置项,包括资源管理,web应用代理,和节点管理器

6) vimmapred-site.xml   #这个配置文件是MapReduce的守护进程的配置项,包括作业历史服务器。

              因为没有这个配置文件,所以需要新建,或者在这个当前目录下有一个它的模板。将这个文件改名就可以了,这个文件就是mapred-site.xml.template,改成mapred-site.xml

              执行如下命令;

              cpmapred-site.xml.template mapred-site.xml

然后在vim mapred-site.xml,填入如下内容

      

7)  vim slaves #这个是配置datanode和节点管理器,填入如下内容

8.7将hadoop远程复制到另外两台计算机,并配置和master一样的环境变量(配置环境变量这里不写了,见上面的master配置)

表示已经复制过来了。

8.8.格式化文件系统

hdfs namenode -format

8.9.启动hdfs文件系统和YARN文件系统

8.10.验证是否成功:

jps,如果含有datanode,ResourceManager,NameNode,SecondaryNameNode,Jps,就证明成功了。

9.  在浏览器输入http://192.168.1.21:50070/验证是否成功

10.重要的提醒:

1.集群必须进行时间的同步,可以是同步真实机的时间或者网络时间,

2.集群必须给自己也用上免秘钥登录,因为本机之中不止一个用户,那么hadoop进行配置和免秘钥登录自己的时候就没有密码了

















































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值