3.Hadoop运行模式-完全分布式(重点)—xsync集群分发脚本、集群配置、SSH无密登录、启动集群

news/2024/5/20 1:56:32 标签: hadoop, hdfs, mapreduce

本文目录如下:

  • 4 完全分布式运行模式(开发重点)
    • 4.1 虚拟机准备
    • 4.2 scp(secure copy)安全拷贝
    • 4.3 rsync 远程同步工具
    • 4.4 **`xsync集群分发脚本`**
      • 4.4.1 需求分析:
      • 4.4.2 脚本实现
      • 4.4.3 xsync相关错误
    • 4.5 集群配置
      • 4.5.1 集群部署规划
      • 4.5.2 配置集群 (修改配置文件)
      • 4.5.3 在集群上分发配置好的Hadoop配置文件
      • 4.5.4 查看文件分发情况
    • 4.6 集群单点启动
    • 4.7 SSH无密登录配置
      • 4.7.1 配置ssh
      • 4.7.2 无密钥配置
      • 4.7.3 .ssh文件夹下(~/.ssh)的文件功能解释
    • 4.8 群起集群
      • 4.8.1 配置workers
      • 4.8.2 启动集群
      • 4.8.3 集群基本测试
    • 4.9 集群启动/停止方式总结
      • 4.9.1 各个服务组件逐一启动/停止
      • 4.9.2 各个模块整体启动/停止(配置ssh是前提)常用
    • 4.10 集群时间同步
      • 4.10.1 检查ntp是否安装
      • 4.10.2 修改 /etc/ntp.conf 配置文件
      • 4.10.3 修改 /etc/sysconfig/ntpd 文件
      • 4.10.4 重新启动ntpd服务
      • 4.10.5 设置ntpd服务开机启动
    • 4.11 其他机器配置(必须root用户)

4 完全分布式运行模式(开发重点)

步骤:
1)准备3台客户机(关闭防火墙、静态ip、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群

注:可以直接看4.4小节进行操作。

4.1 虚拟机准备

详见3.1章。

4.2 scp(secure copy)安全拷贝

  • (1) scp定义:
    scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
  • (2) 基本语法
scp   -r     $pdir/$fname          $user@hadoop$host:$pdir/$fname
命令   递归   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

# 例:远程把 Hadoop101 上的 /opt/module 拷贝到 Hadoop102 相同的位置
scp  -r  hadoop101:/opt/module/hadoop-3.2.1  hadoop102:/opt/module

# **注意**:拷贝过来的/opt/module目录,别忘了在hadoop102等目标主机上修改文件的所有者和所有者组。
sudo chown xqzhao:xqzhao -R /opt/module

# **注意**:拷贝过来的配置文件别忘了source一下/etc/profile,。
source /etc/profile

4.3 rsync 远程同步工具

  • rsync主要用于备份镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
  • rsyncscp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
  • (1) 基本语法
rsync   -av        $pdir/$fname          $user@hadoop$host:$pdir/$fname
命令     选项参数    要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

# 例:远程把 Hadoop101 上的 /opt/module 拷贝到 Hadoop102 相同的位置
rsync  -av  hadoopl01:/opt/module/hadoop-3.2.1  /opt/module

选项参数说明:

选项功能
-a归档拷贝
-v显示复制过程

注:归档拷贝:完完全全拷贝

4.4 xsync集群分发脚本

需求:循环复制文件到所有节点的相同目录下

4.4.1 需求分析:

  • (1) rsync命令原始拷贝:
rsync  -av  /opt/module  root@hadoop103:/opt/
  • (2) 期望脚本:
    xsync要同步的文件名称
  • (3) 说明:在/home/xqzhao/bin这个目录下存放的脚本,xqzhao用户可以在系统任何地方直接执行。

4.4.2 脚本实现

  • (1) 在/home/xqzhao目录下创建xsync文件,文件内容如下:
[xqzhao@hadoop100 /]$ cd ~
[xqzhao@hadoop100 ~]$ vim xsync

在该文件中编写如下代码:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=101; host<103; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
  • (2) 修改脚本 xsync 具有执行权限
[xqzhao@hadoop100 ~]$ chmod 777 xsync
  • (3) 调用脚本形式:xsync 文件名称
[xqzhao@hadoop100 ~]$ sudo cp xsync /bin

# 移动之后便可以全局使用
[xqzhao@hadoop100 ~]$ xsync 文件夹名称

注意:如果将xsync放到/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。

  • 注:xsync创建完成之后,通过xsync脚本将JavaHadoop的安装文件分发到集群中的其他虚拟机中的相应文件夹。并且不要忘记在 /etc/profile 中配置 java、hadoop 环境
  • 注:可以先进行4.5的集群配置,然后再将配置好的Hadoop分发至其他机器。

4.4.3 xsync相关错误

Operation not permitted:点此查看解决办法

4.5 集群配置

4.5.1 集群部署规划

表2-3
hadoop100hadoop101hadoop102
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeManagerResourceManager
NodeManager
NodeManager

4.5.2 配置集群 (修改配置文件)

  • 先在单个节点上配置好,然后在向集群分发文件。
  • 进入配置文件目录
[xqzhao@hadoop100 hadoop-3.2.1]$ cd /opt/module/hadoop-3.2.1/etc/hadoop/
  • (1) 核心配置文件
    配置core-site.xml
[xqzhao@hadoop100 hadoop]$ vim core-site.xml

# 在该文件中编写如下配置
<!-- 指定HDFS中NameNode的地址  //内部通信地址,Web端无法通过8020访问 -->
<property>
		<name>fs.defaultFS</name>
      	<value>hdfs://hadoop100:8020</value>
      	<!-- <value>hdfs://hadoop100:9000</value> -->
</property>

<!-- 指定 Hadoop 数据存储的目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-3.2.1/data</value>
</property>

<!-- 配置 HDFS 网页登录使用的静态用户为 xqzhao-->
<property>
		<name>hadoop.http.staticuser.user</name>
		<value>xqzhao</value>
</property>

<!-- 注:放在 <configuration> </configuration> 中间 -->
  • (2) HDFS配置文件
    配置hadoop-env.sh
[xqzhao@hadoop100 hadoop]$ vim hadoop-env.sh

# 修改如下选项
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml

[xqzhao@hadoop100 hadoop]$ vim hdfs-site.xml

# 在该文件中编写如下配置
<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- NameNode Web 端访问地址-->
<property>
		<name>dfs.namenode.http-address</name>
		<value>hadoop100:9870</value>
</property>

<!-- SecondaryNameNode Web端访问地址 -->
<property>
		<name>dfs.namenode.secondary.http-address</name>
        <value>hadoop102:9868</value>
</property>
  • (3) MapReduce配置文件
    配置mapred-env.sh
[xqzhao@hadoop100 hadoop]$ vim mapred-env.sh

# 修改如下选项
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml

[xqzhao@hadoop100 hadoop]$ vim mapred-site.xml

# 在该文件中增加如下配置
<!-- 指定MR运行在Yarn上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
  • (4) YARN配置文件
    配置yarn-env.sh
[xqzhao@hadoop100 hadoop]$ vim yarn-env.sh

# 修改如下选项
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置yarn-site.xml

[xqzhao@hadoop100 hadoop]$ vim yarn-site.xml

# 在该文件中增加如下配置
<!-- 指定 MapReduce 走 shuffle -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop101</value>
</property>

<!-- 环境变量的继承 //可以认为是解决了一个小Bug -->
<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>

4.5.3 在集群上分发配置好的Hadoop配置文件

[xqzhao@hadoop100 hadoop]$ xsync /opt/module/hadoop-3.2.1/etc

4.5.4 查看文件分发情况

[xqzhao@hadoop101 hadoop]$ cat /opt/module/hadoop-3.2.1/etc/hadoop/core-site.xml

4.6 集群单点启动

  • (1) 如果集群是第一次启动,需要格式化NameNode
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs namenode -format

看到下列语句表示格式化成功
NameNode格式化成功> 注意:格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除datalog数据。否则会出现异常情况。

  • (2) 在hadoop100上启动NameNode
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs --daemon start namenode
[xqzhao@hadoop100 hadoop-3.2.1]$ jps
3461 NameNode
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs --daemon start datanode
[xqzhao@hadoop100 hadoop-3.2.1]$ jps
3461 NameNode
3608 Jps
3561 DataNode

[xqzhao@hadoop101 hadoop-3.2.1]$ hdfs --daemon start datanode
[xqzhao@hadoop101 hadoop-3.2.1]$ jps
3190 DataNode
3279 Jps

[xqzhao@hadoop102 hadoop-3.2.1]$ hdfs --daemon start datanode
[xqzhao@hadoop102 hadoop-3.2.1]$ jps
3237 Jps
3163 DataNode
  • (4) 在hadoop102上启动SecondaryNameNode
[xqzhao@hadoop102 hadoop-3.2.1]$ hdfs --daemon start secondarynamenode
[xqzhao@hadoop102 hadoop-3.2.1]$ jps
3237 Jps
3163 DataNode
3294 SecondaryNameNode
  • (5) 奇怪的的问题
    由于一些无法启齿的原因(内存不够开三个虚拟机),博主的主机配置为2个虚拟机+1个阿里云服务器,共3台主机(不知道能否这样搭配)。在这样的搭配下启动Hadoop集群时遇到的很棘手的问题,问题就出在这个阿里云服务器上,在阿里云服务器上启动SecondaryNameNode时,报了下面这个错误:
    报错
  • 针对这一个问题,大家可以参考这个博客解决:点此查看解决办法
  • 如果还有疑问,也可查看这个博客:点此查看解决办法2
  • 相信有的小伙伴可能对上面博客中的内网IP公网IP有些疑问,相信这篇博客可以解决你的疑问:查看公网IP和内网IP的方法
  • 总之,这是一个相当棘手的问题,希望你们遇不到这个Bug。即使遇到了,使用上面这些方法应该是可以很快解决的。
  • (6) 查看是否启动成功
    经过上述一系列猛如虎的操作,我们的集群就算搭建成功了,在本机浏览器输入http://hadoop100:9870/,在弹出的页面,点击Datanodes,可以看到如下页面表示搭建成功:
    集群搭建成功

  • (7) 思考:每次都一个一个节点启动,如果节点数增加到1000个怎么办?
    早上来了开始一个一个节点启动,到晚上下班刚好完成,下班?

4.7 SSH无密登录配置

4.7.1 配置ssh

  • (1) 基本语法
[xqzhao@hadoop100 opt]$ ssh 另一台电脑的ip地址
  • (2) ssh连接时出现Host key verification failed的解决方法
[xqzhao@hadoop102 opt] $ ssh 192.168.91.101
The authenticity of host '192.168.91.101 (192.168.91.101)' can't be established.
RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.
Are you sure you want to continue connecting (yes/no)? 

Host key verification failed.
  • (3) 解决方案如下:直接输入yes

4.7.2 无密钥配置

  • (1) 生成公钥和私钥:
[xqzhao@hadoop100 /]$ cd ~/.ssh
[xqzhao@hadoop100 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)id_rsa.pub(公钥)

  • (2) 将公钥拷贝到要免密登录的目标机器上
[xqzhao@hadoop100 .ssh]$ ssh-copy-id hadoop100
[xqzhao@hadoop100 .ssh]$ ssh-copy-id hadoop101
[xqzhao@hadoop100 .ssh]$ ssh-copy-id hadoop102

执行成功效果如下图所示:
在这里插入图片描述

注意:还需要在hadoop101、hadoop102上采用xqzhao账号,配置一下无密登录到hadoop100、hadoop101、hadoop102

注:在命令行输入exit可以退出远程登录。

4.7.3 .ssh文件夹下(~/.ssh)的文件功能解释

表2-4

known_hosts记录ssh访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过得无密登录服务器公钥

4.8 群起集群

4.8.1 配置workers

注:Hadoop2.X 中,没有 workers 文件,取而代之的是 slaves

[xqzhao@hadoop100 hadoop]$ cd /opt/module/hadoop-3.2.1/etc/hadoop
[xqzhao@hadoop100 hadoop]$ vim workers

在该文件中增加如下内容:

hadoop100
hadoop101
hadoop102
# 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

同步所有节点配置文件(暂时不清楚是否需要执行这一步):

[xqzhao@hadoop102 hadoop]$ xsync workers

4.8.2 启动集群

  • (1) 如果集群是第一次启动,需要格式化 NameNode。(格式化)
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs namenode -format

注意:格式化之前,一定要先停止上次启动的所有 namenodedatanode 进程,然后再删除集群中每台虚拟机上的 datalogs目录。否则会出现异常情况。

  • (2) 启动HDFS
[xqzhao@hadoop100 hadoop-3.2.1]$ sbin/start-dfs.sh
[xqzhao@hadoop100 hadoop-3.2.1]$ jps
4166 NameNode
4482 Jps
4263 DataNode
[xqzhao@hadoop101 hadoop-3.2.1]$ jps
3218 DataNode
3288 Jps
[xqzhao@hadoop102 hadoop-3.2.1]$ jps
3221 DataNode
3283 SecondaryNameNode
3364 Jps
  • (3) 在配置了ResourceManger的节点(Hadoop101)启动YARN
[xqzhao@hadoop101 hadoop-3.2.1]$ sbin/start-yarn.sh

注意:NameNodeResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。

  • (4) Web端查看 SecondaryNameNode
  • 浏览器中输入:http://hadoop102:9868/status.html
  • 查看SecondaryNameNode信息,如下图所示。
  • (5) 在 Hadoop102 上启动 历史服务器
[xqzhao@hadoop102 hadoop-3.2.1]$ sbin/mr-jobhistory-daemon.sh start historyserver

: 启动历史服务器之前,需要先进行相应的配置, 详情请见: Hadoop运行模式 中第 3.3小节

4.8.3 集群基本测试

  • (1) 上传文件到集群
    上传小文件
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs dfs -mkdir -p /wcinput
[xqzhao@hadoop100 hadoop-3.2.1]$ hdfs dfs -put wcinput/wc.input /wcinput

上传大文件

[xqzhao@hadoop100 hadoop-3.2.1]$ bin/hadoop fs -put /opt/software/hadoop-3.2.1.tar.gz  /wcinput
  • (2) 上传文件后查看文件存放在什么位置
    (a)查看HDFS文件存储路径
[xqzhao@hadoop100 subdir0]$ pwd
/opt/module/hadoop-3.2.1/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0

(b)查看HDFS在磁盘存储文件内容

[xqzhao@hadoop100 subdir0]$ cat blk_1073741825
hadoop yarn
hadoop mapreduce 
xqzhao
xqzhao
  • (3) 拼接
-rw-rw-r--. 1 xqzhao xqzhao 134217728 523 16:01 blk_1073741836
-rw-rw-r--. 1 xqzhao xqzhao 1048583 523 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 xqzhao xqzhao 63439959 523 16:01 blk_1073741837
-rw-rw-r--. 1 xqzhao xqzhao 495635 523 16:01 blk_1073741837_1013.meta
[xqzhao@hadoop100 subdir0]$ cat blk_1073741836>>tmp.file
[xqzhao@hadoop100 subdir0]$ cat blk_1073741837>>tmp.file
[xqzhao@hadoop100 subdir0]$ tar -zxvf tmp.file
  • (4) 下载
[xqzhao@hadoop100 hadoop-3.2.1]$ bin/hadoop fs -get /user/xqzhao/input/hadoop-3.2.1.tar.gz ./

4.9 集群启动/停止方式总结

4.9.1 各个服务组件逐一启动/停止

  • (1) 分别启动/停止HDFS组件
[xqzhao@hadoop100 /]$ hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode
  • (2) 启动/停止YARN
[xqzhao@hadoop100 /] yarn-daemon.sh  start / stop  resourcemanager / nodemanager

4.9.2 各个模块整体启动/停止(配置ssh是前提)常用

  • (1) 整体启动/停止HDFS
    start-dfs.sh / stop-dfs.sh
  • (2) 整体启动/停止YARN
    start-yarn.sh / stop-yarn.sh

4.10 集群时间同步

时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。

时间服务器配置(必须root用户)步骤:

4.10.1 检查ntp是否安装

[root@hadoop100 /]$ rpm -qa|grep ntp

ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-10.el6.centos.x86_64

4.10.2 修改 /etc/ntp.conf 配置文件

[root@hadoop100 /]$ vim /etc/ntp.conf

修改内容如下

  • (1) 修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
(把前面的注释符’#'去掉了)

  • (2) 修改2(集群在局域网中,不使用其他互联网上的时间)

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst 为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
(在每一行之前添加了注释符’#’)

  • (3) 添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)

server 127.127.1.0
fudge 127.127.1.0 stratum 10

4.10.3 修改 /etc/sysconfig/ntpd 文件

[root@hadoop100 /]$ vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes

4.10.4 重新启动ntpd服务

[root@hadoop100 /]$ service ntpd status
service ntpd status

[root@hadoop100 /]$ service ntpd start
Starting ntpd:                                       [  OK  ]

4.10.5 设置ntpd服务开机启动

[root@hadoop100 /]$ chkconfig ntpd on

4.11 其他机器配置(必须root用户)

  • (1) 在其他机器配置10分钟与时间服务器同步一次
[root@hadoop101 /]$ crontab -e

编写定时任务如下:
*/10 * * * * /usr/sbin/ntpdate hadoop100
  • (2) 修改任意机器时间
[root@hadoop101 /]$ date -s "2017-9-11 11:11:11"
  • (3) 十分钟后查看机器是否与时间服务器同步
[root@hadoop101 /]$ date

说明:测试的时候可以将10分钟调整为1分钟,节省时间。


声明:本文是学习时记录的笔记,如有侵权请告知删除!
原视频地址:https://www.bilibili.com/video/BV1Me411W7PV


http://www.niftyadmin.cn/n/1743771.html

相关文章

在Web端查看各节点状态(总结)

本文目录如下&#xff1a;5 在Web端查看各节点状态(总结)5.1 Web端查看HDFS的NameNode5.2 Web端查看HDFS的DataNode5.3 Web端查看HDFS的SecondaryNameNode5.4 Web端查看YARN的ResourceManage5.5 查看HDFS上传的文件5.6 查看历史服务器信息5.7 查看日志聚集信息5 在Web端查看各节…

Maven3.8.1下载、配置本地仓库、阿里云镜像、JDK版本

Maven3.8.1配置本地仓库、阿里云镜像、JDK版本 Maven版本&#xff1a;maven3.8.1 1.下载 点击进入Maven下载网址&#xff1a;Maven官方网址 | 或者&#xff1a;Maven详细下载列表也可以搜索Maven下载进入官方网站下载。这里博主下载的版本信息如下&#xff1a; 下载之后&…

elementui实现表格自定义排序

需求说明&#xff1a; 1、第一行不参与排序 2、实现带%排序 3、实现null值排序 4、实现值相等不排序 5、实现含有占位符‘–‘排序放到最后 效果图如下&#xff1a; <template> <div><template><el-table border :data"previewTableData" style…

3.HDFS的客户端操作—环境准备(Windows10上安装与配置 Hadoop3.2 环境)、API操作、I/O流操作

本文目录如下&#xff1a;3.HDFS的客户端操作—环境准备、API操作、I/O流操作3.1 HDFS客户端环境准备3.1.1 在Win10上安装Hadoop并配置环境变量3.1.2 创建一个Maven工程Hdfs-0100-HelloWorld3.1.3 导入相应的依赖、配置日志文件3.1.4 创建包名&#xff1a;com.xqzhao.hdfs3.1.5…

5.DataNode工作机制、数据完整性、数据结点服役退役

本文目录如下&#xff1a;第9章 DataNode&#xff08;面试开发重点&#xff09;9.1 DataNode工作机制9.2 数据完整性9.3 掉线时限参数设置9.4 服役新数据节点9.4.1 环境准备9.4.2 服役新节点具体步骤9.5 退役旧数据节点9.5.1 添加白名单9.5.2 如果数据不均衡&#xff0c;可以用…

1.MapReduce入门-MapReduce进程、常用序列化类型、WordCount实例

本文目录如下&#xff1a;第1章 MapReduce概述1.1 MapReduce进程1.2 常用数据序列化类型1.3 MapReduce编程规范1.3.1 Mapper阶段1.3.2 Reducer阶段1.3.3 Driver阶段1.4 WordCount实例1.4.1 创建一个Maven工程MapReduce-0100-WordCount1.4.2 导入相应依赖1.4.3 配置日志信息1.4.…

2.MapReduce序列化—实现序列化接口、序列化案例实战

本文目录如下&#xff1a;第二章 MapReduce序列化案例2.1 自定义FloBean对象实现序列化接口&#xff08;Writable&#xff09;2.2 序列化案例实操2.3.1 需求2.3.2 需求分析2.3.3 编写MapReduce程序第二章 MapReduce序列化案例 2.1 自定义FloBean对象实现序列化接口&#xff08…

1.Scala基础—数据类型、标准输入、类和对象、分支循环、函数、匿名函数、高阶函数

本文目录如下&#xff1a;第一章 Scala基础1.0 前言1.1 数据类型1.2 Hello World1.2 键盘标准输入1.3 类和对象、伴生类和伴生对象1.4 分支循环1.4.1 if else1.4.2 for,while,do...while1.5 函数1.5.1 Scala函数的定义1.5.2 包含参数默认值的函数1.5.3 可变参数个数的函数1.6 匿…