前言

hadoop是其他大数据框架的基础运行环境,尤其是hdfs,是其他大数据框架的基础存储载体,因此学习和掌握hadoop对学习大数据很有必要

haddop常用的3种运行模式包括:

  • 本地模式 ,单机运行,只是用来演示一下官方案例。生产环境不用
  • 伪分布式模式,也是单机运行,但具备Hadoop集群所有功能,一台服务器模拟一个分布式的环境
  • 完全分布式模式:多台服务器组成分布式环境。生产环境使用

本篇将基于centos7系统,在腾讯云环境快速搭建一个单节点的haddop运行环境

前置准备

  • 一台配置好网络连接(可ping通宿主机和外网)的CentOS 7系统的虚拟机 【本篇使用腾讯云服务器】
  • 连接宿主机和虚拟机的Xftp
  • JDK 1.8版本或1.8版本以上的安装包
  • hadoop 3.1.3 版本的安装包,hadoop: http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

一、安装JDK

这个想必大家都会吧,将下载好的linux版的JDK上传到服务器的指定的目录下,解压,然后配置下即可


配置到 profile文件中即可

vi /etc/profile

export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin

保存并退出之后,执行下: source /etc/profile ,最后再使用: java -version 查看下安装的JDK

二、配置hadoop前置准备环境

1、更新yum源

sudo yum -y update

2、配置主机IP的映射

在搭建完全分布式集群时,这一步一定而且是必不可少的,执行命令 : vi /etc/hosts ,做一下IP和主机名称的映射

然后执行命令, service network restart ,重启下网络

3、 创建 hadoop 用户

通常来说,安装软件时,登录使用的多数是 root 用户,但这样并不安全。因此,在安装Hadoop前,我们最好创建一个 指定的用户,比如这里就创建一个名为 "hadoop"的用户【也可以自定义其他名字】 ;

关于这一点,本人在一开始安装的时候直接使用 root用户安装,在后续安装启动过程中一堆的报错,然后四处找解决方案,甚是麻烦,所以有必要提醒各位安装的同学,最好使用一个新用户

以root用户登录,然后打开一个终端,输入以下命令创建 hadoop 用户并设置密码

useradd hadoop       # 创建hadoop用户
passwd hadoop       # 设置hadoop用户的密码,按提示输入两次密码

注意:密码需输两次,若提示无效,说明设置的密码等级过低不安全,但你不想换密码的话,也可以继续输入密码进行确定

4、修改 第一步中“hadoop” 用户权限

hadoop 用户是普通用户,系统为了安全,对普通用户的一些操作权限做了限制,这样一来,我们在做配置环境的时候就不是很方便,因此需要为 hadoop 用户添加管理员的权限

  • 以root用户登录打开一个终端窗口,输入以下命令为hadoop用户增加管理员的权限
vi /etc/sudoers

找到root ALL=(ALL) 这一行,然后复制一个一模一样的行,名字改为hadoop即可

退出关闭时,使用 wq! 强制保存并退出,否则会提示 E45:‘readonly’ option is set(add ! to override)

5、检查并配置ssh

集群、单机模式都需要用到 SSH 登陆,甚至在集群模式下不同机器之间需要互相拷贝文件,以及通过网络传输文件,假如不配置ssh免密登录的话,每次都要输入对方的登录密码,甚是麻烦,为方便期间,这里还是配置一下

首先通过下面命令检查一下ssh是否安装

yum list installed | grep openssh-server

如果尚未安装,则执行下面的命令安装即可

sudo yum install openssh-server

确定 openssh-server 已安装后,就可以使用 SSH了,输入 ssh localhost 命令登陆本机,但是每次登陆都需要输入密码,很不方便,因此我们需要配置成SSH无密码登陆,更方便一点。具体操作如下:

exit                           # 退出之前的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,一直按回车即可
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
chmod 600 authorized_keys      # 更改文件权限

之后再输入 ssh localhost 命令登陆时,就无需再输入密码,如下所示:

以上为安装hadoop的前置准备工作,这些准备工作必不可少,否则会在后面配置完毕所有的文件启动时,出现各种意想不到的错误

二、配置 Hadoop 3.1.3

1、上传hadoop 3.1.3安装包

2、解压文件

tar -zxvf hadoop-3.1.3.tar.gz  #解压文件
mv hadoop-3.1.3 hadoop       #重命名文件目录

3、创建两个目录,保存namenode和datanode的数据

进入hadoop目录,创建 name 和 data 两个文件目录,用于保存namenode和datanode的数据

4、进入 etc/hadoop目录,对以下几个关键的配置文件进行配置

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml
  • hadoop-env.sh

hadoop的环境搭建关键也就在这几个核心的配置文件,下面按照上面的顺序,依次贴出各个配置文件的内容

core-site.xml

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/bigdata/hadoop/hadoop/tmp</value></property><property><name>fs.defaultFS</name><value>hdfs://公网IP:9000</value></property>
</configuration>

hdfs-site.xml

<configuration><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/bigdata/hadoop/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/bigdata/hadoop/hadoop/tmp/dfs/data</value></property>
</configuration>

mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

yarn-site.xml

<configuration><!-- 设置 resourcemanager 在哪个节点--><property><name>yarn.resourcemanager.hostname</name><value>公网IP或主机名</value></property><!-- reducer取数据的方式是mapreduce_shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>
</configuration>

hadoop-env.sh

这个主要是配置 JDK的路径即可,和上文配置的JDK路径保持一致

以上的配置文件基本上就OK了,由于是伪分布式模式,这样的配置就可以使用了,完全分布式环境的配置相对复杂点

5、初始化namenode

进入hadoop的文件主目录,执行:./bin/hdfs namenode -format ,看到如下信息即可

6、启动 NameNode 和 DataNode

cd sbin              #进入主目录下的sbin目录
./start-dfs.sh  #启动脚本

启动后,通过jps观察是否启动成功,正常情况下,会看到 3 个进程存在

7、开启防火墙或者安全组策略中开启特定的访问端口

浏览器访问内:http://公网IP:9870 ,看到下面的界面后,接下来就可以愉快的使用hadoop了

分享安装过程中的几个坑

1、使用root用户安装,出现下面的报错信息,经过网上不少参考资料,但基本上都是拆东墙补西墙

2、未安装ssh和配置免密登录,hadoop启动过程中,在上面的几个配置文件中,需要通过公网IP和文件目录数据打交道,因此如果不配置ssh肯定会有问题

3、namenode和datanode的目录没有配置在hadoop的主目录下时,启动hadoop的时候一致报下的错误:

hadoop03: ERROR: Cannot set priority of datanode process 2518错误解决

忘了截图,到网上找了一张基本上一样错误的图做说明

关于这个错误,基本上网上没有一个解决办法可以用,一开始我的namenode和datanode是放在hadoop的主目录之外,出现这个问题后,首先是想到的给namenode和datanode的文件目录授权

但是授权之后,namenode和SecondaryNameNode进程可以启动,但是datanode始终起不来,仍然是报上面的这个错,后来我就将namenode和datanode转移到hadoop的主目录下

但是转移目录之后,需要重新设置上面4个配置文件中的namenode和datanode的位置,然后重新执行初始化命令即可

centos7搭建hadoop相关推荐

  1. 华为云Centos7搭建hadoop集群二:yum源替换,ssh免密处理,hadoop用户sudo

    华为云Centos7搭建hadoop集群二:yum源替换,ssh免密处理,hadoop用户sudo 新建hadoop用户并设置密码,密码不要设置为简单的123456等,我这里已经创建过了hadoop用 ...

  2. CentOS7搭建Hadoop集群环境

    本文章为云计算课程实验总结. 前言 CentOS7虚拟机搭建hadoop集群,共3个节点:master.slave1.slave2 软件:java1.8 hadoop2.6.0 3台虚拟机都装有Cen ...

  3. CentOS7搭建hadoop集群

    说明: 1.准备三台虚拟机,参考:CentOS7集群环境搭建(以3台为例) 2.配置虚拟机间免密登陆:参考:CentOS7集群配置免密登录 3.虚拟机分别安装jdk:参考:CentOS7集群安装JDK ...

  4. [hadoop笔记]基于CentOS7虚拟机搭建Hadoop完全分布模式(3个节点)

    文章目录 1. 安装前准备 ① 虚拟机配置 ⑤克隆虚拟机 ⑥ 对每个主机固定IP地址,修改主机名,做主机映射 ⑦ 免密登录设置 2. 搭建Hadoop完全分布模式 ① 修改Hadoop配置文件 ③ 分 ...

  5. hadoop集群_Ambari搭建hadoop集群

    Ambari搭建hadoop集群 Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含: 通过一步一步的安装向导简化了集群供应. 预先配置好关键的运维指标(metrics),可以直接查看H ...

  6. 使用docker搭建Hadoop

    Hadoop简介 1.Hadoop的整体框架 Hadoop由HDFS.MapReduce.HBase.Hive和ZooKeeper等成员组成,其中最基础最重要元素为底层用于存储集群中所有存储节点文件的 ...

  7. 华为云 和 阿里云 跨服务器搭建Hadoop集群

    目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...

  8. Centos7.x Hadoop 3.x HDFS 写入文件

    操作目的 1.在Linux环境下 编写HDFS写文件程序的java文件 2.编译并打包HDFS的写程序 3.执行HDFS的写程序 环境.工具说明 1.先搭建一个 Hadoop 的基础集群环境 参考:H ...

  9. 三台Ubuntu虚拟机搭建 Hadoop集群 (第一次搭)

    最近因为要搭Hadoop集群,确实花了好大的心血在里面,因为我的Linux也是前两天速成的,好多东西都还是边查资料边搭.但我最终确实成功了,留了一点点小问题在里面.(当Hadoop集群start-al ...

最新文章

  1. 详解Pattern类和Matcher类
  2. 该如何继续走下去。。
  3. ubuntu下wps无法使用搜狗输入法输入中文
  4. java随机生成10个不重复的数字,随机生成10个不重复的0-100的数字(实例讲解)
  5. 台积电和三星成半导体代工厂恶战主角 受谁影响?
  6. 列表控件ListCtrl的使用
  7. 【大数据-Hadoop】Spark
  8. omct问题之-webapps下多出的ROOT目录
  9. Docker-Compose命令详解
  10. 浅析Java线程的三种实现
  11. 5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...
  12. centos7 hadoop3.0.1安装
  13. sql去重复查询distinct_SQL的简单查询
  14. Angular ngTemplateOutlet
  15. python学习 - 52周存钱挑战
  16. 串行接口的工作原理和实现
  17. ODM和OEM的区别
  18. 2020智能营销领域最具商业合作价值企业盘点
  19. html中鼠标移动在标签上出现小手形状
  20. DSO Framer _ WinForm 使用

热门文章

  1. ArcEngine由点生成TIN
  2. Screen Saver(屏幕保护设置) in Cocoa
  3. jQuery:插入,复制,替换和删除节点
  4. Ansible安装及配置
  5. C#将DLL嵌入到exe当中
  6. SQL语句中=null和is null
  7. oracle数据库从入门到精通
  8. 抛砖引玉,终于完成了自己的客户端校验提示Extender
  9. 如何设置tomcat的默认应用。
  10. oracle中dblink怎么用,Oracle中建立了dblink怎么使用