一、1、Hadoop的安装与环境配置

安装JDK:

首先检查Java是否已经安装:

java -version

如果没有安装,点击链接https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 并选择相应系统以及位数下载(本文选择jdk-8u381-linux-x64.tar.gz,如具体版本不同则灵活修改)

为其单独创立一个文件夹,然后将其放到该目录下(下载后以具体为止为准):

sudo mkdir -p /usr/local/java
sudo mv ~/Downloads/jdk-8u381-linux-x64.tar.gz  /usr/local/java/

进入该目录进行解压:

cd /usr/local/java
sudo tar xvzf jdk-8u381-linux-x64.tar.gz

解压成功后会在当前目录下看到jdk1.8.0_381安装包,然后删除安装包:

sudo rm jdk-8u381-linux-x64.tar.gz

配置JDK:

设置环境变量,打开环境变量的配置文件:

sudo vim /etc/profile

在末尾添加:

JAVA_HOME=/usr/local/java/jdk1.8.0_381
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

告诉linux Java JDK的位置并设置为默认模式:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_381/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_381/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_381/bin/javaws" 1
sudo update-alternatives --set java  /usr/local/java/jdk1.8.0_381/bin/java
sudo update-alternatives --set javac  /usr/local/java/jdk1.8.0_381/bin/javac
sudo update-alternatives --set javaws  /usr/local/java/jdk1.8.0_381/bin/javaws

重新加载环境变量的配置文件:

source /etc/profile

检测Java版本:

java -version

如果出现以下代表成功:

java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b07, mixed mode)

安装Hadoop:

进入镜像文件https://mirrors.cnnic.cn/apache/hadoop/common/ 选择对应Hadoop版本(本文选择hadoop-3.3.6.tar.gz)

然后将其解压至刚刚创建的文件夹 /usr/local并删除安装包:

sudo tar -zxf ~/Downloads/hadoop-3.3.6.tar.gz -C /usr/local
rm ~/Downloads/hadoop-3.3.6.tar.gz

重命名文件夹并修改权限(其中phenix为用户名):

cd /usr/local/
sudo mv hadoop-3.3.6 hadoop
sudo chown -R phenix ./hadoop

检测hadoop版本:

/usr/local/hadoop/bin/hadoop version

出现以下信息则代表成功:

Hadoop 3.3.6
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar

配置Hadoop(伪分布式):

切换到路径/usr/local/hadoop/etc/hadoop下,需要修改2个配置文件core-site.xml和hdfs-site.xml。

首先打开core-site.xml

cd /usr/local/hadoop/etc/hadoop
vim core-site.xml

在<configuration></configuration>中添加如下配置:

<configuration><property><name>hadoop.tmp.dir</name><value>/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>

注:本文使用的是hdfs://localhost:9000即hdfs文件系统

再打开hdfs-site.xml:

vim hdfs-site.xml

同样在<configuration></configuration>中添加如下配置:

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

注:dfs.replication就是指备份的份数;dfs.namenode.name.dir和dfs.datanode.data.dir分别指名称节点和数据节点存储路径

切换回hadoop主目录并执行NameNode的格式化(格式化成功后轻易不要再次格式化):

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

出现以下信息代表成功:

00000000 using no compression
18/08/20 11:07:16 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 320 bytes saved in 0 seconds .
18/08/20 11:07:16 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
18/08/20 11:07:16 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at phenix/127.0.1.1
************************************************************/

手动添加JAVA_HOME,在hadoop-env.sh文件中添:

cd etc/hadoop/
vim hadoop-env.sh

在hadoop-env.sh文件中添加如下内容即可:

export JAVA_HOME=/usr/local/java/jdk1.8.0_381

设置本机免密码登录(不设置启动会报错Permission denied)

 切换到 ~/.ssh目录下:

ssh-keygen -t rsa
# 一路回车+yes
cat id_rsa.pub >> authorized_keys
# 将公钥追加到authorized_keys文件
chmod 600 authorized_keys
# 更改权限

开启NameNode和DataNode守护进程:

./sbin/start-dfs.sh

开启yarn资源管理器:

./sbin/start-yarn.sh

验证:

jps

出现以下六个则代表启动成功:

18192 DataNode
18922 NodeManager
20044 Jps
18812 ResourceManager
18381 SecondaryNameNode
18047 NameNode

简单示例:

首先切换至hadoop主目录并在HDFS中创建用户目录:

./bin/hdfs dfs -mkdir -p /user/hadoop

创建输入文件夹:

./bin/hdfs dfs -mkdir /user/hadoop/input

将etc/hadoop下所有的xml文件复制到输入:

./bin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input

然后通过命令查看:

./bin/hdfs dfs -ls /user/hadoop/input

结果如下:

Found 8 items
-rw-r--r--   1 phenix supergroup       8814 2020-01-31 13:21 /user/hadoop/input/capacity-scheduler.xml
-rw-r--r--   1 phenix supergroup       1119 2020-01-31 13:21 /user/hadoop/input/core-site.xml
-rw-r--r--   1 phenix supergroup      10206 2020-01-31 13:21 /user/hadoop/input/hadoop-policy.xml
-rw-r--r--   1 phenix supergroup       1173 2020-01-31 13:21 /user/hadoop/input/hdfs-site.xml
-rw-r--r--   1 phenix supergroup        620 2020-01-31 13:21 /user/hadoop/input/httpfs-site.xml
-rw-r--r--   1 phenix supergroup       3518 2020-01-31 13:21 /user/hadoop/input/kms-acls.xml
-rw-r--r--   1 phenix supergroup       5939 2020-01-31 13:21 /user/hadoop/input/kms-site.xml
-rw-r--r--   1 phenix supergroup        690 2020-01-31 13:21 /user/hadoop/input/yarn-site.xml

运行grep:

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /user/hadoop/input output 'dfs[a-z]+'

查看运行结果:

./bin/hdfs dfs -cat output/*

出现以下输出则说明Hadoop集群搭建完成:

1  1   dfsadmin

我们还可以利用HDFS Web界面,不过只能查看文件系统数据,点击链接http://ip:9870即可进行查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/13976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Web开发技巧VI

“# noqa”什么意思 # noqa 是一个特殊的注释&#xff0c;用于告诉Python的某些代码质量检查工具&#xff08;例如&#xff1a;flake8、pylint等&#xff09;忽略当前行的某些规则检查。noqa 是"No Quality Assurance"&#xff08;不进行质量保证&#xff09;的缩写…

回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测

回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-GPR粒子群优化高斯过程回归多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于PSO-GPR基于粒子群算法优化高斯过程回归的数据回归预…

建设银行秋招指南,备考技巧和考试内容详解

建设银行秋招简介 银行作为非常吃香的岗位&#xff0c;每年都有不少同学通过投递简历&#xff0c;进入笔试&#xff0c;再到面试成功&#xff0c;成功到银行就职&#xff0c;也有相当一部分同学因为信息差&#xff0c;符合条件却没有报名。无法进入银行工作。 建设银行的秋招…

QT【day4】

chat_QT服务器端&#xff1a; //.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> //链表容器 #inc…

Java面试准备篇:全面了解面试流程与常见问题

文章目录 1.1 Java面试概述1.2 面试流程和注意事项1.3 自我介绍及项目介绍1.4 常见面试问题 在现代职场中&#xff0c;面试是求职过程中至关重要的一环&#xff0c;特别是对于Java开发者而言。为了帮助广大Java开发者更好地应对面试&#xff0c;本文将提供一份全面的Java面试准…

15 Linux实操篇-RPM与YUM

15 Linux实操篇-RPM与YUM 文章目录 15 Linux实操篇-RPM与YUM15.1 rpm包的管理15.1.1 查询rpm包15.1.2 卸载和安装rpm包 15.2 yum 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示&#xff0c;下载链接见文末&#xff1a; 《鸟哥的…

【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何训练…

前端JavaScript面试100问(中)

31、http 的理解 ? HTTP 协议是超文本传输协议&#xff0c;是客户端浏览器或其他程序“请求”与 Web 服务器响应之间的应用层通信协议。HTTPS主要是由HTTPSSL构建的可进行加密传输、身份认证的一种安全通信通道。32、http 和 https 的区别 ? 1、https协议需要到ca申请证书&…

flask的配置项

flask的配置项 为了使 Flask 应用程序正常运行&#xff0c;有多种配置选项需要考虑。下面是一些基本的 Flask 配置选项&#xff1a; DEBUG: 这个配置项决定 Flask 是否应该在调试模式下运行。如果这个值被设为 True&#xff0c;Flask 将会提供更详细的错误信息&#xff0c;并…

go 查询采购单设备事项V3

一、版本说明 本版本在整合上两次的功能基础上&#xff0c;引进ini配置文件的读取事项&#xff0c;快速读取本地配置文件&#xff0c;完成读取设置 第一版&#xff1a;实现了严格匹配模式的查找 https://blog.csdn.net/wtt234/article/details/131979385 第二版&#xff1a;实…

作为程序员,你很有必要了解一下IVX

一、IVX是什么 iVX 是一个“零代码”的可视化编程平台&#xff0c;拥有方便的在线集成开发环境&#xff0c;不需要下载开发环境&#xff0c;打开浏览器即可随时随地进行项目编辑。iVX 还拥有“一站式”的云资源&#xff0c;通过这一套一站式服务&#xff0c;iVX 可以实现一站式…

详解STM32的GPIO八种输入输出模式,GPIO各种输入输出的区别、初始化的步骤详解,看这文章就行了(超详细)

在STM32微控制器中&#xff0c;常见的输入输出(GPIO)模式有八种&#xff0c;分别是推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入和模拟输入。下面我将为你解释每种模式的特点和区别&#xff0c;并提供相应的示例代码。 文章目录 介绍区别初…

MySql002——关系型数据库基础知识

前言&#xff1a;因为本专栏学习的是MySQL&#xff0c;而MySQL是关系型数据库&#xff0c;所以这篇文章就来介绍一些关系型数据库基础知识&#xff0c;至于其他知识小伙伴们可以自行学习&#xff0c;同时不足之处也欢迎批评指正&#xff0c;谢谢~ 一、MySQL关系型数据库(RDBMS)…

Spring、SpringMVC、SpingBoot的区别

Spring是一个IOC容器&#xff0c;用来管理Bean&#xff0c;使用依赖注入实现控制反转&#xff0c;可以狠方便的整合各种框架&#xff0c;提供AOP(切面)机制弥补OOP(面向对象)的代码重复问题、更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法使用&#xff0c;比如…

从实践彻底掌握MySQL的主从复制

目录 一、本次所用结构如图---一主多从级联&#xff1a; 二、IP。 三、配置M1&#xff1a; 四、从库M1S1&#xff1a; 五、从库M2配置&#xff1a; 六、 从库M2S1&#xff1a; 一、本次所用结构如图--- 一主多从级联&#xff1a; 二、IP。这里M1S1和M1S2一样的&#xff0…

图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index

LLM 如火如荼地发展了大半年&#xff0c;各类大模型和相关框架也逐步成型&#xff0c;可被大家应用到业务实际中。在这个过程中&#xff0c;我们可能会遇到一类问题是&#xff1a;现有的哪些数据&#xff0c;如何更好地与 LLM 对接上。像是大家都在用的知识图谱&#xff0c;现在…

查看maven发布时间的方法

查看maven发布时间的方法如下【 打开maven官网 选中Release Notes 即可查看对应版本的发布时间 】

【计算机网络】第 4 课 - 物理层

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、物理层的基本概念 2、物理层协议的主要任务 3、物理层任务 4、总结 1、物理层的基本概念 在计算机网络中&#xff0c;用来…

vim的高级用法-零宽匹配

零宽匹配 vim中&#xff0c;要进行零宽匹配&#xff0c;可以使用特殊字符和元字符来表示零宽度断言&#xff08;lookaround assertions&#xff09;。 如下是常用的零宽度断言 正前瞻断言&#xff08;Positive Lookahead Assertion&#xff09; 匹配某个位置后面跟特定模式…

力扣75——链表

总结leetcode75中链表的算法题解题思路。 上一篇&#xff1a;力扣75——队列 以下代码大部分为本人所写&#xff0c;少部分为官方示例代码。 力扣75——链表 1 删除链表的中间节点2 奇偶链表3 反转链表4 链表最大孪生和1-4 解题总结 1 删除链表的中间节点 题目&#xff1a; 给…