IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 五、Hadoop高可用部署与环境配置 -> 正文阅读

[大数据]五、Hadoop高可用部署与环境配置

(1)下载安装包并解压到指定目录

(2)修改配置文件,并添加必要变量

(3)分发到其他节点,配置环境变量

以dataxc用户为例,脚本示例如下:

#!/bin/bash
# hadoop.sh

nodes=(n101 n102 n103)
#集群地址
zk_connect='n101:2181,n102:2181,n103:2181'
hdns='n101:8485;n102:8485;n103:8485'

#解压hadoop到程序目录
cd /home/dataxc/sw && tar -zxvf hadoop-3.3.1.tar.gz -C /home/dataxc/opt

#为hadoop指定java路径和时区
sed -i 's!# export JAVA_HOME=!export JAVA_HOME=/home/dataxc/opt/jdk1.8.0_301!' /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/hadoop-env.sh
echo -e 'export HADOOP_OPTS="$HADOOP_OPTS -Duser.timezone='Asia/Shanghai'"' >> /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/hadoop-env.sh

#配置core-site.xml
sed -i '/^<configuration>/,$d' /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/core-site.xml
echo -e "\
<configuration>
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hdcluster/</value>
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/dataxc/opt/hadoop-3.3.1/tmp</value>
</property>
<property>
	<name>ha.zookeeper.quorum</name>
	<value>master:$zk_connect</value>
</property>
</configuration>" >> /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/core-site.xml

#配置hdfs-site.xml
sed -i '/^<configuration>/,$d' /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/hdfs-site.xml
echo -e "\
<configuration>
<property>
	<name>dfs.nameservices</name>
	<value>hdcluster</value>
</property>
<property>
	<name>dfs.ha.namenodes.hdcluster</name>
	<value>nn1,nn2</value>
</property>\n
<property>
	<name>dfs.namenode.rpc-address.hdcluster.nn1</name>
	<value>n101:9000</value>
</property>
<property>
	<name>dfs.namenode.http-address.hdcluster.nn1</name>
	<value>n101:50070</value>
</property>
<property>
	<name>dfs.namenode.servicerpc-address.hdcluster.nn1</name>
	<value>n101:53310</value>
</property>\n
<property>
	<name>dfs.namenode.rpc-address.hdcluster.nn2</name>
	<value>n102:9000</value>
</property>
<property>
	<name>dfs.namenode.http-address.hdcluster.nn2</name>
	<value>n102:50070</value>
</property>
<property>
	<name>dfs.namenode.servicerpc-address.hdcluster.nn2</name>
	<value>n102:53310</value>
</property>\n
<property>
	<name>dfs.namenode.shared.edits.dir</name>
	<value>qjournal://$hdns/hdcluster</value>
</property>
<property>
	<name> dfs.namenode.name.dir </name>
	<value>/home/dataxc/opt/hadoop-3.3.1/data/hdcluster</value>
	<final>true</final>
</property>
<property>
	<name>dfs.journalnode.edits.dir</name>
	<value>/home/dataxc/opt/hadoop-3.3.1/data/journal</value>
</property>\n
<property>
	<name>dfs.ha.automatic-failover.enabled</name>
	<value>true</value>
</property>
<property>
	<name>dfs.client.failover.proxy.provider.hdcluster</name>
	<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>\n
<property>
	<name>dfs.ha.fencing.methods</name>
	<value>sshfence</value>
</property>
<property>
	<name>dfs.ha.fencing.ssh.private-key-files</name>
	<value>/home/dataxc/.ssh/id_rsa</value>
</property>\n
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>\n
<property>
	<name>dfs.permissions.enabled</name>
	<value>false</value>
</property>
</configuration>" >> /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/hdfs-site.xml

#配置yarn-site.xml
sed -i '/^<configuration>/,$d' /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/yarn-site.xml
echo -e "\
<configuration>
<property>
	<name>yarn.resourcemanager.ha.enabled</name>
	<value>true</value>
</property>
<property>
	<name>yarn.resourcemanager.cluster-id</name>
	<value>rm_ha_id</value>
</property>\n
<property>
	<name>yarn.resourcemanager.ha.rm-ids</name>
	<value>rm1,rm2</value>
</property>
<property>
	<name>yarn.resourcemanager.hostname.rm1</name>
	<value>n101</value>
</property>
<property>
	<name>yarn.resourcemanager.hostname.rm2</name>
	<value>n102</value>
</property>\n
<property>
	<name>yarn.resourcemanager.recovery.enabled</name>
	<value>true</value>
</property>
<property>
	<name>yarn.resourcemanager.store.class</name>
	<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>\n
<property>
	<name>yarn.resourcemanager.zk-address</name>
	<value>$zk_connect</value>
</property>
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>\n
<property>
	<name>yarn.nodemanager.pmem-check-enabled</name>
	<value>false</value>
</property>
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>-1</value>
</property>
<property>
	<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
	<value>true</value>
</property>
</configuration>" >> /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/yarn-site.xml

#配置mapred-site.xml
sed -i '/^<configuration>/,$d' /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/mapred-site.xml
echo -e "\
<configuration>
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<property>
	<name>mapreduce.tasktracker.outofband.heartbeat</name>
	<value>true</value>
</property>
<property>
	<name>yarn.nodemanager.pmem-check-enabled</name>
	<value>false</value>
</property>
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
</configuration>" >> /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/mapred-site.xml

#添加变量
sed -i '1a export HDFS_ZKFC_USER=dataxc\
export HDFS_JOURNALNODE_USER=dataxc\
export HDFS_SECONDARYNAMENODE_USER=dataxc\
export HDFS_NAMENODE_USER=dataxc\
export HDFS_DATANODE_SECURE_USER=hdfs\
export HDFS_DATANODE_USER=dataxc' /home/dataxc/opt/hadoop-3.3.1/sbin/{start-dfs.sh,stop-dfs.sh}

sed -i '1a export YARN_PROXYSERVER_USER=dataxc\
export YARN_NODEMANAGER_USER=dataxc\
export HADOOP_SECURE_DN_USER=yarn\
export YARN_RESOURCEMANAGER_USER=dataxc' /home/dataxc/opt/hadoop-3.3.1/sbin/{start-yarn.sh,stop-yarn.sh}

#添加集群节点到workers
echo -e "n101\nn102\nn103" > /home/dataxc/opt/hadoop-3.3.1/etc/hadoop/workers

#分发到其他节点
for node in ${nodes[*]:1}
	do
		scp -r /home/dataxc/opt/hadoop-3.3.1 dataxc@$node:/home/dataxc/opt
	done

#添加环境变量
for node in ${nodes[*]}
	do
		ssh dataxc@$node 'sed -i -e "/export JAVA_HOME=/a export HADOOP_HOME=/home/dataxc/opt/hadoop-3.3.1" \
		-e "/^export PATH=/ s/$/\:\$HADOOP_HOME\/bin\:\$HADOOP_HOME\/sbin/" /home/dataxc/.bashrc;
		source /home/dataxc/.bashrc'
	done

:<<!
#所有节点启动journalnode(若未启动zk集群,则先启动zk)
/home/dataxc/opt/hadoop-3.3.1/bin/hdfs --workers --daemon start journalnode
#首次启动,格式化NameNode
/home/dataxc/opt/hadoop-3.3.1/bin/hdfs namenode -format
#启动NameNode
/home/dataxc/opt/hadoop-3.3.1/bin/hdfs --daemon start namenode
#同步元数据
ssh dataxc@n102 /home/dataxc/opt/hadoop-3.3.1/bin/hdfs namenode -bootstrapStandby
#首次启动,格式化zk
/home/dataxc/opt/hadoop-3.3.1/bin/hdfs zkfc -formatZK
#启动hdfs
/home/dataxc/opt/hadoop-3.3.1/sbin/start-dfs.sh
#启动yarn
/home/dataxc/opt/hadoop-3.3.1/sbin/start-yarn.sh
!
#end

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:32:03  更:2022-03-30 18:32:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:50:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码