Hadoop2.2 在Linux下的配置详解

1、环境准备

1.1  java环境准备

由于hadoop需要运行在java环境下,所以,java环境是必须的,需要安装jdk,最好不要用linux上自带的openjdk,需要用oracle官网提供的jdk才行。

下载jdk网址为: 

http://www.oracle.com/technetwork/java/javase/downloads/index.html

安装方法请自行参阅官网或者网上资料。

1.2 Hadoop源码准备

Hadoop2.2 源码下载地址为:http://apache.claz.org/hadoop/common/hadoop-2.2.0/

注意图中的几个文件,凡是带有src的都是hadoop2.2的源码文件,是没有编译过的,其中的hadoop-2.2.0.tar.gz是已编译过的文件,不过,该文件是在32位操作系统下的编译文件,在64位系统下是用不了的,所以若是在64位系统下需要重新编译源码文件,生成已编译的hadoop-2.2.0.tar.gz,再开始hadoop的配置,本文不对hadoop的编译流程做赘述,怎么在64位环境下编译hadoop请自行参阅官网,或网上相关资料。

1.3 无密码ssh登陆

 Hadoop的namenode节点和datanode节点的访问均是通过ssh,所以在配置hadoop之前需要配置无密码ssh登陆。

我们这里搭建的集群包括三台机器:

 

Ip地址

扫描二维码关注公众号,回复: 9325067 查看本文章

Host name

Hadoop集群中的定位

操作系统

192.168.1.51  

Ipppc-test-51

namenode

OpenSUSE 11 x64

192.168.1.52

Ippc-test-52

datanode

OpenSUSE 11 x64

192.168.1.54

Ippc-test-54

datanode

OpenSUSE 11 x64

 

1.3.1 设置localhost的无密码ssh登陆

在~目录下,会有一个隐藏的.ssh目录,配置localhost无密码ssh登陆过程如下所示:

1、 进入.ssh文件夹

2、 ssh-keygen -t  rsa 之后一路回 车(产生秘钥)

3、 新建文件authorized_keys。

4、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)

5、 重启 SSH 服 务命令使其生效 :service sshd restart。

验证无密码登陆是否成功

发现可以跳过密码输入阶段,无密码本地ssh成功。

然后在其他的机器上进行相同的操作

1.3.2 远程无密码ssh登陆

进入192.168.1.51的.ssh目录,将该目录下的authorized_keys追加到远程机器的.ssh目录下的authorized_keys文件中,具体做法如下:

scp authorized_keys [email protected]:~/.ssh/ authorized_keys_from_51

cat authorized_keys_from_c51 >> authorized_keys

验证一下在192.168.1.51机器上的远程登陆

发现可以无密码登陆。

1.3.3 host设置(这一步也可以跳过)

可以在各个机器之间增加host设置,修改/etc/hosts文件内容如下:

1.3.4 防火墙问题

有关防火墙,这里可以进行设置,开放hadoop所需的端口,为了方便,我们这里将防火墙关闭了。

​​​​​​2、​正式配置

2.1 配置前的准备

解压hadoop到相应的用户目录下,这里我们选择root用户,所以将hadoop解压到root的根目录下。

配置之前需要在根目录下新建几个文件夹

~/dfs/name

~/dfs/data

~/tmp

涉及到的hadoop配置文件有7个:

~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh

~/hadoop-2.2.0/etc/hadoop/yarn-env.sh

~/hadoop-2.2.0/etc/hadoop/slaves

~/hadoop-2.2.0/etc/hadoop/core-site.xml

~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

以上配置文件个别不存在,可以复制相应的template文件获得。

2.2 配置文件的编写

在hadoop中,所以的配置xml文件均是由以下结构组成:

Name节点的值为需要配置的项,value为相应配置项的内容。

配置文件具体信息含义详见官网:

http://hadoop.apache.org/docs/r2.2.0/

配置文件1:hadoop-env.sh

修改JAVA_HOME的值:

配置文件2:yarn-env.sh

修改JAVA_HOME的值

 

配置文件3:slaves(这个文件保存所有slave节点)

配置文件4:core-site.xml

配置文件5:hdfs-site.xml

配置文件6:mapred-site.xml

配置文件7:yarn-site.xml

2.3 复制到其他节点

这里可以写一个shell脚本来执行复制操作:

我们的集群里面全部是64位操作系统,所以可以直接将192.168.1.51上的hadoop直接复制到192.168.1.52和192.168.1.54机器上

 

2.4 启动验证

进入安装目录:cd  ~/hadoop-2.2.0/

格式化namenode: ./bin/hdfs namenode –format

启动hdfs: ./sbin/start-dfs.sh

此时在192.168.1.51上运行的进程有包括namenode secondarynamenode的进程:

而在192.168.1.52 上运行的进程有包括datanode的进程:

能够证明dfs启动起来了。

给出几个简单的例子:

查看集群状态:./bin/hdfs dfsadmin –report

查看文件块组成:  ./bin/hdfsfsck / -files -blocks

查看HDFS:    http://192.168.1.51:50070

查看RM:    http:// 192.168.1.51:8088

在网页上访问的截图如下所示:

 

​​​​​​3、​可能遇到的问题

  1. 多次格式化namenode之后,可能datanode启动不起来。

解决办法,找到配置文件hdfs-site.xml中的配置项:

清空对应的/root/dfs/data目录的内容,重启hadoop即可

  1. 启动hadoop之后无法通过网页访问

可能是防火墙拦截了50070端口,关闭防火墙再访问。

​​​​​​4、​Hadoop的基本操作

4.1 启动和关闭

启动和关闭的执行脚本均在hadoop目录下的sbin目录下。

Start-dfs.sh

Stop-dfs.sh

4.2 基本操作

执行hadoop shell的命令位于hadoop目录下的bin目录下:

执行文件操作的命令式hadoop

查看文件列表

./hadoop fs –ls –R /user

创建目录

./hadoop fs –mkdir /user/program

删除文件

./hadoop fs –rm /user/program/Hello.java

./haddop fs –rm –R /user

上传文件

./hadoop fs –put /root/Hello.java /usr

下载文件

./hadoop fs –get /user/Hello.java /root

查看文件内容

./hadoop fs –cat /usr/Hello.java

 

欢迎大家一起讨论交流,我的微信

  

发布了41 篇原创文章 · 获赞 136 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/songguangfan/article/details/87468208
今日推荐