Hadoop是一种开源框架,可用于处理大数据集。它基于Google的MapReduce算法和Google文件系统(GFS)的概念而来。Hadoop可在廉价硬件上运行,并能够提供高度可靠性和容错性。
Hadoop主要由两个核心组件组成:
使用Hadoop进行大数据处理时,需要将数据划分为较小的块,然后将这些块分配给多台机器进行并行处理。每个机器都可以在本地对其分配的块执行MapReduce任务,并将结果上传到主节点进行聚合。整个过程非常复杂,但Hadoop能够自动完成这些工作,使用户只关注业务逻辑即可。
Hadoop最初由Apache基金会开发,现在已成为大数据领域的标准之一。
软件及环境 | 版本 |
---|---|
VMware | 17 |
Ubuntu | 20.0.4 |
Hadoop | 3.3.5 |
虚拟机下载网址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
(安装过程略)
激活:
JU090-6039P-08409-8J0QH-2YR7F 或者 MC60H-DWHD5-H80U9-6V85M-8280D
安装好后界面:
选择虚拟网络编辑器:
这里配置为192.168.200.0/24网段
网络给DHCP也可:
到这里我们的网络环境就配置好了,也可以在Ubuntu中配置固定的IP地址,这个我们放到后面。
下载Ubuntu镜像文件(清华源):https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/
我们选择带桌面:
下载完成后为iso文件
新建虚拟机
这里我们自定义:
这里如果选择选项二VMware会自动给你简易安装Ubuntu,推荐向手动安装:
选择虚拟机保存位置注意要放在一个比较大的硬盘中:
存储可以按需设置,注意这里的硬盘是虚拟的硬盘并不会真的将硬盘拆分,VMware是用多少存储多少,并不会影响其他使用:
可以向我一样将虚拟机建个文件夹分类:
我们设置一个镜像文件:
网卡选择nat(可以出网):
其他配置按需,内存和cpu按照电脑配置更改注意内存至少2G,配置好后开机:
语言可以选择中文:
我们选择汉语拼音:
这里注意不要安装更新不然下载官方源非常慢:
这里是在虚拟环境对硬盘没有影响:
时区选择上海:
ip a 命令查看网卡是否有ip地址
ping baidu.com测试网络是否正常:
sudo passwd root#给root设置密码
su - #切换到root
apt-get update #更新软件源缓存
apt-get install vim -y # 安装一下vim,因为版本自带的vi有问题这个一直没有修复过
vim /etc/apt/sources.list #直接输入:200dd然后按i健将下面的url复制进去,复制完成后:wq保存退出
阿里源:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
如果无法复制到vm虚拟机直接用内置火狐搜索阿里源即可复制进去:这个问题后面解决
apt-get upgrade #更新
apt-get install ssh -y # 安装ssh服务
vim /etc/ssh/sshd_config #按i健写入配置,:wq保存退出
systemctl enable ssh #加入开机启动
systemctl start ssh #启动ssh服务
systemctl restart ssh #重启ssh服务
可以看到我们的服务启动22端口:
我们使用ssh工具连接这里推荐FinalShell,也可以用其他的ssh工具如CRT
输入用户名密码和IP连接:
然后我们拍个快照(快照可以快速恢复环境):
快速克隆slave节点:
关机后操作:
选择完整克隆
按照一样的方法克隆slave2:
克隆完成后就有三台服务器了:
修改slave1和2的内存为2G:
修改slavel1的主机名:
sudo vim /etc/hostname
reboot #重启
slavel2一样操作
为了区别slavel的用户这里我们创建用户并删除原有的master用户:
使用slavel1登录:删除master用户
deluser master
slavel2相同操作
查看地址:
使用ssh工具连接:
主机名 | IP |
---|---|
Master | 192.168.200.128 |
slave1 | 192.168.200.129 |
slave2 | 192.168.200.130 |
固定IP地址: | |
其他两台一样设置:
修改三台的hosts文件:
vim /etc/hosts
将以下内容键入:
192.168.200.128 master
192.168.200.129 slave1
192.168.200.130 slave2
注意slave12需要修改127.0.0.1:
修改配置后用命令重启网卡或者重启生效:
测试连通性:
配置免密登录(普通用户权限):生产环境尽量使用用户权限
生成公钥
ssh-keygen -t rsa#一直按回车
其他两台机器一样操作:
我们将公钥进行整合
master:
cp id_rsa.pub authorized_keys # 复制一个公钥
将其他两个公钥复制到此文件内:
将公钥分发给其他两台电脑或者将公钥复制过去:
其他两台:
测试:
免密登录成功
https://adoptium.net/zh-CN/temurin/releases/?version=8
将java上传给master节点:
以下配置只在master上操作:
tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz #解压
chmod 755 jdk8u372-b07/ -R #加个权限
vim /root/.bashrc #编辑系统环境变量
最后一行添加:
# JAVA
export JAVA_HOME=/opt/jdk8u372-b07
export PATH=${JAVA_HOME}/bin:$PATH
source /root/.bashrc #更新环境变量
官网下载:https://hadoop.apache.org/releases.html
点击下载最好使用迅雷:
这里使用master配置后用scp传输给其他两台:
上传hadoop上传到master的/opt
tar -zxvf hadoop-3.3.5.tar.gz #解压
配置环境变量:
vim /root/.bashrc #添加下面内容
cd /opt
chmod 755 hadoop-3.3.5 -R
# HADOOP
export HADOOP_HOME=/opt/hadoop-3.3.5
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
source /root/.bashrc #更新环境变量
修改hadoop配置文件:
hadoop配置存在与/opt/hadoop-3.3.5/etc/hadoop/目录下:
cd /opt/hadoop-3.3.5/etc/hadoop #进入目录
vim core-site.xml #修改
<configuration>
<property>
<name>fs.defaultFS</name>
#这里可以修改为hdfs://master:9000
<value>hdfs://192.168.200.128:9000</value>
</property>
# 配置hadoop运行时产生数据的存储目录,不是临时目录
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.5/tmp</value>
</property>
</configuration>
保存退出:
vim hdfs-site.xml
修改以下配置:
<configuration>
# 配置在hdfs中,一份文件存几份,默认是3份,一台机器只能存一份,小于datanode数量
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
# 是否打开权限检查系统
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
# 命名空间和事务在本地文件系统永久存储的路径
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-3.3.5/data/namenode</value>
</property>
# DataNode在本地文件系统中存放块的路径
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-3.3.5/data/datanode</value>
</property>
</configuration>
修改完配置后需要创建以下文件夹用于数据存放:
mkdir -p /opt/hadoop-3.3.5/data/namenode
mkdir -p /opt/hadoop-3.3.5/data/datanode
mkdir -p /opt/hadoop-3.3.5/tmp
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
# 指定yarn的resourcemanager的地址(该地址是resourcemanager的主机地址
,即主机名或该主机的ip地址
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
# 指定mapreduce执行shuffle时获取数据的方式
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vim mapred-site.xml
<configuration>
# 指定mapreduce运行在yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
</property>
</configuration>
在任意地方添加 JAVA_HOME和系统运行环境:
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk8u362-b09
export JAVA_HOME=/opt/jdk8u372-b07
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
vim workers
master
slave1
slave2
配置完成后将hadoop和java发送给slave1和2:
scp /opt/hadoop-3.3.5 slave1:/opt
scp /opt/hadoop-3.3.5 slave2:/opt
scp /opt/jdk8u372-b07 slave1:/opt
scp /opt/jdk8u372-b07 slave2:/opt
scp /root/.bashrc slave1:/root/
scp /root/.bashrc slave2:/root/
在slave1和2执行:
source /root/.bashrc
使用java -version查看是否配置成功
三台执行:
hdfs namenode -format
如果初始化失败,需要用下面的命令手动清空 namenode 和 datanode 文件夹,调整配置后,重新初始化
脚本位置为:/opt/hadoop-3.3.5/sbin
./start-all.sh #启动所有进程
./start-dfs.sh #启动hdfs进程
./start-yarn.sh #启动yarn进程
./stop-all.sh #关闭所有进程
./stop-dfs.sh #关闭hdfs进程
./stop-yarn.sh #关闭yarn进程
Namenode:
hdfs --daemon start namenode
hdfs --daemon stop namenode
hdfs --daemon restart namenode
Datanode:
hdfs --daemon start datanode
hdfs --daemon stop datanode
hdfs --daemon restart datanode
ResourceManager:
yarn --daemon start resourcemanager
yarn --daemon stop resourcemanager
yarn --daemon restart resourcemanager
NodeManager:
yarn --daemon start nodemanager
yarn --daemon stop nodemanager
yarn --daemon restart nodemanager
./start-all.sh
启动完毕后可以使用 jps 命令查看启动的 hadoop 进程
可以访问 http://192.168.200.128:9870或http://master:9870 ,查看 HDFS 运行情况
可以访问http://192.168.200.128:8088或 http://master:8088 查看所有 Yarn 任务的运行情况
修改hosts文件:将127.0.0.1 master注释掉,重启即可
cd /opt/hadoop-3.3.5/share/hadoop/mapreduce #进入mapreduce目录
hadoop jar hadoop-mapreduce-examples-*.jar pi 10 10#我们可以使用一个简单的例子来测试一下 hadoop 是否能够正常运行我们从 hadoop 安装文件夹,启动一个终端,使用下面的命令,计算 pi 值。
到这里我们的hadoop就能正常使用了
安装到这里就结束了,这里用的root用户安装的,在生产环境中建议使用普通用户进行安装,总结以下步骤
在安装Hadoop之后,需要完成以下几个步骤才能开始使用:
配置环境变量
将Hadoop的bin和sbin目录加入PATH环境变量中,以便直接使用Hadoop命令。
修改配置文件
根据实际情况修改Hadoop的配置文件,特别是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等。
格式化HDFS
在第一次启动Hadoop之前,需要格式化HDFS来创建默认的目录结构。
启动Hadoop
使用start-all.sh脚本或手动启动各个组件的进程,开始运行Hadoop集群。
测试Hadoop
可以使用Hadoop自带的示例程序,如WordCount和PiEstimator等,来测试Hadoop集群是否正确运行。
总的来说,在安装和配置Hadoop之后,需要对其进行一些基础设置和测试,以确保其正常运行。如果出现问题,需要逐一排查相关的错误,并及时解决。
文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文
文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作 导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释: cwy_init/init_123..._达梦数据库导入导出
文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js
文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6
文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输
文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...
文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure
文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割
文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答
文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。
文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入
文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf