Hadoop安装搭建伪分布式教程(全面)吐血整理

  • 1、安装下载虚拟机VMware
  • 2、下载Ubuntu18.04镜像文件,并在VMware中添加虚拟机。
  • 3、Hadoop伪分布式搭建
    • 3.1 创建hadoop用户,并更新ubuntu系统中相应软件,安装vim编辑器
      • 3.1.1 创建hadoop账户
      • 3.1.2 更新命令
    • 3.2 配置SSH,并设置无密码登录
      • 3.2.1 下载SSH
      • 3.2.2 设置无密码登录
    • 3.3 安装Java并配置环境变量
      • 3.3.1 下载Java
      • 3.3.2 配置环境变量
    • 3.4 下载编译好的hadoop,配置hadoop的环境
      • 3.4.1 下载并解压
      • 3.4.2 配置环境
    • 3.5 配置四个文件
      • 3.5.1 core-site.xml
      • 3.5.2 hdfs-site.xml
      • 3.5.3 mapred-site.xml
      • 3.5.4 yarn-site.xml
    • 3.6 格式化后启动、调用实例、停止所有运行的hadoop进程
      • 3.6.1 格式化并启动
      • 3.6.2调用实例

1、安装下载虚拟机VMware

博主使用的是VMware Workstation 16 Pro,这个的安装教程很多,大家可以自行搜索安装。
官网:https://www.vmware.com/cn/products/workstation-pro.html

2、下载Ubuntu18.04镜像文件,并在VMware中添加虚拟机。

Ubuntu一般使用18或者16版本,20版本有些未知的问题。
打开ubuntu18.04.1的下载地址:https://www.ubuntu.com/download/desktop,进入页面后点击右边的Download按钮开始下载。
1.右上角点击新建虚拟机

2.默认3.选择自己安装镜像文件的位置4.这里自己设置账户和密码5.选择虚拟机的位置,博主放在了D盘6.这个的配置比较高了,也可以使用默认的4核7.按照建议内存,之后就一直下一步8.这里的磁盘大小默认为20G,根据自己需要选择大小。将虚拟磁盘储存为单个文件
然后一直下一步,就能等它跑进度条了。

3、Hadoop伪分布式搭建

前两个都是开胃小菜,这才是正题。

3.1 创建hadoop用户,并更新ubuntu系统中相应软件,安装vim编辑器

3.1.1 创建hadoop账户

1.按 Ctrl + Alt + T,即可进入命令行模式。
2.输入以下语句,创建一个名为hadoop的用户,useradd命令的-m用来指定用户名,-s用来指定用户登录时所需的shell文件:

sudo useradd -m hadoop -s /bin/bash

3.由于部门权限规定或安全限制,负责部署hadoop的管理员没有linux root权限,但按照最佳做法,安装时有一些操作需要以root用户身份执行。以下给予该用户root权限:

sudo adduser hadoop sudo

如果在安装Ubuntu时用户名使用的是hadoop,这两步不需要。

3.1.2 更新命令

1.由于ubuntu系统刚完成安装,需要更新相关一些软件,确保接下来的操作可以正常完成:

sudo apt-get update

如果这条命令执行速度很慢,请使用下面的方法(虽然一般很快)
参考https://blog.csdn.net/m0_37601622/article/details/82968780
如果发现更新速度过慢,或者更新时反复跳出连接超时的提示,则可以将源文件链接地址替换为国内镜像文件从而提高更新速度。首先先利用cp命令备份当前系统的源文件,其中第一个参数时拷贝的文件路径和文件名称,第二个是拷贝到的文件路径和文件名:

sudo cp /etc/apt/sources.list  /etc/apt/sources.bak1

打开需要更新的源文件:

sudo gedit /etc/apt/sources.list

将文件内的内容替换成其他源文件:
如清华源:参考https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

完成后保存,重新运行更新命令:

sudo apt-get update
sudo apt-get upgrade

2.上述更新完成后:
部分linux系统会自带vim编辑器,但若在终端无法启动该编辑器,则需要安装以待后续编辑配置文件,接下来跳出的提示回复Y即可:

sudo apt-get install vim

3.2 配置SSH,并设置无密码登录

3.2.1 下载SSH

根据Hadoop分布式系统的特性,在任务计划分发、心跳监测、任务管理、多租户管理等功能上,需要通过SSH(Secure Shell)进行通讯,所以必须安装配置SSH。另因为Hadoop没有提供SSH输入密码登录的形式,因此需要将所有机器配置为NameNode可以无密码登录的状态。
1.首先安装SSH server(之所以不需要安装SSH client是因为ubuntu已经默认安装了):

sudo apt-get install openssh-server

2.完成后连接本地SSH

ssh localhost

按提示输入yes,再输入hadoop用户的密码,完成登录。

3.2.2 设置无密码登录

1.以下进行无密码登录的设置,首先先退出刚刚ssh localhost的连接:

exit

2.然后进入SSH对应目录下,该目录包含了几乎所有当前用户SSH配置认证相关的文件:

cd ~/.ssh/

3.输入生成SSH私钥与公钥的命令,-t用于声明密钥的加密类型,输入Hadoop密码。这一步会提醒设置SSH密码,输入密码时直接回车就表示无密码,第二次输入密码回车确定,最后一次提交:

ssh-keygen -t rsa

4.将生成的SSH的公钥加入目标机器的SSH目录下,这里采用cat命令与>>,cat file1>>file2的含义为将file1内容append到file2中。

cat ./id_rsa.pub >> ./authorized_keys

3.3 安装Java并配置环境变量

3.3.1 下载Java

Hadoop和与之相关的很多工具都是通过java语言编写的,并且很多基于hadoop的应用开发也是使用java语言的,但是ubuntu系统不会默认安装java环境,所以需要安装java并配置环境变量。以下安装下载java的jdk、jre:

sudo apt-get install default-jre default-jdk

3.3.2 配置环境变量

1.通过vim编辑器打开环境变量的设置文件:

sudo vim ~/.bashrc

2.在文件的尾部加上以下语句:

export JAVA_HOME=/usr/lib/jvm/default-java
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

在这一步在我的虚拟机中直接复制时会出现第一句的export只剩rt两个字母,必须要手动输入export。
3.按Esc键退出,然后输入:wq保存修改。然后使环境变量生效:

source ~/.bashrc

3.4 下载编译好的hadoop,配置hadoop的环境

3.4.1 下载并解压

1.在虚拟机内的火狐浏览器中输入https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/,下载hadoop应用,默认保存至downloads文件夹下。选择已编译好的版本hadoop-2.9.2.tar.gz,因为该版本可以直接解压使用,更为方便。
2. 进入解压包存放的Downloads文件夹,右键属性查看压缩包的绝对路径,然后解压至/usr/local目录下:

sudo tar -zxf /home/hadoop/Downloads/hadoop-2.9.2.tar.gz -C /usr/local

3.进入刚刚解压后存放的目录下:

cd /usr/local/

4.将该文件夹的名字重命名为hadoop,屏蔽掉版本号的信息,使得后续命令行输入更为简便:

sudo mv ./hadoop-2.9.2/ ./hadoop

3.4.2 配置环境

1.将已重命名的该文件夹的拥有者,指定给用户hadoop,缺少这一步,将导致后续操作特别是运行Hadoop时,反复因权限不足而停止:

sudo chown -R hadoop ./hadoop

2.经后续测试发现问题,虽然已经为ubuntu系统设置了java的环境变量,但hadoop实际运行时仍会出现找不到java-jdk的现象,故再对hadoop的环境文件进行修改,此外,该文件还包括启动参数、日志、pid文件目录等信息。先进入目录:

cd ./hadoop/etc/hadoop

3.使用vim编辑器,打开环境变量文件:

sudo vim hadoop-env.sh

4.添加该语句(这里也需要手动输入export):

export JAVA_HOME=/usr/lib/jvm/default-java

5.按Esc键退出,然后输入:wq保存修改。然后使环境变量生效:

source hadoop-env.sh

6.截至目前,hadoop框架已经搭建好了,可以通过调用版本号进行测试hadoop是否可用

cd /usr/local/hadoop
./bin/hadoop version

正确搭建应该能看到hadoop的版本号等信息:

3.5 配置四个文件

从字面上,很好理解伪分布式的含义,对于Hadoop而言,可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode。设置Hadoop参数的主要方式是配置一系列由Hadoop守护进程和客户端读取的配置文件,如之前提及的hadoop-env.sh,还包括core-site.xml、hdfs-site.xml、mapred-site.xml、log4j.properties、taskcontroller.cfg等,伪分布式需要修改四个文件,修改的顺序没有特殊要求,以下进行逐一介绍。
此时需要在hadoop文件夹下的hadoop文件中
绝对路径是cd /usr/local/hadoop/etc/hadoop

3.5.1 core-site.xml

1.先打开xml文件,注意./表示当前文件夹下,当前应该在第二个hadoop文件夹下cd ./etc/hadoop/

sudo gedit core-site.xml

2.打开xml文件应该是有内容的,如果没有内容说明打开文件不对,需要检查输入的路径及文件名是否正确。将替换为以下内容,第一个属性表示Hadoop重要临时文件的存放目录,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务;第二个被官方称之为默认系统文件的名称(the name of the default file system),实际上决定了文件系统的主机号、端口号,对于伪分布式模型来说,其主机地址为localhost。

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

3.5.2 hdfs-site.xml

1.同样进入hdfs-site.xml文件:

sudo gedit hdfs-site.xml

2.对hdfs-site.xml进行同样的替换操作,属性的含义分别为复制的块的数量、DFS管理节点的本地存储路径、DFS数据节点的本地存储路径:

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

3.5.3 mapred-site.xml

1.Hadoop2.X并没有像1.X提供mapred-site.xml文件,需要将样本文件复制为可使用的配置文件:

mv mapred-site.xml.template mapred-site.xml

2.同样打开

sudo gedit mapred-site.xml

3.这里使用yarn。yarn 是一种资源管理和作业调度技术,作为Hadoop 的核心组件之一,负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务,其基本思想是将资源管理和作业调度/监视的功能分解为单独的 daemon,总体上yarn是 master/slave 结构,在整个资源管理框架中,ResourceManager 为 master,NodeManager 是 slaver。具体配置内容如下:

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

3.5.4 yarn-site.xml

1.打开

sudo gedit yarn -site.xml

2.然后配置yarn-site.xml文件,这里修改NodeManager上运行的附属服务即可:

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

3.6 格式化后启动、调用实例、停止所有运行的hadoop进程

3.6.1 格式化并启动

1.为了保险起见,执行这一步前关闭命令行模式,重新打开,放弃当前路径。
更改配置并保存后,格式化HDFS的NameNode,在这一步之前,如果hdfs-site.xml中dfs.namenode.name.dir属性指定的目录不存在,格式化命令会自动创建之;如果存在,请确保其权限设置正确,此时格式操作会清除其内部所有的数据并重新建立一个新的文件系统:

/usr/local/hadoop/bin/hdfs namenode -format

显示信息内若包含以下内容,则说明成功格式化:

2.然后启动全部进程:

start-all.sh

3.成功启动后,可以通过web浏览器访问http://localhost:50070,可以看到如下界面:

4.输入jps查看到六个进程,如果缺少某进程需要查询解决方法:

5.在HDFS中创建用户目录:

hdfs dfs -mkdir -p /user/hadoop

6.创建input目录,用于输入数据:

hdfs dfs -mkdir input

7.将所需的xml配置文件复制到input中:
(需要注意路径)

hdfs dfs -put usr/local/hadoop/etc/hadoop/*.xml input

8.如果系统之前运行过hadoop,则需要删除output目录:

hdfs dfs -rm -r output

这几步会出现很多的warning,不用在意。

3.6.2调用实例

1.运行实例,需要先进入hadoop的文件夹下

cd /usr/local/hadoop

2.输入

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output

要等一会,结果如下图

3.然后进入hadoop下面的bin

cd /usr/local/hadoop/bin

4.查看运行结果

hdfs dfs –ls ./output
hdfs dfs -cat output/*

到这里,整个安装过程就结束了。第一次这么认真写CSDN,完全是因为装这个伪分布式实在太痛苦了。会遇到很多没法解决的问题,我基本重装了虚拟机6遍,整个花时间十几个小时,吐血。

Hadoop安装搭建伪分布式教程(全面)吐血整理相关推荐

  1. Hadoop 安装 + HBase伪分布式安装

    第一部分,安装Hadoop 一般配置都是在文件尾新增几行配置,也有文件路径需要手动新建. 1 修改主机名 # hostname xinyanfei 2 配置host 3 ping主机名 # ping ...

  2. Ubuntu下的Java和Hadoop安装及配置伪分布式教程

    Hadoop安装及配置伪分布式教程 1.创建hadoop用户 更新apt 2.安装SSH.配置SSH无密码登陆 安装SSH 配置SSH无密码登录 3.安装Java环境 4.安装Hadoop3.1.3 ...

  3. hadoop搭建伪分布式集群(centos7+hadoop-3.1.1)

    原文地址:https://www.cnblogs.com/zhengna/p/9316424.html Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本 2 ...

  4. 单机版安装,伪分布式安装

    单机版安装,伪分布式安装 单机版安装:适合做一些调试,mapreduce调试(debug),实际开发中不用 伪分布式安装:在一台服务器上模拟出来多台服务器的效果(模拟多服务的启动方式) 官网地址 单机 ...

  5. 大数据学习笔记12:搭建伪分布式Spark

    文章目录 一.准备工作 二.搭建伪分布式spark 1.下载spark-2.4.4-bin-hadoop2.7压缩包 2.将spark压缩包上传到虚拟机 3.将spark压缩包解压到指定位置 4.修改 ...

  6. Hadoop系列之九:Hadoop集群伪分布式模式的实现详解

    1.Hadoop依赖软件 Hadoop基于Java语言开发,因此其运行严重依赖于JDK(Java Development Kit),并且Hadoop的许多功能依赖于Java 6及以后的版本才提供的特性 ...

  7. Zookeeper集群搭建伪分布式

    集群搭建 伪分布式,一台物理机 启动三个不同端口 搭建步骤 复制文件 修改配置文件 启动节点 测试连接 第一步 复制文件 将Zookeeper复制两份 第二步 修改配置文件 第一个节点 添加配置 保存 ...

  8. Hadoop单机和伪分布式环境搭建

    hadoop环境搭建 1.三个环境        单机.伪分布式.分布式 2.三个分支       apache版本(Apache基金会)       cdh版本(cloudera公司)       ...

  9. Hadoop 单机版和伪分布式版安装

    1 依赖项 java ssh $ java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (b ...

最新文章

  1. 【Android基础】从属性动画看代码设计的艺术
  2. 2D图片3秒变立体,变换视角流畅自然:Adobe实习生的智能景深算法,登上顶级期刊...
  3. poj 1113 Wall 凸包的应用
  4. CF-241 E.Flights(差分约束)
  5. 前端html页面模块,页面模块化实现的条件和基本实现思路 – WEB前端开发
  6. 电力现货市场现货需求_现货与情绪:现货铜市场中的自然语言处理与情绪评分
  7. 1.13 编程基础之综合应用 05 素数回文数的个数 python
  8. 【java】java 并发编程 LinkedBlockingDeque
  9. ffmpeg系列-协议操作解析-AVIOContext,URLContext,URLProtocol,HTTPContext
  10. 剑指offer25 二叉树中和为某一直的路径
  11. Draco代码分析(一) —— Encode过程探究其数据编码方式
  12. 帮我写一份情书给在一起200天的女朋友,要求1000字
  13. 介绍一下xgb_XGB羽毛球app
  14. RabbitMQ--扩展--11--均衡负载
  15. Posix API总结
  16. matlab求莫兰指数程序,python计算莫兰指数(Moran's I)并绘制地区热力图——以中国各省pm2.5为例...
  17. cad打印黑白图纸,该如何打印呢?
  18. NRS1800 芯片使用技巧(一)
  19. Chrome 谷歌浏览器升级后不再自动保存账号名和密码
  20. 从一个普通测试人员华丽转身成为架构师的经历分享

热门文章

  1. 工伤事故的人为原因有哪些
  2. 几个功能非常强大的学术翻译网站
  3. 2021/3/6 OJ每日一题 小媛在努力
  4. NAT代理服务器技术调研
  5. 十大经典排序算法动画,看我就够了!
  6. Zookeeper中NullPointerException
  7. 百度 2022 提前批-数据挖掘算法工程师面经
  8. 华为云14天鸿蒙设备开发-Day1源码获取
  9. 数字疗法 | “接受”还是“拒绝”?心理治疗背后的数字干预
  10. 六大布局之RelativeLayout