1.集群安装
操作系统准备
- 安装RHEL/CentOS/Hanwate7操作系统
- 插入操作系统光盘并且挂载
# mount /dev/cdrom /mnt/cdrom
- 安装操作系统的核心软件
# cd /mnt/cdrom/Packges/base
#rpm -ivh make*openssl-1*
- 卸载光盘
# umount/mnt/cdrom
rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由 RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。
常用命令组合:
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl: 列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];
-e:删除包
准备Hadoop光盘套件
- 光驱中替换Hanwate HDP套件的光盘,并挂载
# mount /dev/cdrom /mnt/cdrom
- 配置Hadoop套件的安装仓库/etc/yum.repos.d/hdp.repo
[HDP]
name=HanWate-extras-1.0 #方括号里面的是软件源的名称,将被yum取得并识别
baseurl=file:///mnt/cdrom/HanWate-etras-1.0 #这一行的意思是指定一个baseurl(源的镜像服务器地址)
enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7 #定义用于校验的gpg密钥
安装LSB基础包
- 安装Redhat-lsb
# yum install -y redhat-lsb
目 前 Linux 的发行版非常繁多,为了促进 Linux 不同发行版间的兼容性,LSB(Linux Standards Base)开发了一系列标准,使各种软件可以很好地在兼容 LSB 标准的系统上运行,从而可以帮助软件供应商更好地在 Linux 系统上开发产品,或将已有的产品移植到 Linux 系统上。
分配主机角色
主机 | 地址 | 组件 |
---|---|---|
master1 | 191.168.x.1 | NameNode,JobHistoryserver |
master2 | 191.168.x.2 | ResourceManager,SecondaryNameNode |
slave1 | 191.168.x.3 | Datanode,NodeManager |
slave2 | 191.168.x.4 | Datanode,NodeManager |
slave3 | 191.168.x.5 | Datanode,NodeManager |
修改主机地址
- 每台主机各自修改主机IP地址和主机名。
- 修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-xxx
BOOTPROTO=none
IPADDR=191.168.x.1
NETMASK=255.255.0.0
xxx指的是网卡名字:
1、前2个字符的含义
en 以太网 Ethernet
wl 无线局域网 WLAN
ww 无线广域网 WWAN
2、第3个字符根据设备类型选择
o on-board device index number
s hotplug slot index number
x MAC address
ps PCI geographical location
ps USB port number chain
- 主机名配置文件 : /etc/hostname
配置主机名映射
- 在所有机器上修改/etc/hosts:
191.168.x.1 master1
191.168.x.2 master2
191.168.x.3 slave1
191.168.x.3 slave1
191.168.x.3 slave1
应用配置文件
- 所有主机同步/etc/hosts
- 重启服务器
- 检查主机名和其他节点是否可以访问
# for host in master1 master2 slave1 slave2 slave3
do
ping -c1 $host
done
hadoop基础依赖软件安装
- 进入HDP安装目录,安装ranger包
# rpm -ivh ranger/ranger*-yarn-* ranger/ranger*-hdfs-*
- 安装hdp-select
# rpm -ivh hdp-select/*.rpm
- 安装zookeeper
# rpm -ivh zookeeper/*.rpm
- 安装spark shuffle
# rpm -ivh spark/spark*-yarn-shuffle*
# rpm -ivh spark2/spark*-yarn-shuffle*
hadoop核心包安装
- 安装hadoop 2.7.3
# rpm -ivh hadoop/hadoop_2_6_1_0_129-2.7.3.2.6.1.0-129.x86_64.rpm
- 安装依赖库
# rpm -ivh bigtop-jsvc/*.rpm
# yum install -y libtirpc-devel
# rpm -ivh hadoop/hadoop_2_6_1_0_129-hdfs-2.7.3.2.6.1.0-129.x86_64.rpm
安装Namenode
- 以下命令在master1节点操作
# rpm -ivh hadoop/hadoop_2_6_1_0_129-hdfs-namenode-2.7.3.2.6.1.0-129.x86_64.rpm
安装SecondaryNamenode
- 在master2执行以下操作
# rpm -ivh hadoop/hadoop_2_6_1_0_129-hdfs-secondarynamenode-2.7.3.2.6.1.0-129.x86_64.rpm
安装Datanade
- 在所有节点执行以下操作
# rpm -ivh hadoop/hadoop_2_6_1_0_129-hdfs-dataname*
配置集群文件
- 进入/etc/hadoop/conf/
- 配置集群core-site.xml
name:fs.defaultFS
value:hdfs://master1:8020
作用:HDFS访问入口
#这个要写成xml文档,格式有模板
- 配置集群hdfs-site.xml
1.name:dfs.namenode.name.dir
value:file///disk1/dfs/nn,file:///disk2/dfs/nn
作用:namenode数据的存放位置,至少两个磁盘目录
2.name:dfs.namenode.data.dir
value:file///disk1/dfs/dn,file:///disk2/dfs/dn
作用:datanode数据块存放位置,至少一个
准备数据目录
- 分别创建 /disk1和disk2 目录
# mkdir /disk1 /disk2
- 挂在第二块硬盘到/disk2
# moount /dev/sdb1 /disk2
- 保存到/etc/fstab,实现开机自动挂载
/dev/sdb1 /disk2 ext4 fefaults 0 2
第二块磁盘需要分一个区,然后格式化ext4后挂载:
fdisk /dev/sdb #分区,生成sdb1
mkfs.ext4 /dev/sdb1 #格式化分区
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。
当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
- 创建子目录
# mkdir -p /disk{1,2}/dfs/{dn,nn}
- 修改权限
# chown -R hdfs.hadoop /disk[12] #用户为hdfs,组为hadoop
初始化hdfs文件系统
- 在master1上操作
# sudo -u hdfs hdfs namenode -formate
启动服务
- 首先更改/var下面的run目录权限
# chown hdfs.hadoop /var/run
- 启动namenode服务,在master1上操作
# ln -s /usr/hdp/2.6.1.0-129/hadoop-hdfs/usr/lib/systemd/system/hadoop-hdfs-namenode.server /usr/lib/systemd/system/
# systemctl start hadoop-hdfs-namenode
- 启动secondarynamenode服务,在master2操作
# ln -s /usr/hdp/2.6.1.0-129/hadoop-hdfs/usr/lib/systemd/system/hadoop-hdfs-secondarynamenode.server /usr/lib/systemd/system/
# systemctl start hadoop-hdfs-secondarynamenode
- 启动datanode服务,所有节点操作
# ln -s /usr/hdp/2.6.1.0-129/hadoop-hdfs/usr/lib/systemd/system/hadoop-hdfs-datanode.server /usr/lib/systemd/system/
# systemctl start hadoop-hdfs-datanode
2.用到的知识