大数据第一课-Hadoop全分布式集群搭建
一、前序
在开始全分布式集群搭建之前,首先应该安装好三台虚拟机。。。。如果电脑比较卡,建议多加8G内存条。
我这里是Centos7版本的。
hadoop编译后的安装包:
链接:https://pan.baidu.com/s/1xythD1ESNBlPfAW9Pi_3Cw
提取码:7lct
二、大数据安装前期准备
1、三台机器在root用户下关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2、三台机器执行以下命令关闭selinux
打开文件
vi /etc/selinux/config
修改文件(修改下一行)
SELINUX=disabled
3、三台电脑修改电脑主机名
vi /etc/hostname
第一台机器更改内容:node01
第二台机器更改内容:node02
第三台机器更改内容:node03
4、三台机器做主机名与IP地址的映射
vi /etc/hosts
然后增加以下内容
192.168.52.100 node01 192.168.52.110 node02 192.168.52.120 node03
5、重启三台虚拟机
reboot -h now
6、三台电脑添加普通用户并给普通用户添加sudo权限
在root用户下执行:第一行添加用户,第二行设置密码
useradd hadoop passwd hadoop
添加sudo权限
打开文件
visudo
给hadoop用户sudo权限
hadoop ALL=(ALL) ALL
7、三台机器同一安装目录
mkdir -p /kkb/soft # 软件压缩包存放目录 mkdir -p /kkb/install # 软件解压后存放目录 chown -R hadoop:hadoop /kkb # 将文件夹权限更改为hadoop用户
然后, 三台机器通过 su hadoop命令来切换到hadoop用户
8、设置免密登陆
第一步:三台机器在hadoop用户下执行以下命令生成公钥与私钥
三台机器在hadoop用户下执行以下命令,然后生成公钥与私钥
ssh-keygen -t rsa
执行上述命令之后,按三次Enter键即可生成了,生成后会发现有 .ssh目录,用 ll -a 命令可以查看
第二步:三台机器拷贝公钥到node01服务器上面去
三台机器在hadoop用户下,执行以下命令将公钥拷贝到node01服务器上面去
ssh-copy-id node01
第三步:node01服务器将公钥拷贝给node02与node03
node01在hadoop用户下,执行以下命令,将authorized_keys拷贝到node02与node03服务器
cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD scp authorized_keys node03:$PWD
然后关虚拟机重启。
三、JDK安装
使用hadoop用户来重新连接三台机器,然后使用hadoop用户来安装jdk软件
上传压缩包到第一台服务器的/kkb/soft下面,然后进行解压,配置环境变量即可,三台机器都依次安装即可
cd /kkb/soft/ tar -zxf jdk-8u141-linux-x64.tar.gz -C /kkb/install/ sudo vim /etc/profile
#添加以下配置内容,配置jdk环境变量 export JAVA_HOME=/kkb/install/jdk1.8.0_141 export PATH=:$JAVA_HOME/bin:$PATH
然后 执行 source /etc/profile 命令让修改生效
四、Hadoop集群安装
1、安装环境服务部署规划
服务器IP |
node01 |
node02 |
node03 |
HDFS |
NameNode |
|
|
HDFS |
SecondaryNameNode |
|
|
HDFS |
DataNode |
DataNode |
DataNode |
YARN |
ResourceManager |
|
|
YARN |
NodeManager |
NodeManager |
NodeManager |
历史日志服务器 |
JobHistoryServer |
|
|
2、上传安装包并解压(这个安装包是编译后的)
cd /kkb/soft/ tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /kkb/install
3、查看hadoop支持的压缩方式以及本地库
第一台机器执行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2 bin/hadoop checknative
如果出现openssl为false,那么所有机器在线安装openssl即可,执行以下命令,虚拟机联网之后就可以在线进行安装了
sudo yum -y install openssl-devel
4、修改配置文件
core-site.xml hdfs-site.xml hadoop-env.sh mapred-site.xml yarn-site.xml slaves
一、修改core-site.xml
第一台机器执行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop vim core-site.xml
然后添加以下内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node01:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas</value> </property> <!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --> <property> <name>fs.trash.interval</name> <value>10080</value> </property> </configuration>
二、修改hdfs-site.xml
<configuration> <!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 -->
<property> <name>dfs.namenode.secondary.http-address</name> <value>node01:50090</value> </property> <property> <name>dfs.namenode.http-address</name> <value>node01:50070</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value> </property> <!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <property> <name>dfs.datanode.data.dir</name> <value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value> </property> <property> <name>dfs.namenode.edits.dir</name> <value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> </configuration>
三、修改hadoop-env.sh
export JAVA_HOME=/kkb/install/jdk1.8.0_141
四、修改mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>node01:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node01:19888</value> </property> </configuration>
五、修改yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>node01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
六、修改slaves
node01
node02
node03
5、添加目录(这些目录都是在配置文件 hdfs-site.xml 中涉及到的)
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits
6、分发配置文件
在node01上执行以下命令
cd /kkb/install/ scp -r hadoop-2.6.0-cdh5.14.2/ node02:$PWD scp -r hadoop-2.6.0-cdh5.14.2/ node03:$PWD
7、配置hadoop环境变量
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
sudo vim /etc/profile
然后添加一下内容
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2 export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效 source /etc/profile
8、格式化集群
注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的。
格式化操作只有在首次启动的时候需要,以后再也不需要了
hdfs namenode -format 或者 hadoop namenode –format
9、集群启动
依次执行
start-dfs.sh start-yarn.sh mr-jobhistory-daemon.sh start historyserver
10、关闭集群
依次执行
stop-dfs.sh stop-yarn.sh mr-jobhistory-daemon.sh stop historyserver
11、课外知识
本机hosts文件所在地址,这个地址可以配置连接虚拟机的ip
C:\Windows\System32\drivers\etc
多次格式化可能导致 datanode和namenode的clusterID不一样,导致datanode不能启动,可以修改datanode的ID
使其和namenode的ID一样
集群中 namenode clusterID 所在的位置
/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits/current/VERSION
集群中 datanode clusterID 所在的位置
/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas/current/VERSION
12 启动后的web界面
hdfs集群访问地址
http://192.168.52.100:50070/dfshealth.html#tab-overview
yarn集群访问地址
http://192.168.52.100:8088/cluster
jobhistory访问地址:
http://192.168.52.100:19888/jobhistory