Hadoop集群搭建

本是古典 何须时尚 2022-05-27 03:10 405阅读 0赞
  1. 前言:搭建hadoop集群的博文很多,不能总是每次搭建时都花时间搜索一篇适合自己机器、文章简练清晰的教程,笔者也是描述自己搭建Hadoop集群的详细过程,以备日后使用。

一、准备及所需环境

  1. Centos 6.5(目前大多数生产环境使用的较稳定版本)
  2. JDK 1.8.x
  3. Vmvare Workstation

二、开始搭建

一般分布式集群都有多种搭建模式,Hadoop搭建的四种模式说明 :

  1. 本地模式:只是用于本地开发调试
  2. 伪分布模式:同一台机器上各个进程上运行Hadoop的各个模块,各个模块是在各个进程上分开运行,但在一台机器。
  3. 完全分布式模式:生产环境采用的模式,Hadoop运行在服务器集群上,企业会做HA,以实现高可用。
  4. Hadoop HAHA是指高可用,解决Hadoop单点故障问题。

本地模式和伪分布模式都不适用于新手体验分布式的特点,没有太大意义,HA是企业级操作,遂本文以搭建完全分布式。

三台虚拟机分别为:

master:192.168.163.145

worker1:192.168.163.146

worker2:192.168.163.147

在这之前我们在Vmware中,点击编辑中虚拟机网络配置,查看NAT设置,记住子网IP和子网掩码,以及网关IP,会在配置网络时用到。

70

1.现在创建第一台虚拟机:

70 1

建议安装新建一个安装目录,并把每台虚拟机单独放在一个文件里,类似这样,不然所有虚拟机磁盘文件混在一起,非常乱。

70 2

2.安装一路下一步,可能会要求你创建一个用户,这里我们先创建一个hadoop用户,密码自设,完成后打开虚拟机,这时候网络应该是不通的。由于我们选用的是NAT模式,可以共享宿主机的网络,但如果虚拟机网络设置为DHCP的话,IP会有租期,时间一到,DHCP会重新给你分配IP,这样就后期配的所有环境带来很大麻烦,所以我们设置为固定IP。

刚才记住的网关,子网掩码,以及DNS都配置上去, Address填写你自己网段下的没使用过的ip,我这里使用192.168.163.145

70 3

配置完成后,可以打开火狐浏览器看是否连上外网,也可命令行ping www.baidu.com

70 4

成功,至此网络配置结束。

3.修改Hostname及配置Hosts

  1. 两种方式:
  2. 临时修改hostname: hostname master,这种方式重启就会失效,不建议。

70 5

永久修改:#vim /etc/sysconfig/network

70 6

配置 #vim /etc/hosts

另外两台机器虽然还没有创建,但在这直接配置好。

70 7

4.关闭防火墙

查看防火墙状态。

# service iptables status

临时关闭:# service iptables stop

永久关闭:# chkconfig iptables off(建议),重启生效

禁用掉selinux

# vim /etc/sysconfig/selinux

70 8

reboot,查看防火墙状态

70 9

5.安装JDK

首先为了大家linux环境下权限以及文件目录的整洁,建议大家以root用户在根目录下创建app目录并将所有权限赋给hadoop用户。

70 10

切回hadoop身份,下载好Oracle的jdk 1.8.x版本,传入虚拟机/app下

为了方便下面将开始使用xshell 5 连接 master进行操作

70 11

#tar -xzvf jdk1.8.0_141.tar.gz

添加到环境变量 #vim ~/etc/bash_profile

JAVA_HOME=/app/java/jdk1.8.0_141

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

保存退出 # source ~/.bash_profile

查看#java -version

70 12

为了方便,给hadoop增加sudo权限

#chmod u+w /etc/sudoers

70 13

70 14

6.克隆其他两个节点

右键克隆,创建完整克隆,新建文件夹worker1、worker2

70 15

打开worker1、worker2

依次改变ip 192.168.163.146、147

70 16

由于克隆将第一台机器的mac地址也保留了下来,所以将Auth eth1的mac地址复制到system eth0中的mac地址里,重启网卡

配置Hostname及hosts

worker1 、worker2 方法同上

7.安装Hadoop

在第一台机器上安装,hadoop官网下载hadoop2.7.0,如果下载过慢,可以选择国内的服务器,如清华大学镜像、中国科学技术大学镜像,阿里云,163等。

配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数,不配置hadoop找不到。

$ vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh,配置JAVA_HOME,运行#which hadoop

  1. ![70 17][]

进入hadoop配置文件

配置core-site.xml



fs.defaultFS
hdfs://master:8020

配置hdfs-site.xml



dfs.name.dir
/data/hadoop/hdfs/namenode


dfs.data.dir
/data/hadoop/hdfs/data


dfs.namenode.checkpoint.dir
/data/hadoop/hdfs/namesecondary


dfs.replication
1


dfs.block.size
67108864

配置yarn-site.xml



yarn.resourcemanager.address
master:8032


yarn.resourcemanager.scheduler.address
master:8030


yarn.resourcemanager.webapp.address
master:8088


yarn.resourcemanager.resource-tracker.address
master:8031


yarn.resourcemanager.admin.address
master:8033


yarn.nodemanager.localizer.address
0.0.0.0:8040


yarn.nodemanager.webapp.address
0.0.0.0:8042


yarn.nodemanager.aux-services
mapreduce_shuffle


yarn.nodemanager.aux-services.mapreduce_shuffle.class
org.apache.hadoop.mapred.ShuffleHandler


yarn.nodemanager.local-dirs
/data/hadoop/data/yarn/local


yarn.nodemanager.log-dirs
/data/hadoop/data/yarn/log/userlogs


yarn.scheduler.minimum-allocation-mb
256


yarn.scheduler.maximum-allocation-mb
1024


yarn.scheduler.minimum-allocation-vcores
1


yarn.scheduler.maximum-allocation-vcores
2


yarn.nodemanager.resource.memory-mb
1024


yarn.nodemanager.resource.cpu-vcores
2


yarn.app.mapreduce.am.resource.mb
512
The amount of memory the MR AppMaster needs.



配置slaves集群

70 18

至此hadoop配置基本完成,接下来要三台机器需要通信,配置ssh

8.配置SSH通信

  1. 首先每一台机器上生成自己的公钥
  2. $ ssh-keygen -t rsa ,一直回车,全部默认,到当前hadoop用户下的.ssh文件夹里查看

70 19

在worker1和worker2分别运行

scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub1

scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub2

然后在master节点上运行

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

cat ~/.ssh/id_rsa.pub1 >> ~/.ssh/authorized_keys

cat ~/.ssh/id_rsa.pub2 >> ~/.ssh/authorized_keys

然后将authorized_keys分发到worker1和worker2

chmod 600 authorized_key

scp ~/.ssh/authorized_keys hadoop@worker1:~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys hadoop@worker2:~/.ssh/authorized_keys

70 20

至此ssh通信配置完成。

创建hadoop的临时目录,三台机器均做。

$sudo -p mkdir /data/hadoop

同时给目录的所有者赋给hadoop用户,这部很重要,不然hadoop在格式化创建临时目录时会有权限问题

$sudo chown -R hadoop:hadoop /data

8.启动并验证

$hdfs namenode -format

70 21

不能有报错信息,且输出了namenode的临时文件以及一些文件信息。

启动hadoop集群

$ cd $HADOOP_HOME/sbin

你可以使用 $hadoop-daemon.sh start namenode

  1. $hadoop-daemon.sh start datanode

或者 $start-dfs.sh

这里有可能会遇到问题

70 22

这是因为ssh连接检查出现了问题,也可以忽略不管,也可以$vim /etc/ssh/ssh_config

  1. GSSAPIAuthentication yes 改为 no

结束进程stop-dfs.sh重新启动

$jps 查看进程

70 23

70 24

70 25

$start-yarn.sh 启动yarn进程,查看进程

70 26

70 27

70 28

你也可以使用已经不建议使用的start-all.sh 和 stop-all.sh 一劳永逸。

至此hadoop集群启动完成,我们可以测试一下hdfs能否使用

$hdfs dfs -mkdir /user/guoyg

$hdfs dfs -ls /

$echo “hadoop,spark,scala,java” >>test

$hdfs dfs -put test.txt /user/guoyg/

$hdfs dfs -ls /user/guoyg

70 29

打开浏览器,linux和宿主机都可以,输入master节点的50070端口 :192.168.163.145:50070可看到如下:

70 30

70 31

查看192.168.163.145:8088应用程序管理界面

70 32

运行hadoop自带的exmaple计算圆周率。

$hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3 jar pi 5 5

70 33

70 34

结果为3.680000000000000000

至此hadoop完全分布式配置完成。

发表评论

表情:
评论列表 (有 0 条评论,405人围观)

还没有评论,来说两句吧...

相关阅读