• Centos7 搭建hadoop2.6 HA


     

    用户配置:

    User :root

    Password:toor

    2.创建新用户 student

    Pwd: student

    3.安装virtualbox的增强工具软件

    4.系统默认安装的是openjdk 1.7.0.5

    没有jps等工具可以使用。

    但hadoop应该是可以在openjdk中使用的。

    卸载openjdk,下载安装oracle jdk.

    for i in $(rpm -qa | grep openjdk | grep -v grep)

    do

    echo "Deleting rpm -> "$i

    rpm -e --nodeps $i

    done

    http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

    wget命令在下载的时候不起作用,oracle网站需要认证。所以wget命令失效了。

    手动下载oracle jdk.

    tar -zxvf jdk-7u79-linux-x64.tar.gz 
    
    mkdir /usr/java
    
    mv ./jdk1.7.0_79 /usr/java/
    
    设置java环境变量
    
    JAVA_HOME=/usr/java/jdk1.7.0_79
    
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    PATH=$JAVA_HOME/bin:$CLASSPATH:$PATH
    
    export JAVA_HOME CLASSPATH PATH
    
    vi 如何快速跳转到文档末尾? shift+g
    
    跳转至行尾:$
    
    跳转至行首:0
    
    跳转至文件首:gg
    
    1. 创建hadoop用户组以及用户:

      su 只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径
      su -  不但能切换到管理员权限而且使用管理员登陆脚本和搜索路

      原因是我切换用户的时候命令使用不正确。

      添加Hadoop用户和group

      groupadd hadoop

      useradd hadoop -g hadoop

      配置ssh免密码登录

      ssh-keygen -t rsa -P ''

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

      chmod 600 .ssh/authorized_keys

       

      scp .ssh/id_rsa.pub hadoop@master:/home/hadoop/id_rsa_01.pub

      su
      visudo
      add hadoop to sudo folders
      sudo chkconfig sshd on
      sudo chkconfig sshd status
      sudo service sshd start

    使用root用户把当前hadoop用户添加到sudo权限。

    然后检查sshd服务是否启动,没有启动的话,添加到开机自动启动。并打开sshd服务,然后进行测试。

    ssh localhost

    而且当前设置只是ssh1,ssh2的更安全,命令稍加改动即可。

    2. 更新主机名

    cat /etc/sysconfig/network

    sudo vi /etc/sysconfig/network

    NETWORKING=yes

    NETWORKING_IPV6=no

    HOSTNAME=namenode01

    3.克隆另外三个硬盘:

    vboxmanage clonehd d:hadoophdp_rm.vdi d:hadoophdp_rm2.vdi

    vboxmanage clonehd d:hadoophdp_rm.vdi d:hadoophdp_dn1.vdi

    vboxmanage clonehd d:hadoophdp_rm.vdi d:hadoophdp_dn2.vdi

    创建另外的三个虚拟机

    4.修改hadoop的密码

    Root用户下

    Passwd Hadoop

    5.启动虚拟机

    配置虚拟机的网络地址并更新hosts

    配置为手动配置的IP地址,以防重启后变更。

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.99.100 namenode01

    192.168.99.101 namenode02

    192.168.99.102 datanode01

    192.168.99.103 datanode02

    更新ssh公钥私钥,复制公钥到namenode01

    在namenode01上集成最全的公钥集合,

    然后分发到所有结点。测试免密码访问ssh的效果,保证其能正常访问。

     

    6.关闭防火墙配置

    7.

    在namenode01,datanode01,datanode02上安装zookeeper

    wget http://apache.dataguru.cn/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

    配置zoo.cfg

    datadir

    server信息

    配置环境变量

    vi .bashrc

    export HADOOP_HOME=/usr/hadoop26

    export ZK_HOME=/home/hadoop/zookeeper-3.4.6

    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME

    使环境变量生效:

    Source ~/.bashrc

    启动测试

    ZkServer.sh start

    Jps

    Netstat –an | grep 2181

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

    1、关闭firewall:

    systemctl stop firewalld.service #停止firewall

    systemctl disable firewalld.service #禁止firewall开机启动

    二、关闭SELINUX

    vi /etc/selinux/config

    #SELINUX=enforcing #注释掉

    #SELINUXTYPE=targeted #注释掉 IT网,http://www.it.net.cn

    SELINUX=disabled #增加 Linux学习,http:// linux.it.net.cn

    :wq! #保存退出

    setenforce 0 #使配置立即生效

    通过检查zkServer.sh status的时候可能会发生问题,原因是我们的防火墙规则没有配好,

    为了简便起见,直接关闭防火墙。如上所述。

     

    格式化namenode失败:

    Hadoop namenode –format

    Call From namenode01/192.168.99.100 to namenode01:8485 failed on connection exception: java.net.ConnectException: Connection refused;

    先启动journal node之后再格式化即可。

    由于我们配置了QJM,所以我们需要先启动QJM的服务,启动顺序如下所示:

    1. 进入到DN节点,启动zk的服务:zkServer.sh start,之后可以输入zkServer.sh status查看启动状态,本次我们配置了三个DN节点,会出现一个leader和两个follower。输入jps,会显示启动进程:QuorumPeerMain
    2. NN节点上(选一台即可,这里我选择的是一台预NNA节点),然后启动journalnode服务,命令如下:hadoop-daemons.sh start journalnode。或者单独进入到每个DN输入启动命令:hadoop-daemon.sh start journalnode。输入jps显示启动进程:JournalNode
    3. 接着若是配置后,我们首次启动,需要格式化HDFS,命令如下:hadoop namenode –format
    4. 之后我们需要格式化ZK,命令如下:hdfs zkfc -formatZK
    5. 接着我们启动hdfsyarn,命令如下:start-dfs.shstart-yarn.sh,我们在nna输入jps查看进程,显示如下:DFSZKFailoverControllerNameNodeResourceManager
    6. 接着我们在NNS输入jps查看,发现只有DFSZKFailoverController进程,这里我们需要手动启动NNS上的namenodeResourceManager进程,命令如下:hadoop-daemon.sh start namenodeyarn-daemon.sh start resourcemanager。需要注意的是,在NNS上的yarn-site.xml中,需要配置指向NNS,属性配置为rm2,在NNA中配置的是rm1
    7. 最后我们需要同步NNA节点的元数据,命令如下:hdfs namenode –bootstrapStandby,若执行正常,日志最后显示如下信息
  • 相关阅读:
    美化WebApi,使其统一返回Json格式
    JavaScript函数封装调用
    Visual Studio 编辑器调试在IIS发布的Web程序出现错误的解决
    C#解析多层Json数据
    Python3解析库lxml
    学习使用Django一 安装虚拟环境
    一:(1.1)了解MVC之路由重写
    Python使用selenium模拟点击,进入下一页(三)
    云服务器安装证书
    Python使用selenium模拟点击(二)
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/4657262.html
Copyright © 2020-2023  润新知