Hadoop集群搭建

来源:互联网 发布:思科网络大赛 编辑:程序博客网 时间:2024/06/08 17:17

Hadoop集群搭建

整理自:国家信息中心大数据创新创业(成都)基地
——2017年6月


01 集群介绍

HDFS集群:负责海量数据的存储,集群中的角色主要有NameNode / DataNode。

YARN集群:负责海量数据运算时的资源调度,集群中的角色主要有ResourceManager /NodeManager。

mapreduce是一个应用程序开发包,编程模型。


本集群搭建案例,以4节点为例进行搭建,角色分配如下:

节点 角色分配 hdp-node-01 NameNode、SecondaryNameNode、ResourceManager hdp-node-02 DataNode、NodeManager hdp-node-03 DataNode、NodeManager hdp-node-04 DataNode、NodeManager

Namenode:主节点,维护和管理数据的元数据。(副本数有多少个,路径,名称,大小)

SecondaryNameNode:对NameNode里面的元数据进行备份。

DataNode:将数据写入集群里的磁盘,读数据给客户端,并且向NameNode汇报信息(通信)。

ResourceManager:资源管理器,分配运算资源。

NodeManager:是ResourceManager在数据节点上的代理,负责创建容器,将本机上的信息发送给ResourceManager。

建议:先了解集群与节点的基础知识,如每个节点创建在不同的虚拟机上等。


02 服务器准备

本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本:

  • Vmware 11.0
  • Centos 6.6 64bit
  • JDK1.8linux 64bit

03 NAT网络参数设置

  • 采用NAT方式联网

    编辑—虚拟网络编辑器—设置子网IP(网关地址:192.168.126.0)、子网掩码:255.255.255.0—选择NAT模式、点击NAT设置—网关设置为192.168.126.2

  • 4个服务器节点IP地址规划:(不需要操作)

节点 IP地址 hdp-node-01 192.168.126.101 hdp-node-02 192.168.126.102 hdp-node-03 192.168.126.103 hdp-node-04 192.168.126.104
  • 服务器网络设置(以设置hdp-node-01为例,其他节点按照上表的规划设置)

1、修改主机名

vi /etc/sysconfig/network

NETWORKING=yesHOSTNAME= hdp-node-01

(其余节点设置为HOSTNAME= hdp-node-0X)

2、修改IP地址

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

DEVICE=eth0TYPE=EthernetONBOOT=yes     #是否开机启用BOOTPROTO=static   #ip地址设置为静态IPADDR=192.168.126.101NETMASK=255.255.255.0GATEWAY=192.168.126.2// 这里也可以配置DNS, 这里配置了后面就不用配置了DNS1=61.139.2.69DNS2=114.114.114.114

service network restart

(必须要做,不然无法更新导致出错)

3、修改IP地址和内网主机名的映射关系(只在node01上)

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.126.101 hdp-node-01192.168.126.102 hdp-node-02192.168.126.103 hdp-node-03192.168.126.104 hdp-node-04

4、关闭iptables,并设置其开机不启动

service iptables stop

chkconfig iptables off

5、配置DNS并验证配置是否成功

vi /etc/resolv.conf

nameserver 61.139.2.69nameserver 114.114.114.114

ping www.baidu.com

6、安装scp软件

yum install openssh-clients

7、重启虚拟机

reboot

——————按照上述步骤,分别配置剩下三个节点——————

安装上传下载工具(rz上传sz下载)

yum install -y lrzsz

04 服务器系统设置(可选)

  • 同步时间

    date -s “2017 -6-19 09:12:30”

  • 配置ssh免密登陆


05 JDK环境安装(node01上)

  • 上传jdk安装包到linux任意路径(此处为/usr/local),即复制安装包至虚拟机:

    /usr/local

  • 创建jdk安装目录/usr/local/apps:

    mkdir操作

  • 解压jdk压缩安装包至/usr/local/apps:

    tar -zxvf /usr/local/jdk-7u79-linux-x64.tar.gz -C /usr/local/apps/

  • 重命名解压后的安装包:

    mv /usr/local/apps/jdk1.7.0_79/ /usr/local/apps/jdk1.7

  • 配置系统环境变量 /etc/profile:

    vi /etc/profile

    在文件最后添加:

    export JAVA_HOME=/usr/local/apps/jdk1.7export PATH=$PATH:$JAVA_HOME/bin

    按esc进入正常模式后,输入:wq保存退出。

  • 刷新环境变量,否则不会及时生效:

    source /etc/profile

  • 查看更新环境变量是否成功:

    java -version


06 Hadoop 安装部署(node01上)

  • 上传HADOOP安装压缩包到Linux任意目录(此处为/usr/local):

    /usr/local

  • 规划HADOOP安装目录:

    /usr/local/apps/

  • 解压安装包到apps目录下:

    tar -zxvf /usr/local/hadoop-2.6.5.tar.gz -C /usr/local/apps/

  • 修改配置文件:
    hadoop的所有的配置文件都存放在HADOOP_HOME/etc/hadoop/下,其中HADOOP_HOME指代hadoop压缩包解压后形成的主目录,在这里是/usr/local/apps/hadoop-2.6.5

    最简化配置如下:

    1、配置java运行环境(hadoop是纯java语言开发的)

    vi hadoop-env.sh

    2、运行时配置,有4个文件

    vi core-site.xml

    (主要配置hdfs的资源访问路径,和hadoop运行时产生的临时数据)

    # The java implementation to use.export JAVA_HOME=/usr/local/apps/jdk1.7

    vihdfs-site.xml

    (可以不用配置,有很多默认的值)

    <configuration><property><name>fs.defaultFS</name><value>hdfs://hdp-node-01:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/apps/hadoop-2.6.5/hdpdata</value></property></configuration><configuration><property><name>dfs.replication</name><value>3</value></property></configuration>

    重命名:mvmapred-site.xml.template mapred-site.xml

    vi mapred-site.xml

    <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

    vi yarn-site.xml

    <configuration><property><name>yarn.resourcemanager.hostname</name><value>hdp-node-01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

    3、配置HADOOP环境变量(方便在任意目录执行hadoop命令(可选))

    vi /etc/profile

    在JAVA_HOME后面添加HADOOP_HOME,并在原有的PATH后面添加hadoop命令path,修改后如下:

    export JAVA_HOME=/usr/local/apps/jdk1.7export HADOOP_HOME=/usr/local/apps/hadoop-2.6.5export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    3.1 把配置好的hadoop安装包,jdk安装包封发到其他节点:

    scp -r /usr/local/apps hdp-node-02:/usr/local/

    scp -r /usr/local/apps hdp-node-03:/usr/local/

    scp -r /usr/local/apps hdp-node-04:/usr/local/

    3.2 把/etc/profile环境变量文件,/etc/hosts主机ip映射文件分发到2,3,4节点

    scp /etc/profile /etc/hosts hdp-node-02:/etc/

    scp /etc/profile /etc/hosts hdp-node-03:/etc/

    scp /etc/profile /etc/hosts hdp-node-04:/etc/

    3.3 到各个节点刷新环境变量,验证安装包,jdk和hadoop环境变量都已经配置完成

    java –version

    hadoop fs -help

    3.4 配置主从节点,每个节点都要配置

    cd /usr/local/apps/hadoop-2.6.5/etc/hadoop

    vim slaves

    localhosthdp-node-02hdp-node-03(换行)

注:root用户下配置各种环境变量:

删除旧的公钥:rm -rf .ssh/know_hosts

免密登陆:ssh-copy-id root@hdp-node-03

进入远程:ssh root@hdp-node-02


07 启动集群

  • 分布启动HDFS集群

    1、初始化[^node 01]

    hadoopnamenode -format

    2、启动namenode[^node 01]

    ​hadoop-daemon.sh start namenode

    3、启动datanode[^node 02、03、04]

    hadoop-daemon.sh start datanode

  • 批量启动HDFS集群[^node 01]

    vi /usr/local/apps/hadoop-2.6.5/etc/hadoop/slaves

    1、按照规划配置,添加从节点主机名:

    hdp-node-02

    hdp-node-03

    hdp-node-04

    2、配置免密码登陆,从启动节点到其他节点:

    ​ssh-keygen

    ​ssh-copy-id hdp-node-01

    ​ssh-copy-id hdp-node-02

    ​ssh-copy-id hdp-node-03

    ​ssh-copy-id hdp-node-04

    3、批量启动yarn集群,hdp-node-01(注:namenode,resourcemanager都是主节点,也称管理节点,采用批量启动脚本启动yarn集群)

    ​start-dfs.sh

    start-yarn.sh


08 测试

​ ——上传文件到HDFS

从本地上传一个文本文件到hdfs的/wordcount/input目录下

[HADOOP@hdp-node-01 ~]$ HADOOP fs -mkdir -p /wordcount/input

[HADOOP@hdp-node-01 ~]$ HADOOP fs -put /home/HADOOP/somewords.txt /wordcount/input

原创粉丝点击