大数据技术

news/2025/3/25 20:55:17/文章来源:https://www.cnblogs.com/guqiaole/p/18788450

Hadoop

Hadoop是一个能够对大量数据进行分布式处理的软件框架

HDFS

​ HDFS(Hadoop Distributed File System,Hadoop的分布式文件管理系统),是Hadoop的两大核心之一,用于管理数据和文件

Hadoop安装

​ Hadoop可以在Window系统上运行,但其官方支持的操作系统只有Liunx,所以先要准备好虚拟机

​ 虚拟机准备好,可以创建一个hadoop用户,以便于今后使用

sudo useradd -m 用户名 -s /bin/bash   #创建用户
sudo passwd 用户名   #设置密码,需要输入两次
sudo adduser 用户名 sudo   #增加管理员权限

​ 创建完成后,注销现用户,改用hadoop用户登录虚拟机

接下来正式安装hadoop

java安装

​ hadoop是由Java编写的,所以需要安装jdk

​ 你可以先使用java -version来查看你的jdk版本,如果能显示java version信息,说明你已经安装了,跳过这一节

​ 如果你没有安装,请遵循以下步骤

1.选择正确的JDK

​ 首先,请选择与Hadoop版本相匹配的JDK版本,这里使用的是Hadoop3.3.6,匹配JDK1.8

tips:JDK8和JDK1.8是一个东西,原因是JDK在5版本以前都叫做1.x,后面就直接叫JDK5,JDK6了

​ Hadoop版本相匹配的JDK版本百度一下就知道了

2.安装java环境

​ 在/usr/lib目录下创建jvm文件夹 ,用于存储JDK文件,命令如下

cd /usr/lib   #进入lib目录
sudo mkdir jvm   #此命令为创建文件夹命令

​ 然后百度搜索JDK Download,进入oracle官网,下载名字类似于此文件的压缩包:

​ jdk-8u202-linux-x64.tar.gz

jdk-版本号-操作系统-系统位数.tar.gz,jdk8,liunx系统,64位,.tar.gz是压缩包的后缀名,类似于zip,rar

​ 注意,下载到你的虚拟机上,别下你的主机里

​ 默认的下载位置是主文件夹/下载(或Download)

​ 进入该文件夹,打开终端,使用一下命令解压压缩包

sudo tar -zxvf 你的压缩包名称 -C /usr/lib/jvm
# tar为压缩包命令 -zxvf表示解压.tar.gz后缀的压缩包 , -C和目录,表示解压到该目录下,这里直接解压到jvm目录下,你手动移动也可以

然后添加环境变量,打开~/下的.bashrc文件,用VIM也可以,用文本编辑器也可以,添加以下变量

export JAVA_HOME=/usr/lib/jvm/你的jdk文件夹名
export JRE_HOME=S{JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:${PATH}

​ 保存,退出,使用以下命令刷新配置

source ~/.bashrc

​ 然后输入java -version,查看是否出现java版本,出现成功

Hadoop下载

Apache Hadoop←Hadoop官网

​ 进去,点击Download

image-20250322101219129

​ 选择你要下载的版本,点BinaryDownload那栏的binary,进去后,点击最上面的带有.tar.gz后缀的连接,下载Hadoop压缩包

​ 下载完成后,解压到/usr/local/目录下,解压命令为 tar -zxvf 压缩包名,上面解压JDK说过了

​ 如果你下载的对的话,解压后的Hadoop文件夹应该是这样的

image-20250322102357664

​ 解压完成后,在/usr/local/目录下打开终端,输入以下命令

sudo mv ./你的hadoop文件夹名 ./hadoop #将你的hadoop文件夹名修改为hadoop
sudo chown -R hadoop ./hadoop #修改目录权限

然后再去~/.bashrc文件下添加环境变量

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
#将path修改为下面的
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${PATH}

输入hadoop version,查看hadoop版本,如果出现,成功

伪分布式安装

​ Hadoop对数据存储使用的是HDFS,在实际生产环境下是采用完全分布式模式的,HDFS在不同的机器上有不同的节点

​ 对于初学者使用伪分布式即可,即HDFS只有一个节点,也就是你的虚拟机

​ 无论哪种方式,都需要修改配置文件来对各组件的合作进行配置。伪分布式安装需要我们配置core-site.xml和hdfs-site.xml两个文件

​ 这两个文件里默认是只有一些注释的,在文件的末尾添加以下配置

core-site.xml:

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value></property><!--配置HDFS的地址和端口号--><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value> </property>
</configuration>

hdfs-site.xml:

<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/hadoop/tmp/dfs/data</value></property></configuration>

​ 配置完成后,回到你的hadoop文件夹,执行以下命令

cd /usr/local/hadoop #回到hadoop文件夹
./bin/hdfs namenode -format

​ 这一步是初始化HDFS,如果出现successfully formatted成功

错误情况

如果在初始化时出现ERROR:Unable to wirte in /usr/local/hadoop/logs. Aborting.,说明权限不够,有两种情况:

1.用户权限不够

2.文件权限不够

解决方案如下:

在命令前添加sudo前缀,使用root用户

设置SSH免密登录

​ Hadoop没有提供输入密码形式的SSH登录,所以要设置SSH免密登录

​ 首先安装SSH,ubuntu默认安装了客户端,所以这里只需要安装服务器端

sudo apt-get install openssh-server

​ 安装后,使用下命令登录本机

ssh localhost

​ 执行改命令后会让你输入密码,就是你用户的密码

​ 登录成功后,输入exit退出,打开/etc/ssh/sshd_config,修改一下配置文件

#将以下三个属性修改为yes,可以用ctrl+f查找
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes

​ 修改完后,输入以下命令来设置免密

cd ~/.ssh #进入ssh文件夹
ssh-keygen -t rsa
cat ./id_rsa.pub  >> ./authorized_keys

​ 执行ssh localhost登录本机,如果不需要密码就登陆成功了,说明免密登录成功

root用户设置免密

​ 这一步请跳过,后面出现错误时会指引你回来的

root用户设置免密和普通用户一样,只是进入root用户下在进行上面的免密操作即可

sudo su #进入root用户

同样的使用ssh localhost来测试在root用户下是否可以免密成功

启动HDFS

​ 进入/usr/local/hadoop执行以下命令

./sbin/start.dfs.sh #启动sbin目录下的start.dfs.sh脚本,用于启动hdfs
image-20250322122202297

​ 启动后如这样形式,输入jps后存在datenode和Namenode,代表HDFS启动成功

​ 可以通过访问localhost:9870来验证并查看Hadoop的信息

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

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

相关文章

User\main.c(7): error: #5: cannot open source input file ds18b02.h: No such file or directory

报错截图解决途径 复制报错信息上网搜索,一般的解决办法:在c/c++选项中的Include Paths中包含头文件,将移植过来的代码放到指定的文件夹里,在Floder Setup中设置新移植的文件路径。很可惜我确认过我包含了头文件,但仍然报同样错误。 最后发现我代码里面是 #include"d…

Bean注入几种方式 (放入Spring容器)

目录 1、XML方式注入set方式注入构造方法注入2、注解方式注入@Component + @ComponentScan@Configuration + @Bean + @ComponentScan@Import3、实现ImportBeanDefinitionRegistrar接口 4、实现FactoryBean 5、实现BeanDefinitionRegistryPostProcessor 一、XML方式注入 在现在这…

自然资源数据要素支撑场景建设

自然资源数据要素与场景建设是推动经济社会高质量发展的重要途径。随着数字经济的快速发展,自然资源数据已成为关键的生产要素,其价值挖掘和利用成为推动经济社会发展的关键。自然资源数据要素的重要性自然资源数据要素包括地理、土地、矿产、海洋等多源数据,是支撑经济社会…

C语言分支与循环基础应用编程

实验任务1#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5int main() {int number;int i;srand(time(0));for(i=0;i<N;++i){number=rand()%100+1;printf("20490042%04d\n",number);}return 0; }问题1:生成一个1~100的随机…

NSSCTF Round#28 Team web题解

真是让人操心,但是又无法转移视线ez_ssrf 很简单的ssrf,知识点在网上搜都能搜到 payload http://node3.anna.nssctf.cn:28658@127.255.255.254/flag ez_php 第一部分有个非预期,直接/file就能出flag is_numeric绕过和md5强比较,很简单的知识点,这里就不细说了 第二部分网上…

Netty源码—4.客户端接入流程

大纲 1.关于Netty客户端连接接入问题整理 2.Reactor线程模型和服务端启动流程 3.Netty新连接接入的整体处理逻辑 4.新连接接入之检测新连接 5.新连接接入之创建NioSocketChannel 6.新连接接入之绑定NioEventLoop线程 7.新连接接入之注册Selector和注册读事件 8.注册Reactor线程…

【Esp32】为 idf 定制本地 Arduino 组件

在开始今天的水文前,老周先要奉劝一下国内某些嵌入式砖家和穴者,不要看不起 Arduino,它不是一种开发板,而是一种规范。Arduino 的思想是正确的,把各种开发板封装为统一的 API,让许多开源库共享相同的基础代码,严重降低了移植成本。Arduino 本质上使用的是 C/C++ 开发,只…

编译原理第五次作业

2.2.1 1)S-> S S *-> S S + S *->a S + S *->a a + S *->a a + a * 2)3)L={由多个a,加号,乘号组成的后缀表达式} 2.2.2 1)L={0^n 1^n | n>=1} 2)L={由多个a,加号,减号组成的前缀表达式} 3)L={ε或任意排列,嵌套的括号} 4)L={ε或包含相同数量a,b的字符…

XN2025 集训记录 D2

我好想你们啊 . 我怀念高一啊 . 至少还有理由放任自己开心不是吗 .XN2025 集训记录 D2 又是摆烂的一天 , 感觉打模拟赛时候的自己和改题时的自己完全不是一个人 . 不过往好了想 , 至少足够的模拟赛量 , 意味着我的高效率时间虽然不多 , 但是还有 . 买了个usb转网线 , 破费 39.9…

基于对偶二次曲线的快速椭圆检测

利用对偶二次曲线可精确求解椭圆圆心坐标。1、对偶二次曲线原理 二次曲线也称圆锥曲线,其几何定义是一个平面与两个顶点相对的圆锥相交所产生的交线。通常二次曲线指的是点二次曲线,它是定义在曲线点上的方程。而在射影几何中,齐次点和齐次线存在着可以互换的二元关系,因此…

【程设の旅】Python速通作业三

这节课老师讲了Python的面向对象部分 速度比较快 但是结合前面cpp的大部分知识可以弄懂 最后一道题估计是py特性了 可以理解但是那两个函数不知道是什么鬼 01:运算符的实现 描述 程序填空class A:def __init__(self,x):self.x = x // 在此处补充你的代码 a,b,c = map(int,input…

C/C++开发文档和常用的输入方式汇总

前几天复习的几种输入方式和帮助文档C/C++开发文档获取 之前下载过应该开发文档,今天push到了Gitee上了。可以随时获取,链接字符串操作 C 字符串 | 菜鸟教程 输入输出【包含字符串】 C 输入 & 输出 | 菜鸟教程 #include<stdio.h> int main() {char s[20];int i = 0…