下载 Hadoop

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz --no-check-certificate

配置环境变量

首先修改当前用户的配置文件,添加 Hadoop 环境变量。修改 ~/.bashrc


Hadoop 解压后即可使用。通过在任意路径下,使用 hadoop version 查看 Hadoop 版本,来判断是否配置成功

启动 与 停止

启动 namenode、datanode、resourcemanager

hdfs --daemon start namenode
hdfs --daemon start datanode
yarn --daemon start nodemanager
yarn --daemon start resourcemanager

停止 namenode、datanode、resourcemanager

hdfs --daemon stop namenode
hdfs --daemon stop datanode
yarn --daemon stop nodemanager
yarn --daemon stop resourcemanager

启动 namenode 时,可能会报错:ERROR: Cannot set priority of namenode process 9303

通过日志,可以查看到问题:tail -n 20 hadoop-3.2.3/logs/hadoop-root-namenode-starrocks1.log
tail -n <行数> 表示查看最后几行

查看到问题原因是 Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority

在hadoop的官网可以找到 fs.defaultFScore-site.xml 配置文件中的属性
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml
使用命令修改 core-site.xml 修改配置 vim hadoop-3.2.3/etc/hadoop/core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

使用 jps 发现 namenode 并未重启,再次查看日志 tail -n 20 hadoop-3.2.3/logs/hadoop-root-namenode-starrocks1.log
报错: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

centos在每次关机后,都会自动清理 tmp 目录下的文件,这就意味着之前记录的 name 等信息有可能会丢失。这时候再想修复,就只能使用 bin/hadoop namenode -format格式化整个名字节点的数据。因此,这里在启动的时候,就提示你应该将 hadoop.tmp.dir 设置到一个不会更变的目录

使用命令修改 core-site.xml 修改配置 vim hadoop-3.2.3/etc/hadoop/core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/root/hadoop-3.2.3/tmp/</value></property>
</configuration>

由于报错:Directory /root/hadoop-3.2.3/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible
需要创建目录 mkdir -p /root/hadoop-3.2.3/tmp/dfs/namemkdir -p 表示递归创建目录

如果报错NameNode is not formatted,就需要格式化名字节点 hadoop-3.2.3/bin/hdfs namenode -format

WEB 管理页

  • hdfs健康信息 http://localhost:9870
  • hadoop集群信息 http://127.0.0.1:8088/

如果访问不了,首先用 jps 查看4个相关进程是否存在。 其次检查防火墙是否关闭,关闭命令 systemctl stop firewalld


It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.

如果出现这段英文,这说明你的配置包括进程启动都没问题,你只是访问了进程中的非web端口

Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需任何配置即可运行。通过以下命令,可以执行hadoop 自带的 demo。

这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试

使用如下命令可以查看可用demo

cd ${HADOOP}
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar


可以看到 hadoop 自带了很多 example

An example program must be given as the first argument.
Valid program names are:

  • aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
  • aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
  • bbp: A map/reduce program that uses Bailey-Borwein-Plouffe to compute exact digits of Pi.
  • dbcount: An example job that count the pageview counts from a database.
  • distbbp: A map/reduce program that uses a BBP-type formula to compute exact bits of Pi.
  • grep: A map/reduce program that counts the matches of a regex in the input.
  • join: A job that effects a join over sorted, equally partitioned datasets
  • multifilewc: A job that counts words from several files.
  • pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
  • pi: A map/reduce program that estimates Pi using a quasi-Monte Carlo method.
  • randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
  • randomwriter: A map/reduce program that writes 10GB of random data per node.
  • secondarysort: An example defining a secondary sort to the reduce.
  • sort: A map/reduce program that sorts the data written by the random writer.
  • sudoku: A sudoku solver.
  • teragen: Generate data for the terasort
  • terasort: Run the terasort
  • teravalidate: Checking results of terasort
  • wordcount: A map/reduce program that counts the words in the input files.
  • wordmean: A map/reduce program that counts the average length of the words in the input files.
  • wordmedian: A map/reduce program that counts the median length of the words in the input files.
  • wordstandarddeviation: A map/reduce program that counts the standard deviation of the length of the words in the input files.

下面测试 grep 小程序

cd $HADOOP
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoopmapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output '<name>hadoop.*</name>'

jar 表示使用hadoop执行一个jar脚本

查看执行结果

  • _SUCCESS 是一个空文件,标志执行成功
  • part-r-00000 保存了执行结果

Hadoop伪分布式配置

这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点 (NameNode, DataNode, JobTracker, TaskTracker, SecondaryNameNode)
  
请注意分布式运行中的这几个结点的区别:

  • 从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
  • 从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。一个机器上,既当namenode,又当datanode,或者说 既 是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。开启多个进程模拟完全分布式,但是并没有真正提高程序执行的效率

如果像单机模式一样直接启动,会报错 hdfs://localhost:9000 连接不上,解决办法是启动 namenode 和 datanode

在未做任何配置的情况下,namenode是无法直接启动的,会报 Error: Cannot set priority of namenode process 57675 的错误(datanode到是可以直接启动的)


需要修改 Hadoop 的配置文件,位置在 $HADOOP/etc/hadoop/ 目录下。要操作如下3个配置文件:

  • core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)
  • hdfs-site.xml(配置HDFS集群的工作属性)
  • mapred-site.xml(配置MapReduce集群的属性)

  • etc/hadoop/core-site.xml 是必须修改的。
    要添加 hadoop.tmp.dirfs.defaultFS 属性。
<configuration><property><name>hadoop.tmp.dir</name><value>/home/chen/.hadoop/tmp</value><description>a temporary directory for hadoop</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
  • /etc/hadoop/hdfs-site.xml(非必须,可不修改,不影响运行)这里将副本数量设置为1
<configuration><property><name>dfs.replication</name><value>1</value></property>
</configuration>
  • /etc/hadoop/yarn-site.xml(非必须,可不修改,不影响运行)
<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property>
</configuration>

修改后启动 namenode 和 datanode。 但依旧会报错,因为 hdfs://localhost:9000/user/<用户名>/input 文件夹不存在

初次使用 hadoop 时,它的目录下并没有任何文件。也就是说初次使用ls,只有 hadoop fs -ls / 是正确的。hadoop 可以通过和 linux 一样的命令创建和操作文件或文件夹,唯一的区别就是需要加上 hadoop fs 的前缀

很多文章说,第一次使用 hadoop的时候要格式化 hdfs namenode -format(实验后发现貌似不格式化也行),另外格式化之前,必须关闭 hdfs 服务。

hdfs --daemon stop namenode
hdfs --daemon stop datanode
hdfs namenode -format

下面将外部已经创建好的文件夹包括里面的文件送入hadoop的hdfs里,使用put命令(test.txt 是一篇纯英文的新闻)

命令为 hadoop fs -put <待传入的文件> <保存路径>

下面运行测试程序 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount input.txt output,成功的话,会打印日志信息,失败则会报错。

如果成功,在 hdfs 的 output 目录下会生成一个 SUCCESS 文件,另一个文件是处理输出结果。

除了命令行查看,我们还可以使用管理网页的方式,进行查看 http://localhost:9870/explorer.html

比如我们要查看 datanode 的 /user/chen/output 目录下的文件,除了一级一级点进去,还可以直接输入 http://localhost:9870/explorer.html#/user/chen/output 进行访问

Hadoop 3.3.0 基础配置相关推荐

  1. 第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

    第六天 - 安装第二.三台CentOS - SSH免密登陆 - hadoop全分布式安装.配置.集群启动 第六天 - 安装第二.三台CentOS - SSH免密登陆 - hadoop全分布式安装.配置 ...

  2. hadoop 2.0 详细配置教程

    作者:杨鑫奇 PS:文章有部分参考资料来自网上,并经过实践后写出,有什么问题欢迎大家联系我. update: 20130518  大家可以尝试下Ambari来配置Hadoop的相关环境 快速的部署Ha ...

  3. Hadoop基础-配置历史服务器

    Hadoop基础-配置历史服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比 ...

  4. Hadoop 2.2.0安装和配置lzo

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop经常用于处理大量的数据,如果期间的输出数据.中间数据能压缩存储,对系统的I/O性能会有提升.综合考虑压缩.解压速度 ...

  5. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  6. hadoop 2.5.0安装和配置

    安装hadoop要先做以下准备: 1.jdk,安装教程在 http://www.cnblogs.com/stardjyeah/p/4640917.html 2.ssh无密码验证,配置教程在 http: ...

  7. 0基础学RS(十)思科AAA认证基于服务器的AAA认证(TACACS+配置,RADIUS配置)

    前言 上一篇讲了本地AAA的知识和相关配置,接下来将讲解基于服务器的AAA认证.本地AAA和基于服务器的AAA到底有什么区别呢?他们分别适用于什么什么样的环境? 本地AAA 本地实现的AAA对于非常小 ...

  8. 《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置

    感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  9. Spark2.2.0集群搭建部署之【基础配置篇】

    软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] Spark集群在生产环境中,主要部署在linux的集群中,所以需要先安装JDK,SCALA等基础配置. 由于Spark是计算框架,所 ...

最新文章

  1. 物联网安全领域都有哪些机会?来看看这19家公司都是怎么玩的
  2. TensorFlow基础7-机器学习基础知识(逻辑回归,鸢尾花实现多分类)
  3. 使用mysql_fetch_row()以数组的形式返回查询结果
  4. python基础--函数
  5. WinEdt(latex)详而简单教程
  6. mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台
  7. tensorflow 风格迁移
  8. 如何计算一只鸡的表面积?各大专业的奇葩解法
  9. android DatePicker
  10. 如何查看java安装路径
  11. Boston波士顿房价数据下载
  12. cenetos 查看字体库_Centos7 安装字体库中文字体
  13. 使用Roslyn动态编译代码
  14. 多媒体的基础知识:感觉媒体、表现媒体、表示媒体、传输媒体、存储媒体
  15. 杀死一只知更鸟的方法教会了我如何成为一名混乱大师
  16. 剑指offer20题——leetcode主站65题
  17. 模板码:个性二维码制作,改变二维码设计方式
  18. C++语言Switch函数使用小贴士
  19. 一般将来时语法课教案_【语法视频课】第1~50节资料汇总
  20. 游戏团队,各职位人员离职所带来的影响和不同

热门文章

  1. 面试官:一个能一网打尽的技术问题
  2. 文本编辑器 sakura grep  指定拓展名除外
  3. 海底捞的启示(1):无处不在的服务
  4. java安装步骤_win10系统安装java的详细步骤(图文)
  5. (三)C++游戏开发-本地存储-JSON文件读写
  6. 如果做一个架构或 team leader
  7. linux 服务器Redis清除指定key缓存
  8. Vue项目中加载图片的坑
  9. MODBUS常用功能码
  10. 创建ISAPI过滤器(转)