2016.09.23 完成了itcast的 Hadoop第一天课程视频。内容基本如该博客所示
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
Hadoop模式:
本地模式:只能其一个reduce和一个map,用于调试
伪分布式模式:通过一台机器模拟分布式,在学习时使用。验证逻辑是否正确
集群模式:工作的模式,有几百上千台机器。
linux环境配置
关闭防火墙
若是对外网提供的服务是绝对不能关闭防火墙的。而Hadoop一般是公司内部使用,有多台节点,且之间需要通信,此时若防火前将通信的端口屏蔽则无法访问,故为了省事选择关闭防火墙。
修改IP:我指定Ip为:192.168.8.88
为了避免每次启动机器IP会随机变化的请框
设置hostname,这里我命名为hadoop01
为每台机器设置一个名字,若出现问题可以方便定位到机器在哪,且
主机名与ip在ETC/hosts下进行映射。
/etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.8.88 hadoop01
192.168.8.99 hadoop02
安装jdk
安装Hadoop,并测试
1. 启动HDFS和yarn
运行 $HADOOP_HOME/sbin/start-all.sh 因为当前只是一台机器上安装的伪分布式,所以一次性启动所有服务,包括HDFS和yarn,输入几次“yes”和root密码启动成功之后,
2. 关闭时使用
$HADOOP_HOME/sbin/stop-all.sh
注意:在hadoop2.x中推荐先调用
start-dfs.sh后调用
start-yarn.sh ,来启动任务
3. 输入:
jps查看显示当前Hadoop进程信息:如果显示如下则表示之前的额配置成功了:
注jps是java的命令(使用which jps查看jps脚本所在目录 )
设置ssh自动登录,
ssh即 安全的shell
第七步:SSH免登录
如上,之前开启hadoop时多次输入yes和root密码很麻烦,而且这仅仅只是一台机器,若为成百上千台机器时,那将会是一个巨大的工作量。下面我们来设置,SSh免密码登陆,1】情况一: 使用ssh登陆本身系统时要求输入密码。例如:ssh hadoop01 。hadoop01为当前机器的名字,当然也可直接使用Ip地址情况二:当前虚拟机节点(192.168.8.88 )向192,168.8.99的机器发送一个命令,使192,168.8.99机器在根目录下创建一个文件ssh 192.168.8.99 mkdir /test ,此时会让输入8.99的密码。至此可以看出来为了安全当使用ssh协议连接其他机器时,必须输入对方系统的密码,即使是使用ssh连接自己本身也需要密码。2】对于情况一,即实现自身节点的SSH免登陆配置1) cd ~/.ssh :进入到~目录下有一个.ssh的目录: 其中只有一个known_hosts文件2) ssh-keygen -t rsa 生成秘钥,四个回车,之后会在~/.ssh目录下会生成两个文件 一个公钥(id_rsa.pub),一个私钥(id_rsa),其中为一堆字符串。要实现登陆本系统不需要输入密码需要将公钥传给自己系统已认证的钥匙中(即放到authorized_keys 中 ),实现免登陆自己。cp id_rsa.pub ~/.ssh/authorized_keys 此时~/.ssh目录下会生成authorized_keys文件,ssh hadoop01 ;现在再次使用ssh登陆本身系统将不用输密码:且此时在使用sbin/start-all.sh启动hadoop将不再要求输入密码,可以直接启动。3)对于情况二:实现对其他节点的SSH免登陆;只需将当前节点上的公钥的内容拷贝到想免登陆的机器上
ssh-copy-id hadoop02 (将我当前的公钥发送给hadoop02,因为我想免登陆到hadoop02)
例如:192.168.8.88免密码登陆到192.168.8.99 ,将192.168.8.88的公钥拷给192.168.8.99,注意这里是谁将自身公钥拷给谁。此时在192.168.8.88上运行如下指令:ssh-copy-id 192.168.8.99 ,192.168.8.88将自己的公钥给对方(192.168.8.99), 第一次发送时需要输入对方的密码,之后就可以免登陆到对方(192.168.8.99)系统。总结:
1)现在自己机器上生成一个公钥和一个私钥,ssh-keygen -t rsa2)将自己的公钥发送给想要登陆的机器,ssh-copy-id 目标节点的Ip或主机名原理如下图:
-
顶
- 1
-
踩
Hadoop模式:
本地模式:只能其一个reduce和一个map,用于调试
伪分布式模式:通过一台机器模拟分布式,在学习时使用。验证逻辑是否正确
集群模式:工作的模式,有几百上千台机器。