hadoop2.6.0安装(2)

2019-04-22 20:14

4.3 配置ssh免密码登陆

参考文章地址:http://blog.csdn.net/ab198604/article/details/8250461

SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数 据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,

想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方

法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免 密码的方法直接远程连入被访问结点,这样将大大提高访问效率。 namenode节点配置免密码登陆其他节点,每个节点都要产生公钥密码,Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

a. 每个节点分别产生密钥 # 提示:

(1):.ssh目录需要755权限,authorized_keys需要644权限;

(2):Linux防火墙开着,hadoop需要开的端口需要添加,或者关掉防火墙; (3):数据节点连不上主服务器还有可能是使用了机器名的缘故,还是使用IP地址比较稳妥。

b. name01(192.168.85.128)主库上面:

namenode主节点hadoop账户创建服务器登陆公私钥: mkdir -p /home/hadoop/.ssh

chown hadoop.hadoop -R /home/hadoop/.ssh chmod 755 /home/hadoop/.ssh su - hadoop

cd /home/hadoop/.ssh

ssh-keygen -t dsa -P '' -f id_dsa

[hadoop@name01 .ssh]$ ssh-keygen -t dsa -P '' -f id_dsa 如果错误执行:setenforce 0

Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

[hadoop@name01 .ssh]$ cat id_dsa.pub >> authorized_keys

data01和data02执行以上相同的操作,生产authorized_keys

c. 构造3个通用的authorized_keys 在name01(192.168.85.128)上操作: su - hadoop

cd /home/hadoop/.ssh

scp hadoop@data01:/home/hadoop/.ssh/id_dsa.pub ./id_dsa.pub.data01 scp hadoop@data02:/home/hadoop/.ssh/id_dsa.pub ./id_dsa.pub.data02

cat id_dsa.pub.data01 >> authorized_keys cat id_dsa.pub.data02 >> authorized_keys

cat authorized_keys

看到authorized_keys文件里面有3行记录,分别代表了访问name01,data01,data02的公用密钥。把这个authorized_keys公钥文件copy到data01和data02上面同一个目录下。

copy文件 authorized_keys,然后通过hadoop远程彼此连接name01、data01、data02就可以免密码

scp authorized_keys hadoop@data01:/home/hadoop/.ssh/ scp authorized_keys hadoop@data02:/home/hadoop/.ssh/

然后分别在name01、data01、data02以hadoop用户执行权限赋予操作 su - hadoop

chmod 600 /home/hadoop/.ssh/authorized_keys chmod 700 -R /home/hadoop/.ssh

测试ssh免秘钥登录,首次连接的时候,需要输入yes,之后就不用输入密码直接可以ssh过去了。

d. 验证name01、data01、data02任何ssh免密码登录 [hadoop@data02 ~]$ ssh name01

Last login: Thu Aug 21 02:38:46 2014 from data02 [hadoop@name01 ~]$ ssh data01

Last login: Thu Aug 21 02:30:35 2014 from localhost.localdomain [hadoop@data01 ~]$ ssh data02

Last login: Thu Aug 21 02:32:57 2014 from localhost.localdomain [hadoop@data02 ~]$ ssh data01

Last login: Thu Aug 21 02:39:55 2014 from name01 [hadoop@data01 ~]$ ssh name01

Last login: Thu Aug 21 02:39:51 2014 from data02 [hadoop@name01 ~]$ ssh data02

Last login: Thu Aug 21 02:39:58 2014 from data01 [hadoop@data02 ~]$

4.4安装部署hadoop环境 4.4.1 java环境准备

root账户下所有节点安装jdk

4.4.2安装hadoop

A.版本2.6.0安装

从本地copy到linux虚拟机桌面

tar zxvf hadoop-2.6.0-x64.tar.gz -C /home/hadoop/src/

B.配置环境变量:

使用root设置环境变量 vi /etc/profile

export HADOOP_HOME=/home/hadoop/src/hadoop-2.6.0 export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60/

export PATH=/home/hadoop/src/hadoop-2.6.0/bin:/home/hadoop/src/hadoop-2.6.0/sbin:$PATH

source /etc/profile

4.4.3 hadoop配置文件

hadoop群集涉及配置文件:hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-env.sh slaves yarn-site.xml 涉及到的配置文件有7个:

cp /home/hadoop/src/hadoop-2.6.0/etc/hadoop hadoop-env.sh yarn-env.sh slaves

core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml

a.修改hadoop-env.sh配置: vim hadoop-env.sh

增加java环境变量(将注释去掉,添加jdk的路径) export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60

b.修改yarn-env.sh配置: vim yarn-env.sh

修改java_home值为 export JAVA_HOME=\

c.修改slaves配置,写入所有从节点主机名: vim slaves data01 data02

d.修改core-site.xml配置文件:

e.修改hdfs-site.xml配置: 创建相关目录

mkdir -p /data/hadoop/name

chown -R hadoop.hadoop /data/hadoop/name

mkdir -p /data/hadoop/data

chown -R hadoop.hadoop /data/hadoop/data

f.修改mapred-site.xml配置

#这个文件不存在,需要自己VIM创建

g.修改yarn-site.xml配置:

所有节点采用相同的配置文件和安装目录,直接整个目录copy过去安装把name01上面的所有hadoop目录copy到data02上面去:

scp -r /home/hadoop/* hadoop@data02:/home/hadoop/ scp -r /data/hadoop/* hadoop@data02:/data/hadoop/

把name01上面的所有hadoop目录copy到data01上面去: scp -r /home/hadoop/* hadoop@data01:/home/hadoop/ scp -r /data/hadoop/* hadoop@data01:/data/hadoop/

4.4.4格式化文件系统

在name01主库上面执行 hadoop namenode -format操作,格式化hdfs文件系统。

注意:上面只要出现“successfully formatted”就表示成功了,只在第一次启动的时候格式化,

不要每次启动都格式化。理解为我们新买了块移动硬盘,使用之前总要格式化硬盘。如果真的有必要再次格式化,请先把“$HADOOP_HOME/tmp”目录下的文件全部删除。

读者可以自己观察目录”$HADOOP_HOME/tmp”在格式化前后的变化情况。格式化操作很少有出现失败的情况。如果真出现了,请检查配置是否正确。

4.5讲述hadoop 启动的三种方式 4.5.1第一种,一次性全部启动

执行start-all.sh 启动hadoop,观察控制台的输出,可以看到正在启动进程,分别是namenode、datanode、secondarynamenode、jobtracker、tasktracker,一共5 个,待执行完毕后,并不意味着这5 个进程成功启动,上面仅仅表示系统正在启动进程而已。我们使用jdk 的命令jps 查看进程是否已经正确启动。执行以下jps,如果看到了这5 个进程,说明hadoop 真的启动成功了。如果缺少一个或者多个,那就进入到“Hadoop的常见启动错误”章节寻找原因了。

停止应用:

/home/hadoop/src/hadoop-2.6.0/sbin/stop-all.sh

启动应用:

/home/hadoop/src/hadoop-2.6.0/sbin/start-all.sh

检查后台各个节点运行的hadoop进程

[hadoop@name01 hadoop]$ jps

[hadoop@data01 ~]# jps

通过网站查看hadoop集群情况

进入http://192.168.52.128:50070/dfshealth.html#tab-overview,看集群基本信息,如下图所示:

4.5.2第二种,分别启动HDFS 和yarn

执行命令start-dfs.sh,是单独启动hdfs。执行完该命令后,通过jps 能够看到NameNode、DataNode、SecondaryNameNode 三个进程启动了,该命令适合于只执行hdfs 存储不使用yarn做资源管理。关闭的命令就是stop-dfs.sh 了。

3.4.3.1 先启动HDFS

[hadoop@name01 sbin]$ jps 3687 Jps

[hadoop@name01 sbin]$ pwd

/home/hadoop/src/hadoop-2.6.0/sbin [hadoop@name01 sbin]$ start-dfs.sh Starting namenodes on [name01] name01: starting namenode, logging to /home/hadoop/src/hadoop-2.6.0/logs/hadoop-hadoop-namenode-name01.out data01: starting datanode, logging to /home/hadoop/src/hadoop-2.6.0/logs/hadoop-hadoop-datanode-data01.out data02: starting datanode, logging to /home/hadoop/src/hadoop-2.6.0/logs/hadoop-hadoop-datanode-data02.out Starting secondary namenodes [name01] name01: starting secondarynamenode, logging to /home/hadoop/src/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-name01.out

在name01节点下,查看后台的jps进程如下: [hadoop@name01 sbin]$ jps 4081 Jps

3800 NameNode

3977 SecondaryNameNode [hadoop@name01 sbin]$ [root@hadoop03 src]# jps 13894 Jps


hadoop2.6.0安装(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011年湖南省永州市中考数学试题(无答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: