Hadoop分布式部署

环境介绍

Linux版本:CenterOS 7.2
Hadoop版本:hadoop-2.6.0-cdh5.15.1
Java版本:jdk-8u201-linux-x64
三台机器IP:10.1.2.151、10.1.2.152、10.1.2.153
三台机器hostname:bigdata1、bigdata2、bigdata3
三台机器节点安排:
bigdata1:namenode、datanode、resourcemanager、nodemanager
bigdata2:datanode、nodemanager
bigdata3:datanode、nodemanager
文件传输技巧: 我使用了xshell从windows向linux传输文件。在Linux安装lrzsz,然后使用rz命令从windows向Linux传输文件。
在这里插入图片描述
在这里插入图片描述

安装步骤

  1. 根据需求创建用户
    我计划为每一台服务器新建一个用户hadoop,并且使其有管理员权限,这样方便根据用户管理应用。具体方法:
    在这里插入图片描述
    在这里插入图片描述
    首先使用root添加用户并设置其密码,然后在/etc/sudoers中添加hadoop的管理员权限。
    小技巧:在root下,切换到hadoop,su -l hadoop;在hadoop下,切换到root,使用sudo -i

  2. 修改hostname和hosts
    2.1 在每一台机器修改/etc/hostname为相应的名称。
    2.2 在.151上修改/etc/hosts,然后拷贝到其他两台机器即可。
    在这里插入图片描述
    在这里插入图片描述

  3. 设置免密登录
    3.1 在每天机器执行ssh-keygen -t rsa。
    在这里插入图片描述
    3.2 拷贝机器间的公钥,使用ssh-copy-id -i ~/ssh/id_rsa.pub bigdataX
    在这里插入图片描述
    小技巧:第一次我只从bigdata1向bigdata2、bigdata3拷贝了公钥,但是后来发现启动hdfs会出现警告:
    在这里插入图片描述
    所以,我重新做了免密登录,分别在三台机器做三台机器的免密登录,问题可以解决。

  4. 安装jdk
    系统可能自带了jdk,但是我在此安装自己需要的版本。
    4.1 解压jdk到安装目录,配置~/.bash_profile
    在这里插入图片描述
    4.2 source此文件,拷贝配置文件到bigdata2和bigdata3,并且去相应机器source此文件
    在这里插入图片描述
    在这里插入图片描述
    小技巧: 我第一次配置的PATH是这样的:PATH = $PATH : $JAVA_HOME/bin,这样导致了检查java版本时候,java一直使用的是系统自带的版本。原因是PATH寻找执行文件是按照顺序查找的,所以,应该把自己配置的路径放在前面。

  5. Hadoop安装
    5.1 解压安装文件到相应目录
    在这里插入图片描述
    5.2 进入目录hadoop下etc/hadoop目录。配置 hadoop-env.sh ,设置其中的JAVA_HOME为实际目录,防止没有配置这个变量。(可以先查看一下路径,然后拷贝)
    在这里插入图片描述
    在这里插入图片描述
    5.3配置core-site.xml
    在这里插入图片描述
    5.4 配置hdfs-site.xml
    在这里插入图片描述
    5.5 配置yarn-site.xml
    在这里插入图片描述
    5.6 配置mapred-site.xml
    在这里插入图片描述
    小技巧: 如果发现没有mapred-site.xml,可以使用mapred-site.xml.template复制一份。cp mapred-site.xml.template mapred-site.xml
    5.7 配置slaves
    在这里插入图片描述
    5.8 分发配置好的hadoop到bigdata2和bigdata3
    在这里插入图片描述
    5.9 配置hadoop环境变量,然后拷贝到bigdata2和bigdata3
    在这里插入图片描述
    在这里插入图片描述

  6. 测试hadoop环境
    6.1 格式化namenode
    在bigdata1上执行hadoop namenode -format
    6.2 启动hdfs和yarn
    在这里插入图片描述
    在这里插入图片描述
    6.3 测试上传文件和yarn运算
    在这里插入图片描述
    在这里插入图片描述

  7. 总结
    7.1 操作技巧
    7.1.1 部署之前首先要规划好机器安排,哪些充当主节点,哪些部署从节点。
    7.1.1 大部分活动可以在bigdata1上运行,然后拷贝到另外两台机器。
    7.2 问题总结
    7.2.1 hdfs无法启动问题

019-04-19 14:54:49,055 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/hadoop/app/hadoop-2.6.0-cdh5.15.1/tmp/dfs/name 
is in an inconsistent state: storage directory does not exist or is not accessible.
	at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:377)
	at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:228)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1152)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:799)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:614)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:676)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:844)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:823)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1547)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1615)

如果出现以上问题,那么是hadoop namenode -format没有运行,并且format前面的-不能少!
7.2.2 出现NativeCodeLoad警告

[hadoop@bigdata1 hadoop-2.6.0-cdh5.15.1]$ hadoop fs -ls /
19/04/19 20:04:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
-rw-r--r--   3 hadoop supergroup       1366 2019-04-19 15:33 /test

这个问题本身只是一个警告,不是Error,我查询资料后,有挺多从根本解决问题的方案,但是都比较费时间,这里欠下!我使用一个“视而不见”的方法,暂且这样。

/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop/log4j.properties尾部加上只显示错误配置。
在这里插入图片描述
7.3 安装包下载
关于cloudera开源hadoop生态安装包下载,请查看我的《下载cloudera配套安装包》文章。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值