赞
踩
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之后,需要对其进行一些基础设置和测试,以确保其正常运行。如果出现问题,需要逐一排查相关的错误,并及时解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。