25. 集群搭建
25.1 HADOOP集群搭建
25.1.1集群简介
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起
HDFS集群:
负责海量数据的存储,集群中的角色主要有NameNode / DataNode
YARN集群:
负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager
25.1.2服务器准备
本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本:
üVmware 11.0
üCentos 6.764bit
25.1.3网络环境准备
ü采用NAT方式联网
ü网关地址:192.168.106.2
ü3个服务器节点IP地址:192.168.106.80、192.168.106.81、192.168.106.82 (均为虚拟机)
ü子网掩码:255.255.255.0
ü注意防火墙关闭hadoop相关的一些端口
ü需要下载hadoop2.8.0-src.tar.gz进行源码编译
针对自己Linux版本的hadoop-2.8.0.tar.gz的获取方式:/tototuzuoquan/article/details/72796632(本博文中还是使用官网提供的hadoop-2.8.0.tar.gz进行安装,然后安装过程的错误用自己编译的hadoop-2.8.0.tar.gz中的部分文件进行替换,注意的是下面的安装文件都是从网上下来的hadoop-2.8.0.tar.gz中的内容,唯独用到的紧紧是解压后的hadoop-2.8.0/lib/native,也就是说用编译出来的native替换从网上下载下来的:hadoop-2.8.0/lib/native)
25.1.4服务器系统设置
在整个集群部署过程中需要经过以下几个步骤:
1、修改Linux的hostname,配置后的内容如下(如192.168.106.80机器,配置后的效果如下,同样的配置192.168.106.81,192.168.106.82):
经过以上配置之后,可以通过以下命令在80机器上ping 81,82这些服务器。
设置后的状态为:
ü设置主机名
nhadoop
nhadoop2
nhadoop3
ü配置内网域名映射:
n192.168.106.80 hadoop
n192.168.106.81 hadoop2
n192.168.106.82 hadoop3
配置ssh免密登录(可以參考的网址是:/ab198604/article/details/8250461),每个节点要分别产生公私密钥,参考命令如下:
2、建立hadoop运行账号(3台服务器都配置)
3、安装JDK
ü上传jdk安装包,安装jdk包,这里默认安装是jdk1.8.0_73
ü规划安装目录 /usr/local/java/jdk1.8.0_73
ü解压安装包
ü配置环境变量/etc/profile 然后source /etc/profile
可以看一下配置的/etc/profile的信息:
清除Linux缓存的方式是(在root用户下执行以下命令):
sync
echo 3 > /proc/sys/vm/drop_caches
25.1.6 HADOOP安装部署
可供参考的网址:/docs/r1.0.4/cn/cluster_setup.html(里面介绍了各种参数配置的含义)
参考网址2:/ab198604/article/details/8250461(这里是网上的安装配置方式)
经过以上步骤,准备工作已经完成了,下面开始修改hadoop的配置文件。
ü 下载最新的hadoop-2.8.0.tar.gz,下载地址:/releases.html#Download
ü上传HADOOP安装包,上传位置:
ü规划安装目录 /home/toto/software/hadoop-2.8.0
ü解压安装包 tar -zxvf hadoop-2.8.0.tar.gz
ü修改配置文件 $HADOOP_HOME/etc/hadoop/
最简化配置如下:
[toto@hadoop2 hadoop]$ cd /home/toto/software/hadoop-2.8.0/etc/hadoop
vimhadoop-env.sh
vi core-site.xml
注意:
A: fs.default.name是NameNode的URI。hdfs://主机名:端口/
B: hadoop.tmp.dir:Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其它情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式的命令。
vim hdfs-site.xml
注意:
A: dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
B: dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
C: dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:上面的目录不需要手动创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。
vi mapred-site.xml
告诉是运行在哪个资源调度平台上的,下面的意思是指定yarn为运算资源调度平台,注意在hadoop的包中,它的名字叫做:mapred-site.xml.template,最后要将名字改成mapred-site.xml
[toto@hadoop1 hadoop]$ pwd
/home/toto/software/hadoop-2.8.0/etc/Hadoop
[toto@hadoop1 hadoop]$ mvmapred-site.xml.template mapred-site.xml
vi yarn-site.xml
在yarn-site中要指定老大是谁,这里是hadoop
vi salves(列出哪些作为dataNode,这里把hadoop,hadoop2,hadoop3都变成dataNode)
上面的文件都配置好之后,将上面的文件通过scp命令将hadoop文件拷贝到hadoop2、hadoop3相应的文件夹下。
25.1.7 启动集群
注意,下面的命令都是在hadoop机器下执行的,hadoop可以免密访问hadoop2,hadoop3
初始化HDFS,要先初始化namenode的工作目录(第一次使用的时候要进行的工作,注意这个工作是在hadoop这台机器上进行的)
执行成功的标识是:
启动HDFS (注意:一定要在hadoop机器下,因为hadoop可以免密访问hadoop2,hadoop3)
通过上面的提示,说明hadoop可以启动hadoop2,hadoop3的datanode节点。
启动YARN
yarn的管理界面是:http://hadoop:8088/cluster
注意,如果想要启动namenode,访问地址是:
NameNode提供一个网页版本的访问地址:http://hadoop:50070/dfshealth.html#tab-overview,这个是配置的地址
配置HADOOP的环境变量,进入root用户,编辑/etc/profile命令
vim/etc/profile
最后执行:
source/etc/profile
25.1.8 测试
1、上传文件到HDFS
假设在/home/toto/software有:apache-hive-2.0.0-bin.tar.gz,将apache-hive-2.0.0-bin.tar.gz上传到hdfs下的/hive目录下,创建方式是:
再如案例:从本地上传一个文本文件到hdfs的/wordcount/input目录下
2、运行一个mapreduce程序
在HADOOP安装目录下,运行一个示例mr程序
3、其它
常见错误:
配置文件参数说明:
注意:core-site的说明
hdfs-site的配置说明:
mapred-site中的参数配置的说明:
Hadoop-2.8.0集群搭建 hadoop源码编译和安装 host配置 ssh免密登录 hadoop配置文件中的参数配置参数总结 hadoop集群测试 安装过程中的常见错误