h5可以做网站吗,做网站用什么语言简单,京东网站建设目的,泰安做网站多少钱准备工作
1、准备三台虚拟机#xff0c;参考#xff1a;CentOS7集群环境搭建#xff08;3台#xff09;-CSDN博客
2、配置虚拟机之间免密登录#xff0c;参考#xff1a;CentOS7集群配置免密登录-CSDN博客
3、虚拟机分别安装jdk#xff0c;参考#xff1a;CentOS7集…准备工作
1、准备三台虚拟机参考CentOS7集群环境搭建3台-CSDN博客
2、配置虚拟机之间免密登录参考CentOS7集群配置免密登录-CSDN博客
3、虚拟机分别安装jdk参考CentOS7集群安装JDK1.8-CSDN博客
4、下载Hadoop安装包下载地址链接https://pan.baidu.com/s/1f1DmqNNFBvBDKi5beYl3Jg?pwd6666
搭建Hadoop集群
集群部署规划 一、上传并解压Hadoop安装包
1、将hadoop3.3.4.tar.gz使用XFTP上传到opt目录下面的software文件夹下面
2、进入到Hadoop安装包路径
cd /opt/software
3、解压安装文件到/opt/moudle下面
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/moudle/ 4、查看是否解压成功
cd /opt/moudle
ll 5、重命名 mv hadoop-3.3.4/ hadoop 6、将Hadoop添加到环境变量
1、获取Hadoop安装路径
进入Hadoop目录下输入
pwd
#输出
opt/moudle/hadoop 2、打开/etc/profile.d/my_env.sh文件 sudo vim /etc/profile.d/my_env.sh
在profile文件末尾添加hadoop路径shitfg
#HADOOP_HOME
export HADOOP_HOME/opt/moudle/hadoop
export PATH$PATH:$HADOOP_HOME/bin
export PATH$PATH:$HADOOP_HOME/sbin 3、保存后退出
esc键然后 :wq 4、分发环境变量文件
分发脚本之前配置的有可以去前面的文章看看
sudo /home/user/bin/xsync /etc/profile.d/my_env.sh
5、source 使之生效3台节点
[userhadoop102 module]$ source /etc/profile.d/my_env.sh [userhadoop103 module]$ source /etc/profile.d/my_env.sh [userhadoop104 module]$ source /etc/profile.d/my_env.sh
二、配置集群
1、核心配置文件
配置core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml 文件内容如下(在configurationconfiguration中间输入)
我这样配置不知道为啥用不了直接用的root用户加红的地方换成root !-- 把多个NameNode的地址组装成一个集群mycluster -- property namefs.defaultFS/name valuehdfs://mycluster/value /property !-- 指定hadoop运行时产生文件的存储目录 -- property namehadoop.tmp.dir/name value/opt/moudle/hadoop/data/value /property !-- 配置NN故障转移的 ZK集群-- property nameha.zookeeper.quorum/name valuehadoop102:2181,hadoop103:2181,hadoop104:2181/value /property !-- 配置HDFS网页登录使用的静态用户为user -- property namehadoop.http.staticuser.user/name valueuser/value /property !-- 配置该user(superUser)允许通过代理访问的主机节点 -- property namehadoop.proxyuser.user.hosts/name value*/value /property !-- 配置该user(superUser)允许通过代理用户所属组 -- property namehadoop.proxyuser.user.groups/name value*/value /property !-- 配置该user(superUser)允许通过代理的用户-- property namehadoop.proxyuser.user.users/name value*/value /property 2、HDFS配置文件
配置hdfs-site.xml
vim hdfs-site.xml
文件内容如下在configurationconfiguration中间输入
!-- NameNode数据存储目录 --propertynamedfs.namenode.name.dir/namevaluefile://${hadoop.tmp.dir}/name/value/property!-- DataNode数据存储目录 --propertynamedfs.datanode.data.dir/namevaluefile://${hadoop.tmp.dir}/data/value/property!-- JournalNode数据存储目录 --propertynamedfs.journalnode.edits.dir/namevalue${hadoop.tmp.dir}/jn/value/property!-- 完全分布式集群名称 --propertynamedfs.nameservices/namevaluemycluster/value/property!-- 集群中NameNode节点都有哪些 --propertynamedfs.ha.namenodes.mycluster/namevaluenn1,nn2/value/property!-- NameNode的RPC通信地址 --propertynamedfs.namenode.rpc-address.mycluster.nn1/namevaluehadoop102:8020/value/propertypropertynamedfs.namenode.rpc-address.mycluster.nn2/namevaluehadoop103:8020/value/property!-- NameNode的http通信地址 --propertynamedfs.namenode.http-address.mycluster.nn1/namevaluehadoop102:9870/value/propertypropertynamedfs.namenode.http-address.mycluster.nn2/namevaluehadoop103:9870/value/property!-- 指定NameNode元数据在JournalNode上的存放位置 --propertynamedfs.namenode.shared.edits.dir/name
valueqjournal://hadoop102:8485;hadoop103:8485;hadoop104:8485/mycluster/value/property!-- 访问代理类client用于确定哪个NameNode为Active --propertynamedfs.client.failover.proxy.provider.mycluster/namevalueorg.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/value/property!-- 配置隔离机制即同一时刻只能有一台服务器对外响应 --propertynamedfs.ha.fencing.methods/namevaluesshfence/value/property!-- 使用隔离机制时需要ssh秘钥登录--propertynamedfs.ha.fencing.ssh.private-key-files/namevalue/home/user/.ssh/id_rsa/value/property
!-- 启用nn故障自动转移 --
propertynamedfs.ha.automatic-failover.enabled/namevaluetrue/value
/property !-- 测试环境指定HDFS副本的数量1 --propertynamedfs.replication/namevalue3/value/property
3、YARN配置文件
配置yarn-site.xml
vim yarn-site.xml
文件内容如下在configurationconfiguration中间输入
propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 启用resourcemanager ha --propertynameyarn.resourcemanager.ha.enabled/namevaluetrue/value/property!-- 声明两台resourcemanager的地址 --propertynameyarn.resourcemanager.cluster-id/namevaluecluster-yarn1/value/property!--指定resourcemanager的逻辑列表--propertynameyarn.resourcemanager.ha.rm-ids/namevaluerm1,rm2/value/property
!-- rm1的配置 --!-- 指定rm1的主机名 --propertynameyarn.resourcemanager.hostname.rm1/namevaluehadoop102/value/property!-- 指定rm1的web端地址 --propertynameyarn.resourcemanager.webapp.address.rm1/namevaluehadoop102:8088/value/property!-- 指定rm1的内部通信地址 --propertynameyarn.resourcemanager.address.rm1/namevaluehadoop102:8032/value/property!-- 指定AM向rm1申请资源的地址 --propertynameyarn.resourcemanager.scheduler.address.rm1/name valuehadoop102:8030/value/property!-- 指定供NM连接的地址 -- propertynameyarn.resourcemanager.resource-tracker.address.rm1/namevaluehadoop102:8031/value/property!-- rm2的配置 --!-- 指定rm2的主机名 --propertynameyarn.resourcemanager.hostname.rm2/namevaluehadoop103/value/propertypropertynameyarn.resourcemanager.webapp.address.rm2/namevaluehadoop103:8088/value/propertypropertynameyarn.resourcemanager.address.rm2/namevaluehadoop103:8032/value/propertypropertynameyarn.resourcemanager.scheduler.address.rm2/namevaluehadoop103:8030/value/propertyproperty
nameyarn.resourcemanager.resource-tracker.address.rm2/namevaluehadoop103:8031/value/property!-- 指定zookeeper集群的地址 -- propertynameyarn.resourcemanager.zk-address/namevaluehadoop102:2181,hadoop103:2181,hadoop104:2181/value/property!-- 启用RM自动故障转移 -- propertynameyarn.resourcemanager.recovery.enabled/namevaluetrue/value/property!-- 指定resourcemanager的状态信息存储在zookeeper集群 -- propertynameyarn.resourcemanager.store.class/name valueorg.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore/value
/property!-- 环境变量的继承 --propertynameyarn.nodemanager.env-whitelist/namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value/property!--yarn单个容器允许分配的最大最小内存 --propertynameyarn.scheduler.minimum-allocation-mb/namevalue512/value/propertypropertynameyarn.scheduler.maximum-allocation-mb/namevalue4096/value/property!-- yarn容器允许管理的物理内存大小 --propertynameyarn.nodemanager.resource.memory-mb/namevalue4096/value/property!-- 关闭yarn对物理内存和虚拟内存的限制检查 --propertynameyarn.nodemanager.pmem-check-enabled/namevaluetrue/value/propertypropertynameyarn.nodemanager.vmem-check-enabled/namevaluefalse/value/property
4、MapReduce配置文件
配置mapred-site.xml
vim mapred-site.xml
文件内容如下在configurationconfiguration中间输入
!-- 指定MapReduce程序运行在Yarn上 --propertynamemapreduce.framework.name/namevalueyarn/value/property
5、配置workers
vim /opt/moudle/hadoop/etc/hadoop/workers
在该文件中增加如下内容localhost删除
hadoop102
hadoop103
hadoop104注意该文件中添加的内容结尾不允许有空格文件中不允许有空行。 三、配置历史服务器
为了查看程序的历史运行情况需要配置一下历史服务器。具体配置步骤如下
1、配置mapred-site.xml
vim mapred-site.xml
在该文件里面增加如下配置。
!-- 历史服务器端地址 --
propertynamemapreduce.jobhistory.address/namevaluehadoop102:10020/value
/property!-- 历史服务器web端地址 --
propertynamemapreduce.jobhistory.webapp.address/namevaluehadoop102:19888/value
/property四、配置日志的聚集
日志聚集概念应用运行完成以后将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处可以方便的查看到程序运行详情方便开发调试。
注意开启日志聚集功能需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下
1、配置yarn-site.xml
vim yarn-site.xml
在该文件里面增加如下配置。
!-- 开启日志聚集功能 --
propertynameyarn.log-aggregation-enable/namevaluetrue/value
/property!-- 设置日志聚集服务器地址 --
property nameyarn.log.server.url/name valuehttp://hadoop102:19888/jobhistory/logs/value
/property!-- 设置日志保留时间为7天 --
propertynameyarn.log-aggregation.retain-seconds/namevalue604800/value
/property五、分发Hadoop
xsync /opt/moudle/hadoop/
六、启动Hadoop-HA
1、在3个JournalNode节点上输入以下命令启动journalnode服务
进入/opt/moudle/hadoop hdfs --daemon start journalnode
2、在hadoop102[nn1]上对其进行格式化并启动
hdfs namenode -format
hdfs --daemon start namenode
3、在hadoop103[nn2]上同步nn1的元数据信息
hdfs namenode -bootstrapStandby
4、启动hadoop103[nn2] hdfs --daemon start namenode
5、格式化zkfc(102)
zookeeper必须先启动 zk.sh start具体参考zookeeper集群安装
hdfs zkfc -formatZK
6、在所有nn节点102、103启动zkfc hdfs --daemon start zkfc
7、在所有节点上3台启动datanode
hdfs --daemon start datanode
8、第二次启动可以在NameNode所在节点执行start-dfs.sh启动HDFS所有进程
这一步不用管关闭之时提示我权限不够我直接用root用户操作然后在hadoop-env.sh中加入以下几行
export HDFS_NAMENODE_USERroot
export HDFS_DATANODE_USERroot
export HDFS_JOURNALNODE_USERroot
export HDFS_ZKFC_USERroot
在yarn-env.sh中加入了以下几行 然后分发给三台机器
export YARN_NODEMANAGER_USERroot
export YARN_RESOURCEMANAGER_USERroot
start-dfs.sh
stop-dfs.sh
9、在ResourceMamager所在节点执行start-yarn.sh 启动yarn所有进程
start-yarn.sh
stop-yarn.sh
10、部署完成可以通过start-all.sh和stop-all.sh控制Hadoop-HA所有节点的启停
start-all.sh
stop-all.sh
Hadoop群起脚本
1、在/home/user/bin目录下创建hdp.sh
2、写入以下内容
#!/bin/bash
if [ $# -lt 1 ]
thenecho No Args Input...exit ;
fi
case $1 in
start)echo 启动 hadoop集群 echo --------------- 启动 hdfs 和 yarn ---------------ssh hadoop102 /opt/moudle/hadoop/sbin/start-all.shecho --------------- 启动 historyserver ---------------ssh hadoop102 /opt/moudle/hadoop/bin/mapred --daemon start historyserver
;;
stop)echo 关闭 hadoop集群 echo --------------- 关闭 historyserver ---------------ssh hadoop102 /opt/moudle/hadoop/bin/mapred --daemon stop historyserverecho --------------- 关闭 hdfs 和 yarn ---------------ssh hadoop102 /opt/moudle/hadoop/sbin/stop-all.sh
;;
*)echo Input Args Error...
;;
esac3、增加x指的是增加可以运行权限权限
chmod x hdp.sh
4、启动集群
hdp.sh start
查看进程
xcall.sh jps
5、关闭集群
hdp.sh stop
查看进程
xcall.sh jps UI
http://hadoop102:9870/dfshealth.html#tab-overview http://hadoop102:8088/clusterhttp://hadoop102:8088/cluster 至此Hadoop集群就顺利搭建完成遇见错误可以私我共勉~