Hadoop大数据基础篇
一、Hadoop特点
1. Hadoop优势:高可靠性,高扩展性,高效性(MapReduce),高容错性
2. Hadoop的组成:
-
HDFS(分布式存储系统):NameNode,Client,DataNode
-
MapReduce(分布式计算系统):Input(InputFormat),Map,Shuffle,Reduce,Output(OutputFormat)
-
Yarn(hadoop的资源调度系统):ResourceManager ,NodeManager
-
Common(辅助工具)
二、安装JDK
1.卸载现有JDK(安装 JDK 前,一定确保提前删除了虚拟机自带的 JDK)
2.打开 XShell ,将 JDK 导入到 opt 目录下面的 software 文件夹下
3.解压JDK到/opt/module目录下
[mnlg@hadoop102 software]$ tar -zxvf opt/software/jdk-8u212-linux- x64.tar.gz -C /opt/module/
[mnlg@hadoop102 software]$ ll
4.配置环境变量
//新建 /etc/profile.d/my_env.sh文件
[mnlg@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
//在该文件里面增加如下配置
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
//source一下profile文件,让新的环境变量PATH生效
[mnlg@hadoop102 ~]$ source /etc/profile
5.测试JDK是否安装成功
[mnlg@hadoop102 ~]$ java -version
三、安装Hadoop
hadoop313targz__opt__software__55">1.打开 XShell,将 hadoop-3.1.3.tar.gz 导入到 opt 目录下的 software 文件夹下
hadoopoptmodule_57">2.将hadoop解压到/opt/module目录下
[mnlg@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
3.将Hadoop添加到环境变量
//打开/etc/profile.d/my_env.sh文件
[mnlg@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
//在末尾添加配置信息
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
//source一下profile文件,让新的环境变量PATH生效
[mnlg@hadoop102 ~]$ source /etc/profile
4.测试Hadoop是否安装成功
[mnlg@hadoop102 hadoop-3.1.3]$ hadoop version
四、Hadoop本地模式
1.创建文件夹、编辑文件
//在hadoop-3.1.3目录下面创建一个wcinput文件夹
[mnlg@hadoop102 hadoop-3.1.3]$ mkdir wcinput
//在wcinput文件夹下创建一个 word.txt 文件
[mnlg@hadoop102 hadoop-3.1.3]$ cd wcinput
//编辑 word.txt 文件
[mnlg@hadoop102 wcinput]$ vim word.txt
//在该文件里面增加相应的内容
hdfs
mapreduce
yarn
2.执行程序
[mnlg@hadoop102 wcinput]$ cd ..
[mnlg@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
3.查看结果
//法一:
[mnlg@hadoop102 hadoop-3.1.3]$ ll
[mnlg@hadoop102 hadoop-3.1.3]$ cd wcountput/
[mnlg@hadoop102 wcoutput]$ ll
[mnlg@hadoop102 wcoutput]$ cat part-r-00000
//法二:一步到位
[mnlg@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000
五、集群分发脚本
1.xsync 集群分发脚本:循环复制文件到所有节点的相同目录下(xsync在bin目录下)
[mnlg@hadoop102 opt]$ cd /home/mnlg
[mnlg@hadoop102 ~]$ mkdir bin
[mnlg@hadoop102 ~]$ cd bin
[mnlg@hadoop102 bin]$ vim xsync
//在该文件里面增加如下配置
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
2.提升权限
//提升权限后,xsync字母会变成绿色
[mnlg@Hadoop102 bin]$ chmod +x xsync
[mnlg@Hadoop102 bin]$ ll
[mnlg@Hadoop102 ~]$ xsync a.txt //分发a.txt文件到其他虚拟机
//将my_env.sh发送到全部集群机器中
[mnlg@Hadoop102 ~]$ xsync /etc/profile.d/my_env.sh
六、Hadoop目录结构
[mnlg@hadoop102 hadoop-3.1.3]$ ll
drwxr-xr-x. 2 atguigu atguigu 4096 9 月 22 2021 bin
drwxr-xr-x. 3 atguigu atguigu 4096 9 月 22 2021 etc
drwxr-xr-x. 3 atguigu atguigu 4096 9 月 22 2021 lib
drwxr-xr-x. 2 atguigu atguigu 4096 9 月 22 2021 sbin
drwxr-xr-x. 4 atguigu atguigu 4096 9 月 22 2021 share
- bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapreduce)进行操作的脚本
- etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
- lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
- sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
- share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
点击可查看Hadoop集群操作