Hadoop运行环境搭建

本文详细介绍了如何配置SSH实现Hadoop的无密码登录,包括生成SSH密钥对、设置授权文件权限等步骤。接着,文章阐述了Hadoop的安装过程,包括解压、移动安装目录、设置环境变量等。最后,提到了Hadoop的三种运行模式:独立模式、单机模式(伪分布)和全分布模式,并强调了独立模式在调试MapReduce程序时的便利性。
摘要由CSDN通过智能技术生成

配置SSH

因为hadoop的启动运行,需要用到ssh登陆,为了避免每次都输入密码,可以设置ssh免密码登陆。
首先测试本机的ssh是否安装,以及ssh服务是否正常启动。当前登陆用户为前面创建的hadoop用户,在控制台下执行如下命令:
ssh localhost
一般会提示输入hadoop用户密码,如果输入正确密码后,显示登陆成功,表示ssh一切正常。执行exit命令可以退出ssh。
这时我们可以通过如下的设置来达到ssh无密码登陆。
1、用hadoop用户登陆后,执行如下命令
ssh-keygen -t rsa -P “”
会出现各种提示,一路回车,如果提示是否覆盖已存在的文件,选择覆盖。上述命令会生成一对公钥/私钥,私钥存在 ~/.ssh/id_rsa文件中,公钥存在~/.ssh/id_rsa.pub文件中。~是hadoop用户的主目录,即/home/hadoop目录。

2、要想用ssh无密码登陆机器,需要确保公钥存放在用户打算连接的所有机器的~/.ssh/authorized_keys文件中。因为我们是登陆本机,执行下面命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
上面linux命令是将 ~/.ssh/id_rsa.pub 文件中的内容添加到~/.ssh/authorized_keys文件的后面,如果~/.ssh/authorized_keys文件不存在,会新建该文件。

3、设置权限,因为SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制,执行如下命令:
sudo chmod 700 /home/hadoop/.ssh
sudo chmod 600 /home/hadoop/.ssh/authorized_keys
说明:如果当前用户是hadoop用户,可能没有执行chmod的权限,所以加上sudo命令。

4、测试 ssh localhost
如果上面命令不需要输入密码,则说明设置成功

hadoop安装

1、解压文件,执行如下命令
tar –zxvf hadoop-2.7.6.tar.gz
上述命令会生成一个目录 hadoop-2.7.6 ,目录中有如下子目录和文件:
bin data etc include lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share
2、利用linux命令将hadoop-2.7.6目录移到自己想放置的位置,目录名也可以修改。当然也可以不做任何变动。这里我们假设最后的hadoop安装位置是/home/hadoop-2.7.6
3、设置hadoop用户为hadoop-2.7.6目录及下面子目录和文件的所有者,命令如下:
sudo chown -R hadoop:hadoop hadoop-2.7.6
4、修改hadoop配置文件,设置JAVA_HOME路径
hadoop的配置文件都在hadoop-2.7.6目录下的etc/hadoop下,在该目录下找到其中的hadoop-env.sh文件,打开该文件,找到如下的内容
export JAVA_HOME=${JAVA_HOME}
然后将${JAVA_HOME}更改为本机的jdk路径。说明,即使有JAVA_HOME环境变量,也需要进行设置为具体的路径。如设置为:
export JAVA_HOME=/home/data/jdk1.8.0_102
说明:上面只是举例,需要根据本机jdk的安装位置设置正确的目录。

5、设置hadoop用户的环境变量
进入 /home/hadoop目录,修改.bash_profile文件,增加如下的环境变量:
export HADOOP_INSTALL=/home/hadoop-2.7.6
export HADOOP_HOME=/home/hadoop-2.7.6
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin
export PATH

说明:上面的/home/hadoop-2.7.6路径只是例子, 需要改成实际的hadoop版本所安装(放置)的位置。

5、进行测试
以hadoop用户登陆,执行如下命令:
hadoop version
如果一切正常,上面命令会输出正确的hadoop版本等信息,说明前面的配置一切正确。hadoop是一个可执行程序,位于hadoop安装目录的bin目录下。因为前面的操作已经将hadoop目录下的bin和sbin目录加到PATH环境变量中,所以可以在任何当前命令下执行hadoop程序。
上述命令的输出如下:
Hadoop 2.7.6
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r 085099c66cf28be31604560c376fa282e69282b8
Compiled by kshvachk on 2018-04-18T01:33Z
Compiled with protoc 2.5.0
From source with checksum 71e2695531cb3360ab74598755d036
This command was run using /home/hadoop-2.7.6/share/hadoop/common/hadoop-common-2.7.6.jar

hadoop运行模式

hadoop可以有三种运行模式:

(一)、独立(本地)模式

在该模式下不需要事先启动任何服务(守护进程),数据存在本地磁盘,可以执行hdfs的文件操作命令,但操作的是本地磁盘。这种模式下可以很方便的运行和调试mapreduce程序,因为是在一个jvm上执行的,可以很方便的单步跟踪等。这样我们可以在本地模式下编写调试Mapreduce程序后,然后移植到集群环境下,基本上也不需要修改很多代码。
独立模式是默认的方式,前面的工作完成后,我们不再需要额外做任何配置就可以在独立模式下工作。
这时我们可以直接在命令行下执行hdfs命令,如执行命令:
hadoop fs -ls /
该命令会列出本地系统根目录(/)下的所有目录和文件,和直接执行linux下的命令 ls -al / 命令输出的信息类似。
说明:hadoop fs可以带各种参数来执行hdfs的各种操作。
我们也可以执行如下命令:
hadoop fs -mkdir /home/hadoop/hello
上面命令会在hadoop用户的主目录 /home/hadoop下创建一个新的目录hello。
总结下,也就是说在独立模式下执行 hadoop fs命令,就等同于执行linux本地的文件系统命令。如果要学习hdfs的各项命令,这是一种最简单方便的方式。更多的hdfs操作命令我们会在后面的hdfs组件学习中详细介绍。
在该模式下如何编写mapreduce程序我们会在后面的mapreduce学习中单独介绍。

(二)单机模式(伪分布模式)

在该模式下,只需要一台linux机器,需要在本地启动服务(如hdfs服务和yarn服务,对应多个进程),这是模拟一个小规模的集群。在这种模式下,从使用和开发角度看,其实和真正的多台机器上的集群模式没有太多差别。
如本文开头所说,我们这系列的学习,都是在单机模式下进行的。如何进行单机模式的配置和启动,我们在下面的章节单独进行介绍。

(三)全分布模式(集群模式)

这种模式下,hadoop服务运行在一个集群(多台机器)上,此模式环境搭建需要更多操作,也需要更多的配置。具体如何做本文不做介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值