Hadoop集群安装配置

本文详细介绍了如何从下载Hadoop安装包开始,配置环境变量,设置核心、HDFS、YARN和MapReduce配置文件,以及启动和验证Hadoop集群的过程,包括名称节点、文件系统、资源管理器和Web界面的配置。
摘要由CSDN通过智能技术生成

Hadoop安装教程

1、解压Hadoop安装包:tar -zxvf hadoop-3.3.2.tar.gz

2、配置Hadoop环境变量:sudo vim /etc/profile 文末添加以下内容

export HADOOP_HOME=/export/server/hadoop-3.3.2

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

分发到其他节点xsync /etc/profile

各节点分别使配置生效 source /etc/profile

3、配置Hadoop默认文件(需要配置的文件均在以下目录/export/server/hadoop-3.3.2/etc/hadoop/)

(1)第一类文件hadoop-env.sh:vim /export/server/hadoop-3.3.2/etc/hadoop/hadoop-env.sh

文末添加内容

export JAVA_HOME=/export/server/jdk1.8.0_131

export HDFS_NAMENODE_USER=ljr

export HDFS_DATANODE_USER=ljr

export HDFS_SECONDARYNAMENODE_USER=ljr

export YARN_RESOURCEMANAGER_USER=ljr

export YARN_NODEMANAGER_USER=ljr

(2)第二类文件:core-site.xml、hdfs-site.xml、yarn-site.xmlmapred-site.xml

core-site.xml:指定namenode、文件储存位置

hdfs-site.xml:可指定NameNode web 端访问地址

yarn-site.xml:指定resourcemanager

mapred-site.xml:指定运行模式yarn模式/local模式

① vim /export/server/hadoop-3.3.2/etc/hadoop/ core-site.xml

<configuration>

<!-- 指定namenode -->

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://node1:8020</value>

</property>

<property>

  <name>fs.trash.interval</name>

  <value>1440</value>

</property>

<!-- global properties设置Hadoop本地保存数据路径 -->

<property>

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

  <value>/export/server/hadoop-3.3.2/data</value>

</property>

<!-- Static Web User Filter properties.设置Hadoop web UI 用户身份 -->

<property>

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

  <value>ljr</value>

</property>

<!-- 整合hive用户代理设置 -->

<property>

  <name>hadoop.proxyuser.ljr.hosts</name>

  <value>*</value>

<name>hadoop.proxyuser.ljr.groups</name>

  <value>*</value>

</property>

<!-- 指定zookeeper地址 -->

<property>

   <name>ha.zookeeper.quorum</name>

   <value>node1:2181,node2:2181,node3:2181,node4:2181</value>

</property>

</configuration>

② vim /export/server/hadoop-3.3.2/etc/hadoop/ hdfs-site.xml

<configuration>

<!-- NameNode web 端访问地址-->

<property>

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

        <value>node1:9870</value>

</property>

<!-- SecondaryNameNode web 端访问地址-->

<property>

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

        <value>node3:9868</value>

</property>

<property>

   <name>dfs.permissions</name>

   <value>false</value>

</property>

</configuration>

③ vim /export/server/hadoop-3.3.2/etc/hadoop/ yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<!-- 指定 MR 走 shuffle -->   

<property>   

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

        <value>mapreduce_shuffle</value>

</property>

<!-- 指定 ResourceManager 的地址-->     

<property>

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

        <value>node2</value>

</property>   

<!-- 环境变量的继承 -->   

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

<!-- 开启日志聚集功能 -->

<property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

</property>

<!-- 设置日志聚集服务器地址 -->

<property>

    <name>yarn.log.server.url</name>

    <value>http://node1:19888/jobhistory/logs</value>

</property>

<!-- 设置日志保留时间为 7 天 -->

<property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

</property>

<!-- 指定zk集群地址 -->

<property>

    <name>yarn.resourcemanager.zk-address</name>

    <value>node1:2181,node2:2181,node3:2181,node4:2181</value>

</property>

<configuration>

④ vim /export/server/hadoop-3.3.2/etc/hadoop/ mapred-site.xml

<configuration>

<!-- 设置MR程序默认运行模式 yarn集群模式 local本地模式 -->

<property>

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

  <value>yarn</value>

</property>

<!-- MR程序历史服务地址 -->

<property>

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

  <value>node1:10020</value>

</property>

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

<property>

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

  <value>node1:19888</value>

</property>

 <property>

  <name>yarn.app.mapreduce.am.env</name>

  <value>HADOOP_MAPRED_HOME=/export/server/hadoop-3.3.2</value>

</property>

<property>

  <name>mapreduce.map.env</name>

  <value>HADOOP_MAPRED_HOME=/export/server/hadoop-3.3.2</value>

</property>

<property>

  <name>mapreduce.reduce.env</name>

  <value>HADOOP_MAPRED_HOME=/export/server/hadoop-3.3.2</value>

</property>

</configuration>

(3)第三类文件workers(指定工作节点):vim /export/server/hadoop-3.3.2/etc/hadoop/workers

node1

node2

node3

node4

有多少个节点就输入多少个节点主机名字

分发到其他节点:xsync /$HADOOP_HOME

4.启动集群

1)初始化namenode(注意:只有第一次的时候才需要): hdfs namenode -format

如果集群是第一次启动,需要在namenode 节点格式化 NameNode(注意:多次初始化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的hadoop安装目录下的data 和 logs 目录,然后再进行格式化。)

tips:普通用户初始化namenode 时如果报无权创建logs的错,把Hadoop安装目录的属主修改即可:sudo chown – R ljr:ljr /export (-R表示递归,export下所有的属主均被修改),当然也可以同过给普通开放全部权限来解决:sudo chmod +771 

2)启动 HDFS:sbin/start-dfs.sh

(本人启动时报如下错误,原因是当时配置免密登录时是用root用户配置,解决方法在当前用户下各节点分别执行以下命令:

生成公钥私钥:ssh-keygen -t rsa

目标机器配置免密登录:ssh-copy-id node1/node2/node3/node4)

3)在配置了 ResourceManager 的节点 (node2 )启动 YARN(jps 分别查看个节点进程)

4)Web 端查看 HDFS 的 NameNode

(a)浏览器中输入:http://node1:9870(如果不能访问可以尝试输入namenode所在主机IP:端口号进行连接192.168.173.100:9870)

(b)查看 HDFS 上存储的数据信息

5、Web 端查看 YARN 的 ResourceManager

(a)浏览器中输入:http://node2:8088(如果不能访问可以尝试输入resourcemanager所在主机IP:端口号进行连接192.168.173.101:8088)

(b)查看 YARN 上运行的 Job 信息

至此,可以说Hadoop已经完成部署,下面做一些测试

6、集群基本测试

1)上传文件到集群(网页端地址:http://node1:9870)

创建文件夹hadoop fs -mkdir /input 执行完后,HDFS网页种多了个文件夹

传递一个本地文件hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input

了解:经典写法:hadoop fs -put file:///$HADOOP_HOME/wcinput/word.txt hdfs://node1:8020/input

上传大文件hadoop fs -put /export/sever/Hadoop-3.3.2.tar.gz /

Web页面实际只存储了一个链接,实际存储的数据在datanode节点

2)上传文件后查看文件在本地的储存位置

进入HDFS 文件存储路径

/export/server/hadoop-3.3.2/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0

查看 HDFS 在磁盘存储文件内容cat blk_1073741825

可以看到显示的时某个文件的一个片段(原文件被切片储存了),即HDFS存储的文件就在/export/server/hadoop-3.3.2/data/dfs/data/current/BP-817129285-192.168.10.102-1619703574964/current/finalized/subdir0/subdir0路径上(并且在其他节点的相同路径下应该还存有两份相同的片段,具体所在节点可以通过hdfs网页端查看,例点击下图的数字3可查看)

3)下载hadoop fs -get /Hadoop-3.3.2.tar.gz ./ 把文件下载到本地当前目录经典写法应为

   

4)启用/停止历史服务器:mapred --daemon start/stop historyserver

5)执行 wordcount 程序hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar wordcount /input/test.txt /output

其中应保证hdfs跟目录下没有指定的输出路径

6)查看wordcount 程序执行历史记录(网页端:http://node2:8088

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值