DeepOps的hadoop小笔记-hadoop集群搭建ubuntu+virtualbox

00 前期准备

1、已经下载并解压好hadoop
2、已部署java环境

01 主要模块

hdfs

NameNode nn
DataNode dn
Secondary NameNode 2nn

yarn

ResourceManager rm
NodeManager nm
ApplicationMaster AM
Container

MapReduce

Map
Reduce

02 各项环境信息

服务器情况

服务器名称服务器ipHDFS服务YARN 服务说明
ops-vb-m0192.168.1.70NameNode / DataNodeNodeManager先在这台机器启动HDFS
ops-vb-s1192.168.1.71DataNodeResourceManager / NodeManager再在这台机器启动YARN
ops-vb-s2192.168.1.72DataNode / Secondary NameNodeNodeManager
ops-vb-s3192.168.1.73DataNodeNodeManager也可以不配置这台机器

03 创建虚拟机

虚拟机先配置好一台机器,然后在复制几台机器,
1、调整ip(如果有需要调整网卡的mac)
2、调整主机名
3、配置好hosts文件

04 设置ssh免密登录

在每台机器用户的 ~/.ssh目录下执行 :ssh-keygen -t rsa 生成公钥私钥

分别在每台机器执行下面命令,完成配置后ssh访问其他服务器就可以不用输入密码。

ssh-copy-id ops-vb-m0
ssh-copy-id ops-vb-s1
ssh-copy-id ops-vb-s2
ssh-copy-id ops-vb-s3

05 核心配置文件调整

调整文件:core-site.xml

/opsdata/envs**/hadoop-3.2.1/etc/hadoop/core-site.xml**

<!--指定HDFS中NameNode的地址--> 
<property> 
	<name>fs.defaultFS</name> 
	<value>hdfs://ops-vb-m0:9000</value> 
</property> 
<!--指定Hadoop运行时产生文件的存储目录--> 
<property> 
	<name>hadoop.tmp.dir</name>
	<value>/opsdata/hd_data/tmp</value> 
</property>

06 HDFS配置文件调整

调整列表:
1. hadoop-env.sh
2. hdfs-site.xml
3. workers

调整文件:hadoop-env.sh :

添加JAVA_HOME
vi /opsdata/envs**/hadoop-3.2.1/etc/hadoop/hadoop-env.sh**

export JAVA_HOME=/opsdata/envs/jdk1.8.0_261

调整文件:hdfs-site.xml

hadoop集群数量,以及Secondary NameNode的服务器
vi /opsdata/envs**/hadoop-3.2.1/etc/hadoop/hdfs-site.xml**

 <!--指定Hadoop 数据副本数量 --> 
<property> 
	<name>dfs.replication</name> 
	<value>**3**</value> 
</property>
 <!--指定Hadoop辅助名称节点主机配置--> 
 <property> 
	 <name>dfs.namenode.secondary.http-address</name> 
	 <value>**ops-vb-s2:50090**</value> 
 </property>

调整文件:workers

集群机器列表
vi /opsdata/envshadoop-3.2.1/etc/hadoop/etc/hadoop/workers (2.x版本的这个文件名是 /etc/hadoop/slaves 感觉进步了)
不能有多余的空格和换行

ops-vb-m0
ops-vb-s1
ops-vb-s2
ops-vb-s3

07 YARN配置文件调整

调整列表:
1. yarn-env.sh
2. yarn-site.xml

调整文件:yarn-env.sh

vi /opsdata/envs/hadoop-3.2.1/etc/hadoop/yarn-env.sh

export JAVA_HOME=/opsdata/envs/jdk1.8.0_261

调整文件:yarn-site.xml

vi /opsdata/envs/hadoop-3.2.1/etc/hadoop/yarn-site.xml

调整文件:yarn-site.xml

vi /opsdata/envs/hadoop-3.2.1/etc/hadoop/yarn-site.xml

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
 <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

<!--指定YARN的ResourceManager的地址-->
<property> 
  <name>yarn.resourcemanager.hostname</name> 
<value>ops-vb-s1</value> 
</property>

08 MapReduce配置文件调整

调整列表:
1. mapred-env.sh
2. mapred-site.xml

调整文件:mapred-env.sh

vi /opsdata/envs/hadoop-3.2.1/etc/hadoop/mapred-env.sh

export JAVA_HOME=/opsdata/envs/jdk1.8.0_261

调整文件:mapred-site.xml

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>

09 集群机器同步配置文件

在ops-vb-m0机器上执行下面的命令,将调整后的配置文件同步到各个机器上。

rsync -rvl /opsdata/envs/hadoop-3.2.1/etc/hadoop/* ops@ops-vb-s1:/opsdata/envs/hadoop-3.2.1/etc/hadoop/
rsync -rvl /opsdata/envs/hadoop-3.2.1/etc/hadoop/* ops@ops-vb-s2:/opsdata/envs/hadoop-3.2.1/etc/hadoop/
rsync -rvl /opsdata/envs/hadoop-3.2.1/etc/hadoop/* ops@ops-vb-s3:/opsdata/envs/hadoop-3.2.1/etc/hadoop/

10 集群启动

格式化NameNode

如果之前配置启动过NameNode需要删除logs和data文件夹之后在进行格式化操作。

rm -rf /opsdata/envs/hadoop-3.2.1/logs
rm -rf /opsdata/hd_data

格式化NameNode

/opsdata/envs/hadoop-3.2.1/bin/hdfs namenode -format

启动HDFS

在ops-vb-m0机器上

/opsdata/envs/hadoop-3.2.1/sbin/start-dfs.sh

启动后使用jps -m 在各个机器上查看NameNode、Secondary NameNode和DataNode是否已经启动。

启动YARN

ops-vb-m1机器上

/opsdata/envs/hadoop-3.2.1/sbin/start-yarn.sh

11 集群监控

DataNode:
http://192.168.1.70:9864/datanode.html

DFShealth
http://192.168.1.70:9870/dfshealth.html

12 集群停止

停止YARN

ops-vb-m1机器上

/opsdata/envs/hadoop-3.2.1/sbin/stop-yarn.sh

停止HDFS

在ops-vb-m0机器上

/opsdata/envs/hadoop-3.2.1/sbin/stop-dfs.sh

停止后使用jps -m 在各个机器上查看java进程。

13 问题处理

启动datanode: Datanode Uuid unassigned

2021-02-08 01:22:02,894 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: ops-vb-m0/192.168.1.70:9000
hosts 文件去掉ops-vb-m0(s1|s2|s3) 对应127.0.0.1 那一条

启动yarn localhost: rcmd: socket: Permission denied

首先创建 /etc/pdsh/rcmd_default文件
sudo vi /etc/pdsh/rcmd_default
在文件中写入ssh保存(就ssh这三个字母就行)

14 参考资料

B站尚硅谷Hadoop教程(hadoop框架精讲):
https://www.bilibili.com/video/BV1cW411r7c5

官方文档
https://hadoop.apache.org/docs/r3.2.1/hadoop-project-dist/hadoop-common/ClusterSetup.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值