zoukankan      html  css  js  c++  java
  • hadoop 伪分布模式的配置

    转自 http://blog.csdn.net/zhaogezhuoyuezhao/article/details/7328313

    centos系统自带ssh,版本为openssh4.3

    免密码ssh设置(合适的权限很重要)

    登入hadoop账户,建立ssh文件夹    mkdir .ssh

    现在确认能否不输入口令就用ssh登录本机:
    ssh namenode

    如果不输入口令就无法用ssh登陆namenode,执行下面的命令:
    ssh-keygen -t rsa –f ~/.ssh/id_rsa 

    回车设置密钥,可以设置一个密钥,也可以设置为空密钥。但是安全起见,设置密钥为hadoop,下面利用ssh-agent来设置免密钥登陆集群中其他机器。

    私钥放在由-f选项指定的文件之中,例如~/.ssh/id_rsa。存放公钥的文件名称与私钥类似,但是以’.pub’为后缀,本例为~/.ssh/id_rsa.pub

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

    ssh密钥存放在namenode机器的~/.ssh/authorized_keys文件中。

    再用scp命令将authorized_keysid_rsa.pub分发到其它机器的相同文件夹下,例如,将authorized_keys文件分发给datanode1机器的.ssh文件夹的命令为:

    $scp ~/.ssh/id_dsa.pub  hadoop@datanode1:/home/hadoop/.ssh

    到datanode1机器上  cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    理论上要将公钥发放给各机器然后再各个机器上生成authorized_keys文件,实际上直接分发authorized_keys文件也可以

    然后赋予文件权限,赋予各机器的.ssh文件夹权限为711authorized_keys的权限为644。过高的权限不能通过ssh-add命令,过低的权限无法实现免密码登录。

    添加ssh-agent

    $eval `ssh-agent -s` 注意这里是反引号

    输入命令

    $ssh-add,输入id_rsa私钥的密码。

    为了使ssh-agent自动运行,将它写到profile中,在/etc/profile.d下新建ssh-agent.sh文件:
    $sudo gedit /etc/profile.d/ssh-agent.sh 

    将以下语句加入

    #!/bin/sh
    if [ -f ~/.agent.env ]; then
            . ~/.agent.env >/dev/null
            if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
                    echo "Stale agent file found. Spawning new agent..."
                    eval `ssh-agent |tee ~/.agent.env`
                    ssh-add
            fi
    else
            echo "Starting ssh-agent..."
            eval `ssh-agent |tee ~/.agent.env`
            ssh-add
    fi

    这样就不会生成太多的ssh-agent程序,而且支持GUI环境。打开终端:
    Stale agent file found. Spawning new agent...
    Agent pid 2543
    Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
    添加了新的密钥。

    这一切都操作完了后

    ssh datanode1

    实验是否已经可以免密码登录datanode1

    对于jobtracker,由于也作为master,所以可以利用相同的密钥也存放在authorized_keys的文件中,而将公钥分发给各机器后,添加到authorized_keys中,分发的机器名存放在know_hosts文件下,这样也可以通过jobtracker机器免密钥登录集群的其他机器。

  • 相关阅读:
    跳出语句 break continue
    循环语句 for循环、while循环、do while循环
    选择语句
    判断语句
    方法入门
    ++运算与--运算
    js面向对象的几种方式----工厂模式、构造函数模式、原型模式
    JavaScript This 的六道坎
    前端必备,十大热门的 JavaScript 框架和库
    localStorage、sessionStorage详解,以及storage事件使用
  • 原文地址:https://www.cnblogs.com/tlm1992/p/3398313.html
Copyright © 2011-2022 走看看