学院网站群建设方案,界面交互设计,总结什么是网络营销,最新网站建设哪家公司好Hadoop目录Hadoop3.3.1完全分布式部署(一)1、HDFS一、安装1、基础安装1.1、配置JDK-181.2、下载并解压hadoop安装包本地运行模式测试 eg:2、完全分布式运行模式1、概要#xff1a;2、编写集群分发脚本#xff0c;把1~4步安装的同步到其他服务器#xff1a;2.1、创建脚本vim …
Hadoop目录Hadoop3.3.1完全分布式部署(一)1、HDFS一、安装1、基础安装1.1、配置JDK-181.2、下载并解压hadoop安装包本地运行模式测试 eg:2、完全分布式运行模式1、概要2、编写集群分发脚本把1~4步安装的同步到其他服务器2.1、创建脚本vim /var/opt/hadoopSoftware/hadoopScript/bin/xsync添加执行权限2.2、开始同步JDK、Hdoop、环境变量3、配置ssh免密4、配置xml4.1、集群部署规划如下4.2、所需配置文件4.3、配置集群1核心配置文件2HDFS配置文件3YARN配置文件4MapReduce配置文件5、启动整个集群5.1、配置workers5.2、启动集群5.3、页面地址6、集群测试6.1、上传文件到集群测试6.2、上传大文件测试6.3、hadoop集群测试7、集群崩溃处理1先停止集群2删除每个集群上的3格式化集群4启动集群8、配置历史服务器8.1、配置mapred-site.xml8.2、同步配置8.3、在hadoop1上启动历史服务器8.4、查看历史服务器是否启动8.5、查看JobHistory9、配置日志聚合功能1配置yarn-site.xml2同步配置3关闭重启NodeManager、ResourceManager、HistoryServer10、集群启停总结1、整体启动停止(推荐)1整体启动、停止HDFS2整体启动体制YARN3启停historyserver2、各个服务组件分别启/停1启/停HDFS组件2启/停YARN组件3启停historyserver11、编写Hadoop集群常用脚本1批量启停hadoop服务2查看所有服务器Java进程脚本jpsall12、常用端口号参考网站Hadoop3.3.1完全分布式部署(一)
Hadoop 是一种分析和处理大数据的软件平台是一个用 Java 语言实现的 Apache 的开源软件框架在大量计算机组成的集群中实现了对海量数据的分布式计算。
结构框架
推荐架构
1、HDFS
一个提供高可用的获取应用数据的分布式文件系统。
从字面上来看SecondaryNameNode 很容易被当作是 NameNode 的备份节点其实不然。可以通过下图看 HDFS 中 SecondaryNameNode 的作用。 NameNode主要是用来保存HDFS的元数据信息比如命名空间信息块信息等。当它运行的时候这些信息是存在内存中的。但是这些信息也可以持久化到磁盘上。 fsimage - 它是在NameNode启动时对整个文件系统的快照 edit logs - 它是在NameNode启动后对文件系统的改动序列 Secondary NameNode就是来帮助解决上述问题的它的职责是合并NameNode的edit logs到fsimage文件中。 它定时到NameNode去获取edit logs并更新到自己的fsimage上。一旦它有了新的fsimage文件它将其拷贝回NameNode中。NameNode在下次重启时会使用这个新的fsimage文件从而减少重启的时间。 一、安装
1、基础安装
$ yum install -y gcc vim wget
$ sudo yum install ssh
$ sudo yum install pdsh -y1.1、配置JDK-18
JDK地址
安装参考
# JDK17
#wget https://download.oracle.com/java/17/archive/jdk-17_linux-x64_bin.tar.gz -P /var/opt/hadoopSoftware
# JDK19
#wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz -P /var/opt/hadoopSoftware# JDK18(本文所选但是需要ORACLE账号才可以下载)
tar -zxvf /var/opt/hadoopSoftware/jdk-8u361-linux-x64.tar.gz -C /var/opt/hadoopSoftware配置环境变量在profile.d下创建hadoop所需的环境变量
cat /etc/profile.d/my_env.sh Leo
# JAVA_HOME
export JAVA_HOME/var/opt/software/jdk1.8.0_361
export PATH\$PATH:\$JAVA_HOME/bin
Leo使配置生效
source /etc/profile1.2、下载并解压hadoop安装包
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz -P /var/opt/hadoopSoftware
tar -zvxf /var/opt/hadoopSoftware/hadoop-3.3.1.tar.gz -C /var/opt/hadoopSoftware配置环境变量
cat /etc/profile.d/my_env.sh Leo
# HADOOP_HOME
export HADOOP_HOME/var/opt/hadoopSoftware/hadoop-3.3.1
export PATH\$PATH:\$HADOOP_HOME/bin
export PATH\$PATH:\$HADOOP_HOME/sbin
# Hadoop run need add
export HDFS_NAMENODE_USERroot
export HDFS_DATANODE_USERroot
export HDFS_SECONDARYNAMENODE_USERroot
export YARN_RESOURCEMANAGER_USERroot
export YARN_NODEMANAGER_USERroot
Leo生效
source /etc/profile查看配置的全局环境变量 echo $PATH
hadoop目录介绍
bin和hdfs yarn mapred
sbin启动停止相关的命令
share一些参考(Hadoop参考) 官网 本地运行模式测试 eg:
mkdir -p /var/opt/hadoopSoftware/hadoop-3.3.1/tinput
cat /var/opt/hadoopSoftware/hadoop-3.3.1/tinput/word.txt Leo
aa
bb
cc
cc
Leo测试计算每个单词出现的次数输入路径tinput/ 输出路径./timport
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount tinput/ ./toutputtoutput]# cat part-r-00000
aa 1
bb 1
cc 22、完全分布式运行模式
1、概要 前提 1、准备三台server关闭防火墙、静态ip、主机名 2、安装JDK 3、安装Hadoop 4、配置环境变量 所需其他配置 5、配置集群 6、单点启动 7、配置ssh 8、测试集群 2、编写集群分发脚本把1~4步安装的同步到其他服务器
mkdir -p /var/opt/hadoopSoftware/hadoopScript/bin
mkdir -p /var/opt/hadoopSoftware/hadoopScript/config创建需要同步的服务器地址
cat /var/opt/hadoopSoftware/hadoopScript/config/hadoop_hosts
hadoop2
hadoop32.1、创建脚本vim /var/opt/hadoopSoftware/hadoopScript/bin/xsync添加执行权限
#!/bin/bash# 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Argument!exit;
fi# 遍历所有的服务器
#for host in hadoop1 hadoop2 hadoop3
for host in cat /var/opt/hadoopSoftware/hadoopScript/config/hadoop_hosts
doecho $host# 遍历所有目录for file in $do# 判断文件是否存在if [ -e $file ]then# 获取父目录名例如有软连接他会cd到真正的数据目录pdir$(cd -P $(dirname $file); pwd)# 获取当前文件名称fname$(basename $file)ssh $host mkdir -p $pdirrsync -av $pdir/$fname $host:$pdirelseecho $file dose not exists!fidone
done目前xsync只能同步当前目录下的文件用法xsync bin/如果同步根目录需要写xsync脚本的绝对路径/var/opt/hadoopSoftware/hadoopScript/bin/xsync
2.2、开始同步JDK、Hdoop、环境变量
2.2.1、开始同步(选用)
# 全局调用使用绝对路径
sudo /var/opt/hadoopSoftware/hadoopScript/bin/xsync /var/opt/hadoopSoftware
sudo /var/opt/hadoopSoftware/hadoopScript/bin/xsync /etc/profile.d/my_env.sh 注每台服务器都需要重新刷新环境变量source /etc/profile(根据自身需求后期可以使用ansible-playbook)
2.2.2、配置环境变量同步(本文选用如下方法) 或如果想要应用这个脚本到全局可以进行如下环境变量设置根据自身情况进行设置仅参考 cat /etc/profile.d/my_env.sh Leo
# hadoopScript_home
export HSCRIPT_HOME/var/opt/hadoopSoftware/hadoopScript
export PATH$PATH:$HSCRIPT_HOME/bin
Leo同步开始
xsync /var/opt/hadoopSoftware
xsync /etc/profile.d/my_env.sh3、配置ssh免密
参考配置
配置hadoop1和hadoop2免密登录hadoop[1,2,3]
4、配置xml
官网参考[Apache Hadoop 3.3.4 – Hadoop Cluster Setup]
4.1、集群部署规划如下
hadoop1hadoop2hadoop3HDFSNameNodeDataNodeDataNodeSecondaryNameNodeDataNodeYARNNodeManagerNodeManagerResourceManagerNodeManager
注NameNode、 NodeManager、 SecondaryNameNode最好放在不同的服务器上。
4.2、所需配置文件
1默认配置文件
默认文件名文件存放路径cd $HADOOP_HOMEcore-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xmlhdfs-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xmlyarn-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xmlmapred-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
2自定义配置文件
文件位置$HADOOP_HOME/etc/hadoop
core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml
4.3、配置集群
1核心配置文件
cat $HADOOP_HOME/etc/hadoop/core-site.xml?xml version1.0 encodingUTF-8?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configuration!-- 指定NameNode地址 --propertynamefs.defaultFS/namevaluehdfs://hadoop1:8082/value/property!-- 指定hadoop数据存储目录 --propertynamehadoop.tmp.dir/namevalue/var/opt/hadoopSoftware/hadoop-3.3.1/data/value/property!-- 配置hadoop网页登录使用的静态用户为leojiang --propertynamehadoop.http.staticuser.user/namevalueroot/value/property
/configuration
2HDFS配置文件
cat $HADOOP_HOME/etc/hadoop/hdfs-site.xml?xml version1.0 encodingUTF-8?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?
!-- Put site-specific property overrides in this file. --configuration!-- nn web 端访问地址 --propertynamedfs.namenode.http-address/namevaluehadoop1:9870/value/property!-- 2nn web 端访问地址 --propertynamedfs.namenode.secondary.http-address/namevaluehadoop3/value/propertypropertynamedfs.datanode.http.address/namevalue0.0.0.0:9864/valuedescriptionThe datanode http server address and port./description/property!-- 如果为true(默认值)则namenode要求连接datanode的地址必须解析为主机名。如有必要将执行反向DNS查找。所有从不可解析地址注册datanode的尝试都将被拒绝。建议保留该设置以防止在DNS中断期间意外注册由excluded文件中hostname列出的datanode。只有在没有基础设施支持反向DNS查找的环境中才将此设置为false。--!--propertynamedfs.namenode.datanode.registration.ip-hostname-check/namevaluefalse/value/property--/configuration3YARN配置文件
cat $HADOOP_HOME/etc/hadoop/yarn-site.xml?xml version1.0?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configuration!-- 指定MR走shutffle --propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 指定ResourceManager的地址 --propertynameyarn.resourcemanager.hostname/namevaluehadoop2/value/property!-- 环境变量的继承 3.1.3需要配置HADOOP_MAPRED_HOME。3.2以上修复了就不用配置了--propertynameyarn.nodemanager.env-whitelist/namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,HADOOP_MAPRED_HOME/value/property/configuration4MapReduce配置文件
cat $HADOOP_HOME/etc/hadoop/mapred-site.xml?xml version1.0?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configuration!-- 指定MapReduce程序运行在Yarn上 --propertynamemapreduce.framework.name/namevalueyarn/value/property/configuration修改完成后同步到所有服务器
xsync $HADOOP_HOME/etc/hadoop5、启动整个集群
5.1、配置workers
# 注意 不允许有任何空格、空行
vim $HADOOP_HOME/etc/hadoop/workers
hadoop1
hadoop2
hadoop3同步文件到所有服务器
xsync $HADOOP_HOME/etc/hadoop/workers5.2、启动集群
前提添加写权限否则会出现namenode无法启动的状况
chmod -R aw $HADOOP_HOME1、初始化文件系统第一次运行格式化集群
hadoop1 $ hdfs namenode -format可以查看下生成的版本号
cat $HADOOP_HOME/data/dfs/name/current/VERSION2、启动集群NameNode和DataNode守护进程:
启动
hadoop1 $ $HADOOP_HOME/sbin/start-dfs.sh查看启动的服务jps
3、启动ResourceManager 注意要在ResourceManager 的服务器上启动
hadoop2 $ $HADOOP_HOME/sbin/start-yarn.sh5.3、页面地址
# hdfs的NameNode
http://hadoop1:9870# YARN的ResourceManager
http://hadoop2:80886、集群测试
6.1、上传文件到集群测试
# 先在hadoop上创建目录
hadoop fs -mkdir /tinput# 上传…….txt文件
hadoop fs -put tinput/word.txt /tinput6.2、上传大文件测试
hadoop fs -put ../jdk-8u361-linux-x64.tar.gz /tinput数据在datanode下存储
# 查看datanode存储的数据可以使用如下方式还原每一台服务器存储的都一样
cd data/dfs/data/current/BP-12……/current/finalized/subdir0/subdir0/blk……/……# word.txt
cat blk_1073741825# 还原 jdk-8u361-linux-x64.tar.gz
cat blk_1073741826 tmp.tar.gz
cat blk_1073741827 tmp.tar.gz
# 解压后可以发现这个就是我们之前导入的jdk压缩包
tar -zxvf tmp.tar.gz6.3、hadoop集群测试
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /tinput /toutput7、集群崩溃处理
1先停止集群
hadoop2 $ $HADOOP_HOME/sbin/stop-yarn.sh
hadoop1 $ $HADOOP_HOME/sbin/stop-dfs.sh2删除每个集群上的
rm -rf $HADOOP_HOME/data/ $HADOOP_HOME/logs/3格式化集群
hadoop1 $ hdfs namenode -format4启动集群
hadoop1 $ $HADOOP_HOME/sbin/start-dfs.sh
hadoop2 $ $HADOOP_HOME/sbin/start-yarn.sh8、配置历史服务器
8.1、配置mapred-site.xml
文件中添加如下配置
hadoop1$ vim $HADOOP_HOME/etc/hadoop/mapred-site.xmlconfiguration!-- 配置历史服务器端地址 --propertynamemapreduce.jobhistory.address/namevaluehadoop1:10020/value/property!-- 配置历史服务web端地址 --propertynamemapreduce.jobhistory.webapp.address/namevaluehadoop1:10888/value/property
/configuration8.2、同步配置
hadoop1 $ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml8.3、在hadoop1上启动历史服务器
如果yarn启动需要关闭重启yarn
hadoop2 $ $HADOOP_HOME/sbin/stop-yarn.sh
hadoop2 $ $HADOOP_HOME/sbin/start-yarn.sh启动历史服务器
hadoop1 $ mapred --daemon start historyserver8.4、查看历史服务器是否启动
hadoop1 $ jps8.5、查看JobHistory
# 先在hadoop上创建目录
hadoop fs -mkdir /tinput# 上传…….txt文件
hadoop fs -put tinput/word.txt /tinputhadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /tinput /toutput29、配置日志聚合功能
功能将程序运行日志信息上传到HDFS系统上
注开启日志聚合功能需要重启NodeManager、ResourceManager、HistoryServer。 1配置yarn-site.xml
hadoop1 $ vim $HADOOP_HOME/etc/hadoop/yarn-site.xmlconfiguration!-- 开启日志聚合功能 --propertynameyarn.log-aggregation-enable/namevaluetrue/value/property!-- 设置日志聚合服务器地址 --propertynameyarn.log.server.url/namevaluehttp://hadoop1:19888/jobhistory/logs/value/property!-- 设置日志保留时间为7天 --propertynameyarn.log-aggregation.retain-seconds/namevalue604800/value/property
/configuration2同步配置
hadoop1 $ xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml3关闭重启NodeManager、ResourceManager、HistoryServer
关闭
hadoop1 $ mapred --daemon stop historyserver
hadoop2 $ $HADOOP_HOME/sbin/stop-yarn.sh重启
hadoop2 $ $HADOOP_HOME/sbin/start-yarn.sh
hadoop1 $ mapred --daemon start historyserver10、集群启停总结
1、整体启动停止(推荐)
1整体启动、停止HDFS
hadoop1 $ $HADOOP_HOME/sbin/stop-dfs.shhadoop1 $ $HADOOP_HOME/sbin/start-dfs.sh2整体启动体制YARN
hadoop2 $ $HADOOP_HOME/sbin/stop-yarn.shhadoop2 $ $HADOOP_HOME/sbin/start-yarn.sh3启停historyserver
hadoop1 $ $HADOOP_HOME/bin/mapred --daemon stop historyserverhadoop1 $ mapred --daemon start historyserver2、各个服务组件分别启/停
1启/停HDFS组件
[hdfs]$ $HADOOP_HOME/bin/hdfs --daemon stop namenode
[hdfs]$ $HADOOP_HOME/bin/hdfs --daemon stop datanode[hdfs]$ $HADOOP_HOME/bin/hdfs --daemon start namenode
[hdfs]$ $HADOOP_HOME/bin/hdfs --daemon start datanode2启/停YARN组件
[yarn]$ $HADOOP_HOME/bin/yarn --daemon stop resourcemanager
[yarn]$ $HADOOP_HOME/bin/yarn --daemon stop nodemanager[yarn]$ $HADOOP_HOME/bin/yarn --daemon start resourcemanager
[yarn]$ $HADOOP_HOME/bin/yarn --daemon start nodemanager3启停historyserver
[mapred]$ $HADOOP_HOME/bin/mapred --daemon stop historyserver[mapred]$ $HADOOP_HOME/bin/mapred --daemon start historyserver11、编写Hadoop集群常用脚本
1批量启停hadoop服务
hadoop1 $ vim $HSCRIPT_HOME/bin/myhadoopcat myhadoop
#!/bin/bashif [ $# -lt 1 ]
thenecho No Args Input...exit ;ficase $1 in
start)echo 启动 hadoop 集群 echo --------------- 启动 hdfs ---------------ssh hadoop1 $HADOOP_HOME/sbin/start-dfs.shecho --------------- 启动 yarn ---------------ssh hadoop2 $HADOOP_HOME/sbin/start-yarn.shecho --------------- 启动 historyserver ---------------ssh hadoop1 $HADOOP_HOME/bin/mapred --daemon start historyserver
;;
stop)echo Shutdown hadoop 集群 echo --------------- 停止 historyserver ---------------ssh hadoop1 $HADOOP_HOME/bin/mapred --daemon stop historyserver echo --------------- 停止 yarn ---------------ssh hadoop2 $HADOOP_HOME/sbin/stop-yarn.shecho --------------- 停止 hdfs ---------------ssh hadoop1 $HADOOP_HOME/sbin/stop-dfs.sh
;;
*)echo Input Args Error..
;;
esac使用
# 赋权
hadoop1 $ chmod x $HSCRIPT_HOME/bin/myhadoop# 启动
hadoop1 $ myhadoop start
# 停止
hadoop1 $ myhadoop stop2查看所有服务器Java进程脚本jpsall
hadoop1 $ vim $HSCRIPT_HOME/bin/jpsall创建所需查看服务器的host地址
cat /var/opt/hadoopSoftware/hadoopScript/config/all_hadoop_hosts
hadoop1
hadoop2
hadoop3cat jpsall
#!/bin/bashfor host in cat /var/opt/hadoopSoftware/hadoopScript/config/all_hadoop_hosts
doecho $host ssh $host jpsecho -e \n
done运行
# 赋权
hadoop1 $ chmod x $HSCRIPT_HOME/bin/jpsall# 执行检查
hadoop1 $ jpsall12、常用端口号
端口名称Hadoop3.xNameNode 内部通信端口8020、9000、9820NameNode HTTP UI9870MapReduce 查看执行任务端口8088历史服务器通信端口19888参考网站
Hadoop官网http://hadoop.apache.org/ Hadoop下载https://www.apache.org/dyn/closer.cgi/hadoop/common/
Hadoop历史版本下载http://archive.apache.org/dist/hadoop/core/ Hadoop文档http://hadoop.apache.org/docs/
Hive官网http://hive.apache.org/ Hive下载http://mirror.bit.edu.cn/apache/hive/
Hive历史版本下载http://archive.apache.org/dist/hive/ Hive文档https://cwiki.apache.org/confluence/display/Hive
HBase官网http://hbase.apache.org/ HBase下载http://mirrors.sonic.net/apache/hbase/
HBase历史版本下载http://archive.apache.org/dist/hbase/ HBase文档http://hbase.apache.org/book.html HBase中文文档http://abloz.com/hbase/book.html
Spark官网http://spark.apache.org/ Spark下载http://spark.apache.org/downloads.html Spark文档http://spark.apache.org/docs/latest/
Zookeeper官网http://zookeeper.apache.org/ Zookeeper下载http://zookeeper.apache.org/releases.html#download
Flume官网http://flume.apache.org/ Flume下载http://flume.apache.org/download.html Flume文档http://flume.apache.org/documentation.html
Mahout官网http://mahout.apache.org/ Mahout下载http://mahout.apache.org/general/downloads.html
Tez官网http://tez.apache.org/
cdh5版本
下载地址http://archive.cloudera.com/cdh5/cdh/5/ 文档地址http://archive.cloudera.com/cdh5/cdh/5/