导航

hadoop环境配置(2)--java环境配置,ssh设置

Posted on 2011-11-20 14:57  清风无尘  阅读(634)  评论(0)    收藏  举报

一 本人遇到一些fedora的基本问题

       1.sudo -s这个命令最初是不能使用。(命令行操作)

              1)使用$ su -进入root权限($:代表是在用户操作态,#:表示root态。这是不用写的)

              2) 给/etc/sudoers文件赋予写权限-- 操作代码 # chmod u+w /etc/sudoers

              3)编辑/etc/sudoers-- 操作代码 # gedit /etc/sudoers

              4)在sudoers文件中找到root ALL = (ALL) ALL,在下一行中添加hadoop ALL = (ALL) ALL (hadoop是我的用户名)

              5)赋权限-- 操作代码 # chmod 0440 /etc/sudoers

              6)退出-- 操作代码 # exit

       2.网络配置(由于我的机器是封闭网络中,所以没有采用自动获取)

       step1:

 #su
#passwd:*********

step2:

              #cd /etc/sysconfig/network-scripts/
#gedit ifcfg-eth0

       将里面的内容修改如下: 
            

1 TYPE=Ethernet
2 BOOTPROTO=static//不是dhcp或者none!!
3 IPV6INIT=no
4 NAME=system eth0//名字可以随便取的
5 ONBOOT=yes
6 HWADDR=00:E0:B0:E2:B2:2C//你电脑的硬件地址
7 USERCTL=yes
8 PEERDNS=yes
9 NM_CONTROLLED=yes//这个要注意,必须是yes
10 NETMASK=255.255.254.0//网络掩码
11 IPADDR=**.**.**.**//此处写上你的ip
12 DNS1=211.**.**.**//DNS
13 GATEWAY=122.204.84.254//网关

   step3:
  

            #/sbin/service network restart

二 java环境配置

1.下载linux版本的jdk,我选择的是rpm的文件。

2.进入root权限,执行# rpm -ivh /home/hadoop/Download/jdk.rpm 后面这个是jdk的路径

3.还是在root权限中,在/etc/profile文件中添加以下:

4.由于fedora里面自带openjdk,所以还需要在root权限下执行:

#cd usr/bin
#ln -s -f /usr/java/jdk/jre/bin/java
#ln -s -f /java/jdk/bin/javac

 

 5.测试

  输入$java –version,如果现在是你安装的jdk版本,则表示安装成功

三.ssh配置

  ssh远程登陆的时候命令是$ssh 用户名 @ ip地址。如果使用命令ssh 192.168.1.1,此时默认使用与此时主机一样的用户登陆。而使用hadoop时,默认使用主机的用户名登陆,所以取一样的用户名在登陆时免掉很多麻烦。至于解决办法,哪位有答案的,望赐教。

1.修改三个节点的host文件(三个节点相同):

  sudo vi /etc/hosts

  加入以下三行:

  192.168.1.90 master

  192.168.1.91 slave1

  192.168.1.92 slave2

 

  2.在三个节点的hadoop用户目录下生成公钥/私钥对:

  ssh-keygen -t rsa

  每个节点都会生成.ssh目录(用ls -al可以查看到隐藏文件和文件属性)

  cd .ssh

  ls -al

  可以看到下列三个文件(分别代表私钥、公钥、已知主机):

  id_rsa id_rsa.pub known_hosts

  3.在每个节点的~/.ssh目录下新建authorized_keys文件:

  touch authorized_keys

  4.将每个节点的公钥都是用scp命令(安全拷贝)传送到另外两个节点:

  master结点的命令为:

 

 scp -r id_rsa.pub hadoop@slave1:~/.ssh/pubkey_master

  scp -r id_rsa.pub hadoop@slave2:~/.ssh/pubkey_master

  slave1结点的命令为:

  scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slave1

  scp -r id_rsa.pub hadoop@slave2:~/.ssh/pubkey_slave1

  slave2结点的命令为:

 

  scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slave2

  scp -r id_rsa.pub hadoop@slave1:~/.ssh/pubkey_slave2

 

  5.在每个结点的~/.ssh目录下,将另外两个节点传过来的公钥文件的内容附加到本目录下的authorized_keys文件中,并将authorized_keys文件的权限改为600:

  master结点命令为:

  cat pubkey_slave1>>authorized_keys

  cat pubkey_slave2>>authorized_keys

  chmod 600 authorized_keys

  slave1结点命令为:

  cat pubkey_master>>authorized_keys

  cat pubkey_slave2>>authorized_keys

  chmod 600 authorized_keys

  slave2结点命令为:

  cat pubkey_master>>authorized_keys

  cat pubkey_slave1>>authorized_keys

  chmod 600 authorized_keys

 

  至此SSH配置完毕,三个结点可以实现使用ssh不需要密码的相互访问。可以用以下代码测试:

  在master上:ssh hadoop@slave1(ssh 用户名@主机名)