不知名小白
Email : 3627644202@qq.com
Time of completion:2024.3.31
HADOOP部署过程
1. Hadoop的部署
(1)安装配置虚拟机:
- 安装vm17
- 安装centos7
- 将不需要的硬件全部移除
选择NAT
- 软件选择:计算节点 / 带GUI的服务器
- 安装位置:整个20G的硬盘,点进去,点确定出来。
- 网络与主机名:(要查看网络适配器)
- (1) 打开网络。记录IP段和默认路由IP
- (2) 静态IP: 配置->IPV4 ->方法:手动 -> Add -> DNS ***
- 主机名的修改。
- 输入root密码,新建hadoop用户。建议密码:123
- 使用ifconfig显示 IP, 并使用远程链接软件连接它。成功。关机
(Xshell远程连接)
- 使用VMware,新建一个快照 snapshot
(2)配置基础环境(以root权限登录,su命令):
- 修改机器名:vi /etc/hostname
- 修改IP地址vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 机器互认: vi /etc/hosts
- 关闭防火墙systemctl disable firewalld.service
- 关闭SELINUX vi /etc/selinux/config
- Reboot
(3)安装JDK和Hadoop:
- Xftp传输文件
- tar -zxf 命令将安装包解压,将解压后的目录放到合适的地方
推荐:/home/hadoop/program
tar -zxf hadoop-3.3.1.tar.gz
tar -zxf jdk-8u333-linux-x64.tar.gz
Hadoop目录:/home/hadoop/program/hadoop-3.3
JDK目录:/home/hadoop/program/jdk-1.8
- 在命令行中键入
export JAVA_HOME=/home/hadoop/program/jdk-1.8
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/home/hadoop/program/hadoop-3.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- 测试
java -version
hadoop version
- 将上述export语句写入 .bashrc 文件中, 并source .bashrc
(4)Hadoop 配置:
- 文件配置
vi core-site.xml
vi hdfs-site.xml
- Ssh免密登陆
cd
ssh-keygen
ssh-copy-id localhost
- local mode
cd $HADOOP_HOME
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
cat output/*
- pesodu-distributed mode
- HDFS启动并测试
- 创建空的目录-> 格式化 -> 启动hdfs服务 -> 通过网址观察 http://192.168.109.128:9870/
cd $HADOOP_HOME
rm -rf output
bin/hdfs namenode -format
sbin/start-all.sh
bin/hdfs dfs -mkdir -p /user/hadoop
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -get output
cat output/*
(5)伪分布式Hadoop:
- 文件配置
vi mapred-site.xml
vi yarn-site.xml
- 修改 .bashrc
cd
vi .bashrc
export HADOOP_MAPRED_HOME=$HADOOP_HOME
source .bashrc
- 测试
cd $HADOOP_HOME
start-dfs.sh
start-yarn.sh
bin/hdfs dfs -mkdir -p /user/hadoop
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -cat output/*
(6)全分布式Hadoop:
- 每台机器
每台机器都认识集群中的所有成员 /etc/hosts,
防火墙关闭
systemctl disable firewalld
- selinux关闭
vi /etc/selinux/config
selinux=disabled
- SSH让所有机器,都可以免密互相登录
[所有机器]:
cd
rm -rf .ssh
ssh-keygen
ssh-copy-id bd0
ssh-copy-id bd1
ssh-copy-id bd2
[bd0]
cd
cd .ssh
scp authorized_keys hadoop@bd1:/home/hadoop/.ssh
scp authorized_keys hadoop@bd2:/home/hadoop/.ssh
- 增加伪分布式模式下的一些参数
[bd0]:
stop-yarn.sh
stop-dfs.sh
[bd0操作,推向所有机器]:
[bd0]
vi workers
vi yarn-site.xml
- 分发软件:
cd
scp -r program hadoop@bd1:/home/hadoop/
scp -r program hadoop@bd2:/home/hadoop/
scp .bashrc hadoop@bd1:/home/hadoop/
scp .bashrc hadoop@bd2:/home/hadoop/
[bd1]
source .bashrc
[bd2]
source .bashrc
[bd0]
hdfs namenode -format
- [bd0]测试:
cd $HADOOP_HOME
start-dfs.sh
start-yarn.sh
bin/hdfs dfs -mkdir -p /user/hadoop
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -cat output/*
8080:
(7)Spark安装:
- 下载spark及配套的scala
scala: https://www.scala-lang.org/download/2.12.15.html
spark: https://spark.apache.org/downloads
注意与Hadoop,Scala版本的选择
- 解压软件包
tar -zxf scala-2.12.15.tgz
tar -zxf spark-3.5.0-bin-hadoop3.tgz
规划:
/home/hadoop/program/spark-3.5.0-bin-hadoop3
/home/hadoop/program/scala-2.12.15
- 写配置文件
export SCALA_HOME=/home/hadoop/program/scala-2.12.15
export SPARK_HOME=/home/hadoop/program/spark-3.5.0-bin-hadoop3
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$SCALA_HOME/bin:$PATH
- 测试:
(8)YARN模式安装
- vi .bashrc
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
source .bashrc
- vi $HADOOP_CONF_DIR/yarn-site.xml
- 分发
- 测试
(9)python安装
- python 安装:
[root]
yum search python3
yum install python3-devel.x86_64
部署心得
Hadoop的部署是一个相对复杂的过程,需要进行多个环境配置和软件安装。以下是一些心得和注意事项:
- 虚拟机和操作系统选择:在部署Hadoop之前,需要选择合适的虚拟机软件和操作系统。在示例中,选择了VMware虚拟机和CentOS 7操作系统。确保选择的虚拟机软件和操作系统与Hadoop版本兼容。
- 基础环境配置:在安装和配置虚拟机后,需要进行一系列基础环境配置,包括修改机器名、设置IP地址、关闭防火墙和SELinux等。这些配置是为了确保各个节点之间能够正常通信和互相识别。
- JDK和Hadoop安装:在配置基础环境后,需要安装JDK和Hadoop。确保正确设置JAVA_HOME和HADOOP_HOME环境变量,并在.bashrc文件中添加相应的配置。安装过程中可以使用tar命令解压安装包,并将解压后的目录放在适当的位置。
- 文件配置:Hadoop的配置文件对于集群的正常运行非常重要。在部署过程中,需要编辑core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等文件,根据实际情况配置各个节点的相关参数。确保配置文件中的各项设置正确无误。
- SSH免密登录:为了方便节点之间的通信,需要进行SSH免密登录的配置。在每个节点上生成SSH密钥,并将公钥复制到其他节点上,以实现节点之间的无密码登录。
- 启动和测试:完成上述配置后,可以启动Hadoop并进行测试。根据部署模式的不同,可以选择本地模式、伪分布式模式或全分布式模式进行测试。确保HDFS和YARN服务正常启动,并能够执行基本的Hadoop操作,如创建目录、上传文件和运行示例程序。
- 全分布式部署:如果需要进行全分布式部署,需要在每个节点上进行相应的配置和软件分发。确保所有节点都能够识别集群中的其他成员,并配置相关参数。在分发软件时,可以使用scp命令将安装包和配置文件复制到其他节点上。
- 注意事项:在部署过程中,需要注意以下几点:
a.确保各个节点之间的网络连接正常,能够相互通信。
b.配置文件中的参数要与实际环境和需求相匹配,避免配置错误导致集群无法正常运行。
c.检查防火墙和SELinux的设置,确保它们不会影响Hadoop的正常运行。
d.在部署过程中,及时备份重要的配置文件和数据,以防止意外情况发生。
解决问题:
-
出现command not found错误:
解决:
- 检查~/.bashrc文件中是否配置了正确的PATH
- 如果~/.bashrc设置正确,是否没有执行source ~/.bashrc 使环境变量生效
-
没有datanode进程:
解决:
a. NameNode没有格式
b. 环境变量配置错误
c. Ip和hostname绑定失败,需要通过ip a查看ip地址,重新配置/etc/hosts文件,设置正确的ip和hostname
d. hostname含有特殊符号如.(符号点),会被误解析
e. reboot重启
-
启动dfs有datanode启动yarn没有datanode(资源被占用了)
解决:
- 配置YARN资源管理器
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
- 配置DFS副本数量
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
-
节点无法相互通信:
解决:
a.检查节点的网络配置,确保每个节点都能够互相ping通。
b.检查防火墙和路由器设置,确保不会阻止节点之间的通信。
c.检查SSH免密登录配置,确保每个节点都能够通过SSH无密码登录其他节点。
-
HDFS初始化失败:
解决:
报错:error parsing conf core-site.xml
- 检查core-site.xml配置文件是否出错了,用vim命令可以再修改。
- 这里出错可以看一下日志报告的什么错误,比如我的这个就是name打错成了neme,修改过后就初始化成功了。
- no rount to host
- 查看防火墙是否关闭
- 查看ip是否修改正确
- 查看/etc/hosts文件是否配置。
-
permision相关问题
解决:
是权限问题,执行下列代码
a. chown -R hadoop:hadoop /home/hadoop
b. chmod 700 /home/hadoop
c. chmod 700 /home/hadoop/.ssh
d. chmod 644 /home/hadoop/.ssh/authorized_keys
e. chmod 600 /home/hadoop/.ssh/id_rsa
同时查看hadoop文件夹下的每个文件是否都是hadoop组下的hadoop用户,否则就要重新设置用户了。
-
没有namenode
解决:
试试看重新格式化,hadoop namenode -format
如果感觉对您有用,请点个关注支持一下吧