搭建Hadoop单机的伪分布式模式

搭建Hadoop单机的伪分布式模式

Hadoop的安装分为单机方式、伪分布式方式 和 完全分布式方式。本次搭建为单机的伪分布模式。
搭建环境:centos6.5、 jdk1.8.0_65、 hadoop2.7.1

搭建步骤:
  1. 准备虚拟机,最低的工作内存1G,通过xshell来管理
  2. 关闭防火墙
  3. 配置主机名
  4. 配置hosts文件
  5. 配置免密码登录
  6. 安装和配置jdk
  7. 上传和安装hadoop
  8. 配置hadoop配置文件
具体搭建步骤:
1. 关闭防火墙

执行:service iptables stop这个指令关闭完防火墙后;
如果重启,防火墙会重新建立,所以,如果想重启后防火墙还关闭,
需额外执行:chkconfig iptables off

2. 配置主机名

执行:vim /etc/sysconfig/network
编辑主机名后保存退出:

NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=hadoop02

注意:主机名里不能有下划线,或者特殊字符 #$,不然会找不到主机导致无法启动
这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。
如果不想重启,可以执行:hostname hadoop01。但是这种更改是临时的,重启后会恢复原主机名。
所以可以结合使用。先修改配置文件,然后执行:hostname hadoop01 。可以达到不重启或重启都是主机名都是同一个的目的

3. 配置hosts文件

执行:vim /etc/hosts

127.0.0.1   localhost
::1         localhost
192.168.169.141 hadoop02

在这里插入图片描述

4. 配置免密码登录
  1. 在hadoop02节点执行:
    执行:ssh-keygen
    然后一直回车
    在这里插入图片描述
    生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下
  2. 然后把公钥发往远程机器,比如hadoop02向hadoop01发送
    执行:ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop01
  3. 在hadoop02节点执行上述上述步骤,让hadoop02节点连接hadoop01免密码登录;
  4. 测试免密登陆,执行:ssh root@hadoop01
5. 配置自己节点登录的免密码登录
  1. 如果是单机的伪分布式环境,节点需要登录自己节点,即hadoop02要登录hadoop02,但是此时是需要输入密码的,所以要在hadoop02节点上
    执行:ssh-copy-id –i ~/.ssh/id_rsa.pub root@hadoop02
6. 安装和配置jdk
  1. 卸载原安装jdk
rpm -qa|grep jdk 
rpm -ql jdk1.8.0_111-1.8.0_111-fcs.x86_64
 rpm –e jdk1.8.0_111		// 卸载原JDK
  1. 进入到cd /usr/soft/目录下,上传jdk-8u65-linux-x64.tar.gz
    解压: tar -zxvf jdk-8u65-linux-x64.tar.gz
    配置jdk环境变量:
vim /etc/profile
export JAVA_HOME=/usr/soft/jdk1.8.0_65
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

  1. 保存退出
  2. 使更改的配置立即生效
source /etc/profile			//使更改的配置立即生效
  1. java -version 查看 JDK 版本信息。如显示 java version "1.8.0_65" 证明成功。
7. 上传和解压hadoop
  • 上传 hadoop-2.7.1_64bit.tar.gz
  • 解压: tar -zxvf hadoop-2.7.1_64bit.tar.gz

目录说明:
bin目录:命令脚本
etc/hadoop:存放hadoop的配置文件
lib目录:hadoop运行的依赖jar包
sbin目录:启动和关闭hadoop等命令都在这里
libexec目录:存放的也是hadoop命令,但一般不常用
最常用的就是sbin,bin和etc目录

8. 配置hadoop-env.sh
  • 这个文件里写的是hadoop的环境变量,主要修改hadoop的JAVA_HOME路径
  1. 切换到 etc/hadoop目录
    执行:vim hadoop-env.sh
    修改java_home路径和hadoop_conf_dir 路径
    在这里插入图片描述
  2. 然后执行:source hadoop-env.sh 让配置立即生效
  • 如果export JAVA_HOME=${JAVA_HOME}不改,将来出现:

    localhost: Error: JAVA_HOME is not set and could not be found.

9. 修改 core-site.xml
  1. 在etc/hadoop目录下
    执行:vim core-site.xml
    配置如下:
<configuration>
<!--用来指定hdfs的老大,namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop02:9000</value>
</property>
<!--用来指定hadoop运行时产生临时文件的存放目录,如果不配置默认使用/tmp目录存在安全隐患 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/soft/hadoop-2.7.1/tmp</value>
</property>
 </configuration>
10. 修改 hdfs-site.xml
  1. 配置如下:
<configuration>
<!--指定hdfs保存数据副本的数量,包括自己,默认值是3-->
<!--如果是伪分布模式,此值是1-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
 
<!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
 
</configuration>
11. 修改 mapred-site.xml
  • 这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template
    所以需要拷贝一份,并重命名为mapred-site.xml
  1. 执行:cp mapred-site.xml.template mapred-site.xml
    配置如下:
<configuration>
<property>
<!--指定mapreduce运行在yarn上,yarn是资源协调工具-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
12. 修改yarn-site.xml
  1. 配置如下:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<!--指定yarn的老大 resoucemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
13.配置 slaves 文件

集群里所有DataNode的主机名。

 [root@hadoop02 hadoop]# vim slaves

在这里插入图片描述

14. 配置 hadoop 的环境变量
  1. 配置代码:
export JAVA_HOME=/usr/soft/jdk1.8.0_65
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/soft/hadoop-2.7.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:HADOOP_HOME/sbin:$PATH

在这里插入图片描述

15. 格式化 namenode
  1. 执行:hadoop namenode -format
    如果不好使,可以重启linx
    或者将/usr/soft/hadoop-2.7.1/tmp的tmp目录删掉,重新格式化namenode
    当出现:successfully,证明格式化成功

在这里插入图片描述

  • 注意,不能在生产环境中这么做。在生产环境里,做法是一般是:第一执行完格式化之后,在配置文件,配置禁止格式化。
16. 启动hadoop
  1. 在sbin目录下 执行 ./start-all.sh,即可启动
  • 警告的处理:

    17/11/16 20:43:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

  • 解决版本参考:http://blog.csdn.net/young_kim1/article/details/50324345

  • 简易解决版本:
    /usr/soft/hadoop-2.7.1/etc/hadoop/log4j.properties文件的尾部添加
    log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

在这里插入图片描述

在这里插入图片描述

  1. 启动完成后使用jps查看hadoop启动的节点进程;
[root@hadoop02 sbin]# jps
59360 SecondaryNameNode
60036 Jps
59717 NodeManager
59589 ResourceManager
58686 NameNode
58830 DataNode

在这里插入图片描述

如果有节点缺失,可在/usr/soft/hadoop-2.7.1/logs中查看相对应的日志,看下启动有可能出现的问题,或者顺序排查配置文件是否配置正确;

通过浏览器查看管理hadoop
http://ip:50070
http://192.168.169.141:50070

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值