Hadoop集群搭建-详细安装配置

Hadoop集群搭建-详细安装配置

Hadoop是一个分布式系统,可以通过在多台计算机上搭建Hadoop集群来实现更高效的数据处理和存储。

  • 准备机器

在每台计算机上安装Java,并设置JAVA_HOME环境变量。确保每台计算机都有相同的版本和配置。

机器名称

地址

描述

hadoop130

192.168.64.130

hadoop131

192.168.64.131

hadoop132

192.168.64.132

关闭防火前执行如下命令

systemctl stop firewalld

systemctl disable firewalld.service

集群部署规划

hadoop130

hadoop131

hadoop132

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode DataNode

YARN

NodeManager

ResourceManager NodeManager

NodeManager

  • 准备jar

hadoop-3.3.6.tar.gz 上传

  • 解压配置

1》解压

tar -zxvf hadoop-3.3.6.tar.gz

2》移动

mv hadoop-3.3.6 /opt/module

3》修改配置文件

配置文件在 etc/hadoop

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件

• workers : 配置从节点( DataNode )有哪些
• hadoop-env.sh : 配置 Hadoop 的相关环境变量
• core-site.xml : Hadoop 核心配置文件
• hdfs-site.xml : HDFS 核心配置文件

1》配置Hadoop环境

vi  /etc/profile.d/my_env.sh

添加以下内容

#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.3.6

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

更新一下profile文件,让环境生效

source /etc/profile

     2》修改四个配置文件

  1. core-site.xml

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

  <!--ameNode address -->

  <property>

​    <name>fs.defaultFS</name>

​    <value>hdfs://hadoop130:8020</value>

  </property>

  <!--adoop  data path -->

  <property>

​    <name>hadoop.tmp.dir</name>

​    <value>/opt/module/hadoop-3.3.6/data</value>

  </property>

  <!--HDFS net page  user -->

  <property>

​    <name>hadoop.http.staticuser.user</name>

​    <value>root</value>

  </property>

</configuration>

  1. hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

  <!-- nn web visit address-->

  <property>

​    <name>dfs.namenode.http-address</name>

​    <value>hadoop130:9870</value>

  </property>

  <!-- 2nn web visit address -->

  <property>

​    <name>dfs.namenode.secondary.http-address</name>

​    <value>hadoop132:9868</value>

  </property>

</configuration>

  1. yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

  <!--MR:shuffle -->

  <property>

​    <name>yarn.nodemanager.aux-services</name>

​    <value>mapreduce_shuffle</value>

  </property>

  <!--resourceManager address-->

  <property>

​    <name>yarn.resourcemanager.hostname</name>

​    <value>hadoop131</value>

  </property>

  <!--nvironment  -->

  <property>

​    <name>yarn.nodemanager.env-whitelist</name>        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

  </property>

</configuration>

  1. mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

  <!--MapReduce run on Yarn-->

  <property>

​    <name>mapreduce.framework.name</name>

​    <value>yarn</value>

  </property>

</configuration>

4》hadoop-env.sh

添加以下内容

export JAVA_HOME=/usr/local/jdk1.8.0_381

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

5》配置workers

vi /opt/module/hadoop-3.3.6/etc/hadoop/workers

#添加以下内容,该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

hadoop130

hadoop131

hadoop132

  • 运行测试

1SSH无密登录配置

 vi /etc/hosts 文件,添加域名与IP的映射

192.168.64.130 hadoop130

192.168.64.131 hadoop131

192.168.64.132 hadoop132

密码配置

位置:  /root/.ssh

生成:ssh-keygen -t rsa

拷贝:ssh-copy-id hadoop130

ssh-copy-id hadoop131

ssh-copy-id hadoop132

   测试:ssh hadoop131     

           exit

ssh hadoop132

exit

2》把/opt/module/hadoop-3.3.6 拷贝到另外两台机器上

cd /opt/module

scp -r hadoop-3.3.6 hadoop131:/opt/module

scp -r hadoop-3.3.6 hadoop132:/opt/module

3》启动集群

3.1如果集群是第一次启动,需要在hadoop130节点格式化NameNode

hdfs namenode –format

出现:

2023-07-26 14:39:35,389 INFO common.Storage: Storage directory /opt/module/hadoop-3.3.6/data/dfs/name has been successfully formatted.

2023-07-26 14:39:35,421 INFO namenode.FSImageFormatProtobuf: Saving image file /opt/module/hadoop-3.3.6/data/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression

2023-07-26 14:39:35,516 INFO namenode.FSImageFormatProtobuf: Image file /opt/module/hadoop-3.3.6/data/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 399 bytes saved in 0 seconds .

2023-07-26 14:39:35,535 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0

2023-07-26 14:39:35,551 INFO namenode.FSNamesystem: Stopping services started for active state

2023-07-26 14:39:35,551 INFO namenode.FSNamesystem: Stopping services started for standby state

2023-07-26 14:39:35,557 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.

2023-07-26 14:39:35,558 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at hadoop130/192.168.64.130

************************************************************/

3.2启动HDFS

start-dfs.sh

出现

Jps检查

浏览器检查

hadoop130:9870或192.168.64.130:9870

3.3 在Hadoop131上启动yarn

start-yarn.sh

jps检查

浏览器中输入:http://hadoop131:8088

http://192.168.64.131:8088

3.4 测试

3.4.1 创建文件目录

创建目录

hadoop fs -mkdir /wcinput

上传文件

hadoop fs -put word.txt /wcinput

在浏览器上输入hadoop130:9870

检查文件OK

3.4.2 WordCount测试

hadoop jar \

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \

wordcount \

/wcinput/word2.txt \

/wcinput/outtxt2/

执行需要一定时间。。。

结果显示

查看结果

 显示结果文件

hadoop fs -ls /wcinput/outtxt2

显示结果内容

hadoop fs -cat /wcinput/outtxt2/part-r-00000

运行自己打包程序(读取hdfs下/wcinput/word2.txt文件内容)

hadoop jar ./hadoopbase.jar com.bigdata.hadoopbase.test.ReadTxt

3.5 启动停止命名

1》整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

2》整体启动/停止YARN

start-yarn.sh/stop-yarn.sh

3》分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

4》启动/停止YARN(在Hadoop131上运行)

yarn --daemon start/stop resourcemanager/nodemanager

4》历史服务

4.1》修改 mapred-site.xml

<property>

        <name>mapreduce.framework.name></name>

        <value>yarn</value>

   </property>

<!-- 历史服务器端地址 -->

<property>

    <name>mapreduce.jobhistory.address</name>

    <value>hadoop130:10020</value>

</property>

<!-- 历史服务器web端地址 -->

<property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>hadoop130:19888</value>

</property>

分发到hadoop131和hadoop132 上

4.2》启动历史服务

在hadoop130上启动

mapred --daemon start historyserver

4.3》查看历史服务

jps

查看JobHistory

http://hadoop130:19888/jobhistory

  • 说明

端口说明

默认端口更改

最近配置Hadoop3.x集群的时候发现了一些端口变动,导致web访问UI界面失败,查阅资料共享一下。

Namenode 端口:
2.x
端口 3.x端口 name desc
50470 9871 dfs.namenode.https-address The namenode secure http server address and port.
50070 9870 dfs.namenode.http-address The address and the base port where the dfs namenode web ui will listen on.
8020 9820 fs.defaultFS
指定HDFS运行时nameNode地址
 Secondary NN 端口:
2.x
端口 3.x端口 name desc
50091 9869 dfs.namenode.secondary.https-address The secondary namenode HTTPS server address and port
50090 9868 dfs.namenode.secondary.http-address The secondary namenode HTTPS server address and port
 Datanode
端口:
2.x
端口 3.x端口 name desc
50020 9867 dfs.datanode.ipc.address The datanode ipc server address and port.
50010 9866 dfs.datanode.address The datanode server address and port for data transfer.
50475 9865 dfs.datanode.https.address The datanode secure http server address and port
50075 9864 dfs.datanode.http.address The datanode http server address and por
 Yarn
端口
2.x端口 3.x端口 name desc
8088 yarn.resourcemanager.webapp.address http
服务端口

hadoop jar命令解读        

hadoop jar ./test/wordcount/wordcount.jar org.codetree.hadoop.v1.WordCount /test/chqz/input /test/chqz/output

各段的含义:

(1) hadoop:${HADOOP_HOME}/bin下的 shell脚本名。

(2) jar:hadoop脚本需要的 command参数。

(3) ./test/wordcount/wordcount.jar:要执行的jar包在 本地文件系统中的完整路径, 参递给RunJar类。

(4) org.codetree.hadoop.v1.WordCount:main方法所在的类, 参递给RunJar类。

(5) /test/chqz/input**:** 传递给WordCount类,作为 DFS文件系统的路径,指示输入数据来源。

(6) /test/chqz/output: 传递给WordCount类,作为 DFS文件系统的路径,指示输出数据路径。

Hadoop启停服务命令及说明

类属

命令脚本

说明

All

sbin/start-all.sh

启动所有的Hadoop守护进程,包括NameNode、DataNode、ResourceManager、NodeManager、Secondary NameNode

sbin/stop-all.sh

停止所有的Hadoop守护进程,包括NameNode、DataNode、ResourceManager、NodeManager、Secondary NameNode

HDFS

sbin/start-dfs.sh

启动Hadoop HDFS守护进程NameNode、SecondaryNameNode、DataNode

sbin/stop-dfs.sh

停止Hadoop HDFS守护进程NameNode、SecondaryNameNode和DataNode

sbin/hadoop-daemons.sh start namenode

单独启动NameNode守护进程

sbin/hadoop-daemons.sh stop namenode

单独停止NameNode守护进程

sbin/hadoop-daemons.sh start datanode

单独启动DataNode守护进程

sbin/hadoop-daemons.sh stop datanode

单独停止DataNode守护进程

sbin/hadoop-daemons.sh start secondarynamenode

单独启动SecondaryNameNode守护进程

sbin/hadoop-daemons.sh stop secondarynamenode

单独停止SecondaryNameNode守护进程

yarn

sbin/start-yarn.sh

启动ResourceManager、NodeManager

sbin/stop-yarn.sh

停止ResourceManager、NodeManager

sbin/yarn-daemon.sh start resourcemanager

单独启动ResourceManager

sbin/yarn-daemons.sh start nodemanager

单独启动NodeManager

sbin/yarn-daemon.sh stop resourcemanager

单独停止ResourceManager

sbin/yarn-daemons.sh stopnodemanager

单独停止NodeManager

历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver

手动启动jobhistory

sbin/mr-jobhistory-daemon.sh stop historyserver

手动停止jobhistory

关于hadoop jar命令

hadoop jar MinTemperature.jar MinTemperature /dir3in/temperature.txt  /dir4/out

命令的含义:

hadoop:$HADOOP_HOME/bin 下的shell脚本名。

1. jar:hadoop脚本需要的command参数。

2. MinTemperature.jar:要执行的jar包在本地文件系统中的完整路径。

3. MinTemperature:main方法所在的类,全类名。

4. /dir3/in/temperature.txt:HDFS文件系统的路径,指示输入数据来源。

5. /dir4/out:HDFS文件系统的路径,指示输出数据路径。

特注: 1,2,3必须有

运行jar式例

一个输入文件

hadoop jar ./demopara.jar com.example.hadoop3Demo.test.WordCountDriverPara  "hdfs:/wcinput/words.txt" "hdfs:/out90"

固定一个输入文件 外加一个输入文件

hadoop jar ./demopm.jar com.example.hadoop3Demo.test.WordCountDriverPara hdfs:/wcinput/words.txt hdfs:/out920

hdfs dfs -cat /out920/part-r-00000

多个输入文件(1个输入文件)

hadoop jar ./demopm2.jar com.example.hadoop3Demo.test.WordCountDriverPara hdfs:/wcinput/words.txt hdfs:/out921

hdfs dfs -cat /out921/part-r-00000

多个输入文件(2个输入文件 程序内固定一个,外部参数一个)
hadoop jar ./demopm2.jar com.example.hadoop3Demo.test.WordCountDriverPara hdfs:/wcinput/words.txt hdfs:/wcinput/words.txt hdfs:/out922

hdfs dfs -cat /out922/part-r-00000

多个输入文件(2个输入文件 外部参数2个)

hadoop jar ./demopm2.jar com.example.hadoop3Demo.test.WordCountDriverPara hdfs:/wcinput/words.txt /wcinput/words.txt hdfs:/out92l

hdfs dfs -cat /out92l/part-r-00000


        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值