目录
一、概念
二、Hadoop生态圈组件
二、Hadoop集群的两种模式
三、Hadoop集群搭建(文件配置-略)
四、Hadoop集群指令&目录说明
一、概念
广义:Hadoop生态圈;狭义:Apache基金会开发的分布式系统开源框架,主要是为了解决海量数据存储和海量数据分析的问题核心组件包括:
HDFS-分布式文件系统(通过目录树定位文件)MAPREDUCE-分布式运算编程框架YARN-作业调度和集群资源管理框架Common辅助工具:Hadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如配置文件和日志操作。优点 & 特性(Remember)
扩容能力成本低高效率高可靠性高容错缺点
不适用于低延迟数据访问;不能高效存储大量小文件;不支持多用户写入并任意修改文件。
二、Hadoop生态圈组件
Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务等(封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户)。 Hbase:一个分布式的、面向列的开源数据库,利用Hadoop HDFS作为其存储系统。 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转化为MapReduce任务进行运行。(底层存储依赖于HDFS) Sqoop:将一个关系型数据库中的数据导入Hadoop的HDFS中,也可以反过来。 Flume:一个高可用的,高可靠的,分布式的海量日志采集、采集和传输的系统。 Kafka:一个分布式、分区的、多副本的、多订阅者的、基于zookeeper协调的分布式日志系统,可作为消息中间件。 Flink:是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。(是一套集高吞吐、低延迟、高性能三者于一身的分布式流式处理框架。) Spark:与Flink的功能类似,是Flink强有力的竞争者。
二、Hadoop集群的两种模式
本地模式完全分布式模式
三、Hadoop集群搭建(文件配置-略)
虚拟机准备
VMware Workstation安装好之后,可以在宿主机的网络配置中看到多出来的两个网络连接,分别是VMnet1和VMnet8,其中VMnet1用于仅主机模式,VMnet8用于Nat模式。(还有一个VMnet0,用于桥接模式,可以在VMware Workstation 的虚拟网络编辑器virtual network editor中看到)DHCP服务:仅主机模式和Nat模式这两个模式默认提供DHCP服务(VMnet0默认不提供)。DHCP服务即动态主机设置协议,是局域网中的一种协议,能够快速地自动为我们的PC分配网络IP地址,以及为设备配置正确的子网掩码、默认网关和DNS服务器信息,为我们节省网络配置的时间,防止外来PC上网,同时避免IP重复等错误。虚拟机的三种网络模式
仅主机模式(Host-Only)-VMnet1 * 宿主机和所有的虚拟机共同组成一个“私人的局域网络”,彼此之间可以相互访问,但与外网是相互独立的,无法访问外网。网络地址转换模式(NAT)-VMnet8 * 重点在于虚拟系统通过宿主机的网络访问公网,宿主机同时参与现有的网络和新建的内部虚拟局域网,虚拟系统借助于NAT的功能,使用宿主机的IP地址访问外网,从外网的角度,只能察觉到宿主机,是完全看不到虚拟网络系统的。桥接模式(Bridged)-VMnet0 * 此模式下,VMware虚拟出来的操作系统就像是局域网中一台独立的主机(需要手工配置IP、子网掩码等),相当于宿主机和虚拟机共享了同一个交换机(这个交换机当然也是虚拟出来的)网络配置
在虚拟机的/etc/sysconfig/network-scripts/ifcfg-ethxx文件中修改网络配置参数 DEVICE是网卡名称
BOOTPROTO是获取的ip地址类型,static和none为静态地址,dhcp为动态获取ip地址
HWADDR是MAC地址
MTU是最大传输单位
NM_CONTROLLED是否启用NetworkManager图形界面配置工具
ONBOOT设置网卡是否在Linux系统启动时激活,这一项一般都要设为yes
IPADDR是本机ip地址
NETMASK是子网掩码
GATEWAY是设置网关的
DNS1是首选DNS服务器
DNS2时辅助DNS服务器
还有一些几个参数一般情况下不用配置:
BROADCAST是广播地址
原文链接:https://blog.csdn.net/huapenguag/article/details/78283249 xsync分发脚本编写 #!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in Hadoop101 Hadoop102 Hadoop103
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送,$@ 表示把参数以$1、$2、$3、$4...形式输出,并可以当作数组使用
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
xcall ssh指令跳转脚本编写 #!/bin/sh
pcount=$#
if((pcount==0));then
echo no args...;
exit;
fi
for((host=101; host<=103; host++));
do
echo ==================Hadoop$host==================
ssh Hadoop$host $@
done
无密登录配置历史服务器配置日志聚集配置常用端口说明
端口名称 Hadoop2.x Hadoop3.x NameNode内部通信端口 8020 / 9000 8020 / 9000/9820 NameNode HTTP UI 50070 9870 MapReduce查看执行任务端口 8088 8088 历史服务器通信端口 19888 19888 * 如:hadoop101:9870时间同步......
四、Hadoop集群指令&目录说明
目录说明(/opt/moudle/hadoop-3.x/路径下)
bin:存放hadoop最基础的管理脚本和使用脚本,是sbin目录下管理脚本的基础;sbin:存放hadoop管理脚本所在的目录,主要是对于hdfs和yarn的开关脚本以及单线程的开启和守护;etc/hadoop:存放hadoop 的一些配置文件;lib:该目录下存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中;logs:该目录存放的是Hadoop运行的日志,查看日志对寻找Hadoop运行错误非常有帮助;include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序;libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息;share:Hadoop各个模块编译后的jar包所在的目录;启动关闭上传下载(自定义shell脚本启动与关闭集群各组件:) # shell_name:myHadoop
# path of this shell file:/home/hadoop/bin
#!/bin/bash
# $#表示传给脚本的参数的个数,Linux中的空格是非常重要的存在,一定要注意取舍
if [ $# -ne 1 ]
then
echo "Input error..."
exit;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start his
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop hist
echo " --------------- 关闭 yarn ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Error..."
;;
esac
好文阅读
发表评论