建站服务器
前骤:
hadoop cluster中的daemon
hdfs:
namenode,nn
secondarynode,snn
datanode:dn
/data/hadoop/hdfs/{nn,snn,dn}
nn:fsp_w_picpath,editlog//镜像和编辑日志
//hdfs的nn是在内存中存放数据,不断根据文件状态改变,修改元数据
fsp_w_picpath存放了:文件分割后存放在哪些node上
//文件元数据的改变,会写入到editllog中,最后写入到fsp_w_picpath中,因此下次nn重启后数据依然存在,从fsp_w_picpath中读取数据,获取到内存中
//一旦nn崩溃,数据恢复需要大量的时间
snn:在nn崩溃的时候,及时顶上去,省去修复nn,让nn重新上线的时间,但是各个data node报告数据状态,进行修复的时间依然需要。
正常情况下:snn负责copy nn的fsp_w_picpath和editlog然后在snn上合并
checkpoint:因为nn是在不断变化的,因此snn要指定合并到那个时间点上。
//官方建议30个以上的node构建hadoop集群
data是否需要工作于raid//因为hdfs已经有replicate的功能,因此再次提供冗余的必要性不大
hadoop-daemon.sh 运行进程
在集群模式中hadoop-daemon.sh start datanode时,需要自动的找每一个datanode节点,然后在每一个datanode上自动启动。
如何找到,或者如何保证命令能够通过主控节点,自动连接到各从节点,并且有权限执行命令。
在主节点上:配置
yarn:
resourcemanager
nodemanager:
yarn-daemon.sh start/stop
实际运行进程:
【nn】 【snn】 【rm】
| | |
———————————
[node1/nn] [nod2/nn] [node3/nn]
在node上启动:datanode进程和nodemanager进程即可
实验模型:
【nn/snn/rm】
|
—————————————–
[node1/nn] [nod2/nn] [node3/nn]
主控节点上运行:namenode,secondarynamenode,resourcemanager三个进程
其他node上启动:datanode进程和nodemanager进程
预备:
1.ntpdate 同步
tzselect,
timedatactl //查看时区设置
timedatectl list-timezones # 列出所有时区
timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 utc 时间
timedatectl set-timezone asia/shanghai # 设置系统时区为上海
cp /usr/share/zoneinfo/asia/shanghai /etc/localtime //最简单的方案
2.hosts通信
172.16.100.67 node1.mt.com node1 master
172.16.100.68 node2.mt.com node2
172.16.100.69 node3.mt.com node3
172.16.100.70 node4.mt.com node4
如果需要通过master节点启动或停止整个集群,需要在master上配置运行服务的用户,如hdfs和yarn能够基于密钥ssh链接
node1:
一、前奏
(1)配置环境
vim /etc/profile.d/java.sh
java_home=/usr
yum install java-1.8.0-openjdk-devel.x86_64
scp /etc/profile.d/java.sh node2:/etc/profile.d/
scp /etc/profile.d/java.sh node3:/etc/profile.d/
scp /etc/profile.d/java.sh node4:/etc/profile.d/
vim /etc/profile.d/hadoop.sh
export hadoop_prefix=/bdapps/hadoop
export path=$path:${hadoop_prefix}/bin:${hadoop_prefix}/sbin
export hadoop_yarn_home=${hadoop_prefix}
export hadoop_mapperd_home=${hadoop_prefix}
export hadoop_common_home=${hadoop_prefix}
export hadoop_hdfs_home=${hadoop_prefix}
. /etc/profile.d/hadoop.sh
scp /etc/profile.d/hadoop.sh node2:/etc/profile.d/
scp /etc/profile.d/hadoop.sh node3:/etc/profile.d/
scp /etc/profile.d/hadoop.sh node4:/etc/profile.d/
(2)修改hosts文件
vim /etc/hosts
172.16.100.67 node1.mt.com node1 master
172.16.100.68 node2.mt.com node2
172.16.100.69 node3.mt.com node3
172.16.100.70 node4.mt.com node4
scp 到 node2,node3,node4
(3)hadoop 密钥登录
useradd hadoop //node2,3,4都有一个hadoop用户
echo hadoop | passwd –stdin hadoop
useradd -g hadoop hadoop //这里都使用一个用户,也可以分别创建yarn和hdfs用户
su – hadoop
ssh-keygen
for i in 2 3 4; do ssh-copy-id -i .ssh/id_rsa.pub hadoop@node${i}; done
验证:
ssh node2 \\\’date\\\’
ssh node3 \\\’date\\\’
ssh node4 \\\’date\\\’
二、安装部署hadoop
(1)解压
mkdir -pv /bdapps/ /data/hadoop/hdfs/{nn,snn,dn} //这里的dn是用不到的,因为主控节点是不存储数据的,可以不创建
chown -r hadoop:hadoop /data/hadoop/hdfs
tar xvf hadoop-2.6.2.tar.gz -c /bdapps/
cd /bdapps/
ln -sv hadoop-2.6.2 hadoop
cd hadoop
mkdir logs
chown g w logs
chown -r hadoop:hadoop ./*
(2)配置文件修改
1.core-site.xml 配置
vim etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultfs</name>
<value>hdfs://master:8020</value>
//hdfs的访问接口,master如果不能解析,用ip地址也可以
<final>true</final>
</property>
</configuration>
//core指向nn
2.yanr
哪个云服务器价格及图片表云计算开发学习笔记:Python3 输入和输出方式Android规范文档云服务器给游戏挂机云服务器怎么上传软件国外云服务器租赁价格高吗阿里云服务器和光纤的区别购买阿里云服务器必须公安备案吗