hadoop部署(大数据开发)

不知名小白

Email : 3627644202@qq.com

 Time of completion:2024.3.31

HADOOP部署过程

1. Hadoop的部署

(1)安装配置虚拟机:

  • 安装vm17
  • 安装centos7
  • 将不需要的硬件全部移除

选择NAT

  1. 软件选择:计算节点 / 带GUI的服务器
  2. 安装位置:整个20G的硬盘,点进去,点确定出来。
  3. 网络与主机名:(要查看网络适配器)
  • (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启动并测试

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安装

  1. python 安装:

[root]

yum search python3

yum install python3-devel.x86_64

部署心得

Hadoop的部署是一个相对复杂的过程,需要进行多个环境配置和软件安装。以下是一些心得和注意事项:

  1. 虚拟机和操作系统选择:在部署Hadoop之前,需要选择合适的虚拟机软件和操作系统。在示例中,选择了VMware虚拟机和CentOS 7操作系统。确保选择的虚拟机软件和操作系统与Hadoop版本兼容。
  2. 基础环境配置:在安装和配置虚拟机后,需要进行一系列基础环境配置,包括修改机器名、设置IP地址、关闭防火墙和SELinux等。这些配置是为了确保各个节点之间能够正常通信和互相识别。
  3. JDK和Hadoop安装:在配置基础环境后,需要安装JDK和Hadoop。确保正确设置JAVA_HOME和HADOOP_HOME环境变量,并在.bashrc文件中添加相应的配置。安装过程中可以使用tar命令解压安装包,并将解压后的目录放在适当的位置。
  4. 文件配置:Hadoop的配置文件对于集群的正常运行非常重要。在部署过程中,需要编辑core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等文件,根据实际情况配置各个节点的相关参数。确保配置文件中的各项设置正确无误。
  5. SSH免密登录:为了方便节点之间的通信,需要进行SSH免密登录的配置。在每个节点上生成SSH密钥,并将公钥复制到其他节点上,以实现节点之间的无密码登录。
  6. 启动和测试:完成上述配置后,可以启动Hadoop并进行测试。根据部署模式的不同,可以选择本地模式、伪分布式模式或全分布式模式进行测试。确保HDFS和YARN服务正常启动,并能够执行基本的Hadoop操作,如创建目录、上传文件和运行示例程序。
  7. 全分布式部署:如果需要进行全分布式部署,需要在每个节点上进行相应的配置和软件分发。确保所有节点都能够识别集群中的其他成员,并配置相关参数。在分发软件时,可以使用scp命令将安装包和配置文件复制到其他节点上。
  8. 注意事项:在部署过程中,需要注意以下几点:

a.确保各个节点之间的网络连接正常,能够相互通信。

b.配置文件中的参数要与实际环境和需求相匹配,避免配置错误导致集群无法正常运行。

c.检查防火墙和SELinux的设置,确保它们不会影响Hadoop的正常运行。

d.在部署过程中,及时备份重要的配置文件和数据,以防止意外情况发生。

解决问题:

  • 出现command not found错误:

解决:

  1. 检查~/.bashrc文件中是否配置了正确的PATH
  2. 如果~/.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(资源被占用了)

解决:

  1. 配置YARN资源管理器

<property>

  <name>yarn.nodemanager.resource.memory-mb</name>

  <value>1024</value>

</property>

  1. 配置DFS副本数量

<property>

  <name>dfs.replication</name>

  <value>2</value>

</property>

  • 节点无法相互通信:

解决:

a.检查节点的网络配置,确保每个节点都能够互相ping通。

b.检查防火墙和路由器设置,确保不会阻止节点之间的通信。

c.检查SSH免密登录配置,确保每个节点都能够通过SSH无密码登录其他节点。

  • HDFS初始化失败:

解决:

报错:error parsing conf core-site.xml

  1. 检查core-site.xml配置文件是否出错了,用vim命令可以再修改。  

  1. 这里出错可以看一下日志报告的什么错误,比如我的这个就是name打错成了neme,修改过后就初始化成功了。
  1. no rount to host
  1. 查看防火墙是否关闭
  2. 查看ip是否修改正确
  3. 查看/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

如果感觉对您有用,请点个关注支持一下吧

  • 68
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值