Hadoop集群环境搭建

女爷i 2022-03-26 05:47 465阅读 0赞

Hadoop集群环境搭建

  • 本机基本配置
    • 网卡配置
    • 配置主机名
    • 关闭防火墙
    • 安装ssh客户端
  • 克隆虚拟机
    • 删除一块网卡
    • 更改ip
    • 修改主机名
  • hosts映射
  • 免密登陆
  • 安装jdk
  • 安装Hadoop集群
    • 策划,解压
    • 配置hadoop-env.sh
    • 配置core-site.xml
    • 配置hdfs-site.xml
    • 配置mapred-site.xml
    • 配置yarn-site.xml
    • 配置slaves
    • Hadoop环境变量
    • 把配置好的文件发送给集群的其他节点
  • 启动集群
    • 初始化集群
    • 启动HDFS集群
    • 启动yarn集群
  • 附录
    • 使用到的网站
    • 免密登陆脚本
    • ssh客户端安装有问题
    • 集群启动问题

本机基本配置

网卡配置

编辑如下文件

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

内容

  1. DEVICE=eth0
  2. TYPE=Ethernet
  3. ONBOOT=yes
  4. NM_CONTROLLED=yes
  5. BOOTPROTO=static
  6. IPADDR=192.168.200.130
  7. NETMASK=255.255.255.0
  8. GATEWAY=192.168.200.2
  9. DNS1=192.168.200.2
  10. DNS2=114.114.114.114

配置主机名

编辑文件

  1. vi /etc/sysconfig/network

内容为

  1. NETWORKING=yes
  2. HASTNAME=hadoop01

关闭防火墙

单次关闭和永久关闭

  1. service iptables stop
  2. chkconfig iptables off

安装ssh客户端

  1. yum install -y openssh-clients

克隆虚拟机

删除一块网卡

  1. vi /etc/udev/rules.d/70-presistent-net.rules

删除网卡

更改ip

编辑如下文件

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

更改ip

  1. DEVICE=eth0
  2. TYPE=Ethernet
  3. ONBOOT=yes
  4. NM_CONTROLLED=yes
  5. BOOTPROTO=static
  6. IPADDR=192.168.200.131
  7. NETMASK=255.255.255.0
  8. GATEWAY=192.168.200.2
  9. DNS1=192.168.200.2
  10. DNS2=114.114.114.114

修改主机名

  1. vi /etc/sysconfig/network

内容

  1. NETWORKING=yes
  2. HOSTNAME=hadoop02

重启电脑,使网卡生效
其他需要克隆的机器只需要根据上述操作来来一遍就ok了。

hosts映射

linux必须做,windows为了使用方便也可以配置

  1. 192.168.200.160 hadoop01
  2. 192.168.200.161 hadoop02
  3. 192.168.200.162 hadoop03

免密登陆

可以使用
产生公钥和私钥

  1. ssh-keygen -t rsa

把公钥发送给需要做免密的机器

  1. ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip) 需要给自己发一个
  2. ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip) 其他的机器发

可以使用免密登陆脚本做免密登陆,免密登陆见附录

安装jdk

  1. 解压文件到安装目录

    tar -zxvf /root/jdk-8u102-linux-x64.tar.gz -C /usr/local/

  2. 配置环境变量

    vi /etc/profile

内容:

  1. export JAVA_HOME=/usr/local/jdk1.8.0_102
  2. export PATH=$PATH:$JAVA_HOME/bin
  1. 使变量生效

    source /etc/profile

安装Hadoop集群

策划,解压

解压:

  1. tar -zxvf hadoop-2.7.3.tgz -C /usr/local/

配置hadoop-env.sh

  1. # The java implementation to use.
  2. export JAVA_HOME=/usr/local/jdk1.8.0_102

配置core-site.xml

配置Namenode在哪里 ,临时文件存储在哪里

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://bigdata3901:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/usr/local/hadoop-2.7.3/tmp</value>
  9. </property>
  10. </configuration>

配置hdfs-site.xml

配置namenode,datanode数据的本地存放位置,副本数量的多少,secondary的http地址

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.name.dir</name>
  4. <value>/usr/local/hadoop-2.7.3/data/name</value>
  5. </property>
  6. <property>
  7. <name>dfs.datanode.data.dir</name>
  8. <value>/usr/local/hadoop-2.7.3/data/data</value>
  9. </property>
  10. <property>
  11. <name>dfs.replication</name>
  12. <value>3</value>
  13. </property>
  14. <property>
  15. <name>dfs.secondary.http.address</name>
  16. <value>bigdata3901:50090</value>
  17. </property>
  18. </configuration>

配置mapred-site.xml

首先把mapred-site.xml.tmp* 这个文件进行改名,改为 mapred-site.xml。

  1. cp mapred-site.xml.tmp* mapred-site.xml

主要配置提交任务的方式,提交到yarn集群,默认是本地运行。

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

配置yarn-site.xml

主要是配置了yarn的老大在哪里,和一个map端程序结束的一个辅助服务开启。这里也可以加上每个小弟的资源数量,每个小弟的资源可以配置成不一样的。

  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>bigdata3901</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. </configuration>

配置slaves

这里是配置小弟有哪些,这里配置域名或者ip,不能都配置

  1. bigdata3901
  2. bigdata3902
  3. bigdata3903

Hadoop环境变量

这个不是必须的,只是为了以后的操作方便。

  1. export HADOOP_HOME=/usr/local/hadoop-2.7.3
  2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

把配置好的文件发送给集群的其他节点

把第一台安装好的jdk和hadoop以及配置文件发送给另外两台,主要发送的文件有下面几个:

  • hosts文件
  • jdk安装后的文件夹
  • hadoop安装后的文件夹
  • /etc/profile 文件
    发送的命令如下所示

    eg:scp -r /usr/local/jdk1.8.0_102 hadoop02:/usr/local/

启动集群

初始化集群

需要对namenode节点进行格式化,格式化会在配置的namenode目录下产生一些关于集群的id(用于集群的标示)等信息,只需要在namenode上操作一次
命令:

  1. bin/hadoop namenode -format

启动HDFS集群

启动命令:

  1. sbin/start-dfs.sh

启动后可以使用jps查看下相关进程是否启动。

  • 在namenode节点上会有namenode进程
  • 在datanode节点上会有datanode进程
  • secondaryNameNode也会在配置的节点上启动
    也可以通过网页来查看是否启动成功(namenode的50070端口的web页面):
    HDFS启动

启动yarn集群

启动命令:

  1. sbin/start-yarn.sh

启动后可以使用jps命令来查看相关进程的启动情况,

  • yarn老大上启动了ResourceManeger进程
  • yarn小弟上启动了NodeManeger进程
    可以通过网页查看启动的情况(resourceManeger节点的8088端口的web页面):
    YARN启动

附录

使用到的网站

  • hadoop安装包的下载位置是:Hadoop以及生态圈的组件安装下载地址
  • jdk下载位置是:jdk所有版本下载地址

免密登陆脚本

  1. #!/bin/bash
  2. #yum安装expect
  3. yum -y install expect
  4. #PWD_1是登陆密码,可以自己设定
  5. PWD_1=123456
  6. ips=$(cat /etc/hosts |grep -v "::" | grep -v "127.0.0.1")
  7. key_generate() {
  8. expect -c "set timeout -1; spawn ssh-keygen -t rsa; expect { {Enter file in which to save the key*} {send -- \r;exp_continue} {Enter passphrase*} {send -- \r;exp_continue} {Enter same passphrase again:} {send -- \r;exp_continue} {Overwrite (y/n)*} {send -- n\r;exp_continue} eof {exit 0;} };"
  9. }
  10. auto_ssh_copy_id () {
  11. expect -c "set timeout -1; spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@$1; expect { {Are you sure you want to continue connecting *} {send -- yes\r;exp_continue;} {*password:} {send -- $2\r;exp_continue;} eof {exit 0;} };"
  12. }
  13. # rm -rf ~/.ssh
  14. key_generate
  15. for ip in $ips
  16. do
  17. auto_ssh_copy_id $ip $PWD_1
  18. done

ssh客户端安装有问题

执行免密登陆脚本的时候出现如下问题的:
免密登陆脚本出错
原因:ssh客户端没有安装好,卸载重新安装就可以了(先一出,然后再clean下,然后再安装)。

  1. yum remove -y openssh-clients
  2. yum clean all
  3. yum install -y openssh-clients

集群启动问题

集群启动问题多看log日志,日志的位置在安装目录下面的logs里面,一定要勇于看日志。


本文由鹏鹏出品

更多文章请访问韩利鹏的博客

发表评论

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

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

相关阅读

    相关 Hadoop环境

    1.准备Linux环境(如果是学生的话建议去买一台腾讯云的主机,学生购机每月1元,省去了好多麻烦事) 1.0点击VMware快捷方式,右键打开文件所在位