大数据-基础环境搭建
目录
本章节主要介绍大数据基础环境的配置以及zookeeper和hadoop集群的搭建;三台服务器都使用ContOS7 操作系统,相关安装包下载地址会在本章节最后给出,如获取失败,可以私信哦~
每天进步一小点,加油鸭~
服务器设置
1)、三台机器的IP设置
修改三台服务的ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
ONBOOT=yes
IPADDR=192.168.52.100
NETMASK=255.255.255.0
GATEWAY=192.168.52.1
DNS1=8.8.8.8
将准备好的三台服务器的IP地址分别设置成为如下:
第一台机器IP地址:192.168.52.100
第二台机器IP地址:192.168.52.110
第三台机器IP地址:192.168.52.120
2)、三台机器关闭防火墙
使用root用户登录三台服务器,执行以下命令关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3)、三台机器关闭selinux
使用root用户登录三台服务器,执行以下命令关闭selinux
vim /etc/selinux/config
SELINUX=disabled
4)、三台机器更改主机名
三台机器分别更改主机名
第一台主机名更改为:node01.hlbdx.com
第二台主机名更改为:node02.hlbdx.com
第三台主机名更改为:node03.hlbdx.com
执行以下命令修改主机名
vim /etc/hostname
node01.hlbdx.com
5)、三台机器更改主机名与IP地址映射
三台机器执行以下命令更改主机名与IP地址映射关系
vim /etc/hosts
192.168.52.100 node01.hlbdx.com node01
192.168.52.110 node02.hlbdx.com node02
192.168.52.120 node03.hlbdx.com node03
6)、三台机器同步时间
三台机器执行以下命令定时同步阿里云服务器时间
yum -y install ntpdate
crontab -e
*/1 * * * * /usr/sbin/ntpdate time1.aliyun.com
7)、三台机器添加普通用户
三台linux服务器统一添加普通用户hadoop,并给以sudo权限,用于以后所有的大数据软件的安装
并统一设置普通用户的密码为 hadoop
useradd hadoop
passwd hadoop
三台机器为普通用户添加sudo权限
vi sudo
hadoop ALL=(ALL) ALL
8)、三台定义统一目录
定义三台linux服务器软件压缩包存放目录,以及解压后安装目录,三台机器执行以下命令,创建两个文
件夹,一个用于存放软件压缩包目录,一个用于存放解压后目录。
mkdir -p /hlbdx/soft # 软件压缩包存放目录
mkdir -p /hlbdx/install # 软件解压后存放目录
chown -R hadoop:hadoop /hlbdx # 将文件夹权限更改为hadoop用户
三台机器安装jdk
使用hadoop用户来重新连接三台机器,然后使用hadoop用户来安装jdk软件。
上传压缩包到服务器的 /hlbdx/soft 下面,然后进行解压,配置环境变量即可,三台机器都依次安装即可。
cd /hlbdx/soft/
tar -zxf jdk-8u141-linux-x64.tar.gz -C /hlbdx/install/
sudo vim /etc/profile
#添加以下配置内容,配置jdk环境变量
export JAVA_HOME=/hlbdx/install/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
hadoop用户免密码登录
三台机器在hadoop用户下执行以下命令生成公钥与私钥
ssh-keygen -t rsa
#三台机器在hadoop用户下,执行以下命令将公钥拷贝到node01服务器上面去
ssh-copy-id node01
#node01在hadoop用户下,执行以下命令,将authorized_keys拷贝到node02与node03服务器
cd /home/hadoop/.ssh/
scp authorized_keys node02:$PWD
scp authorized_keys node03:$PWD
三台机器关机重启
三台机器在root用户下执行以下命令,实现关机重启
reoot -h now
zookeeper集群搭建
注意:三台机器一定要保证时钟同步。
1)、下载zookeeeper的压缩包
下载网址http://archive.cloudera.com/cdh5/cdh/5/
本文使用的zookeeper版本为zookeeper-3.4.5-cdh5.14.2.tar.gz
下载完成之后,上传到服务器node01的 /hlbdx/soft 路径下准备进行安装。
2)、解压
在node01执行以下命令解压zookeeper的压缩包到node01服务器的 /hlbdx/install 路径下,然后准备进行安装。
cd /hlbdx/soft
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /hlbdx/install/
3)、修改配置文件
在node01修改配置文件
cd /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/conf
cp zoo_sample.cfg zoo.cfg
mkdir -p /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
vim zoo.cfg
dataDir=/hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
4)、添加myid配置
在第一台机器的 /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/
这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
5)、安装包分发并修改myid的值
安装包分发到其他机器
#第一台机器上面执行以下两个命令
scp -r /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/ node02:/hlbdx/install/
scp -r /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/ node03:/hlbdx/install/
#第二台机器上修改myid的值为2
#直接在第二台机器任意路径执行以下命令
echo 2 > /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
#第三台机器上修改myid的值为3
#直接在第三台机器任意路径执行以下命令
echo 3 > /hlbdx/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
6)、三台机器启动zookeeper服务
三台机器启动zookeeper服务
这个命令三台机器都要执行
/hlbdx/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start
查看启动状态
/hlbdx/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status
hadoop集群搭建
部署规划
服务器IP | node01 | node02 | node03 |
HDFS | NameNode | ||
HDFS | SecondaryNameNode | ||
HDFS | DataNode | DataNode | DataNode |
YARN | ResourceManager | ||
YARN | NodeManager | NodeManager | NodeManager |
历史日志服务 | JobHistoryServer |
1)、上传压缩包并解压
将我们重新编译之后支持snappy压缩的hadoop包上传到第一台服务器并解压,在node01执行以下命令
cd /hlbdx/soft/
tar -zxvf hadoop-2.6.0-cdh5.14.2_after_compile.tar.gz -C ../install/
2)、查看hadoop支持的压缩方式以及本地库
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2
bin/hadoop checknative
如果出现openssl为false,那么所有机器在线安装openssl即可,执行以下命令,虚拟机联网之后就可以在线进行安装了。
yum -y install openssl-devel
3)、修改配置文件
- 修改core-site.xml
在node01执行以下命令
cd /hlbdx/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>/hlbdx/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
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim hdfs-site.xml
<configuration>
<!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 -->
<!-- 集群动态上下线
<property>
<name>dfs.hosts</name>
<value>/hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/accept_host</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/deny_host</value>
</property>
-->
<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:///hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value>
</property>
<!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///hlbdx/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
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/hlbdx/install/jdk1.8.0_141
- 修改mapred-site.xml
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim 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
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim 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执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim slaves
node01
node02
node03
4)、创建文件存放目录
在node01执行以下命令
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name
mkdir -p /hlbdx/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits
5)、安装包的分发
在node01执行以下命令
cd /hlbdx/install/
scp -r hadoop-2.6.0-cdh5.14.2/ node02:$PWD
scp -r hadoop-2.6.0-cdh5.14.2/ node03:$PWD
6)、配置hadoop的环境变量
三台机器都要进行配置hadoop的环境变量
分别在node01、node02、node03上执行以下命令
vim /etc/profile
export HADOOP_HOME=/hlbdx/install/hadoop-2.6.0-cdh5.14.2
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#配置完成之后生效
source /etc/profile
7)、集群启动
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群。
注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的。
bin/hdfs namenode -format或者bin/hadoop namenode –format
单节点逐一启动
在主节点上使用以下命令启动 HDFS NameNode:
hadoop-daemon.sh start namenode
在每个从节点上使用以下命令启动 HDFS DataNode:
hadoop-daemon.sh start datanode
在主节点上使用以下命令启动 YARN ResourceManager:
yarn-daemon.sh start resourcemanager
在每个从节点上使用以下命令启动 YARN nodemanager:
yarn-daemon.sh start nodemanager
以上脚本位于$HADOOP_PREFIX/sbin/目录下。如果想要停止某个节点上某个角色,只需要把命令中的start 改为stop 即可。
主节点启动集群
如果配置了 etc/hadoop/slaves 和 ssh 免密登录,在主节点(这里是node01节点)所设定的机器上执行以下命令可以启动hadoop集群的相关进程。
在node01执行以下命令
cd /hlbdx/install/hadoop-2.6.0-cdh5.14.2/
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
停止集群:
sbin/stop-dfs.sh
sbin/stop-yarn.sh
8)、浏览器查看启动页面
hdfs集群访问地址 http://node01:50070/dfshealth.html#tab-overview
yarn集群访问地址 http://node01:8088/cluster
jobhistory访问地址 http://node01:19888/jobhistory
一键查看进程脚本制作
在node01服务器的/home/hadoop/bin目录下创建文件xcall
[hadoop@node01 bin]$ cd ~/bin/
[hadoop@node01 bin]$ vim xcall
#添加以下内容
#!/bin/bash
params=$@
#i=201
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
echo ============= node0$i $params =============
ssh node0$i "source /etc/profile;$params"
done
然后对该脚本进行授权并进行分发
chmod 777 /home/hadoop/bin/xcall
xcall jps
xsync /home/hadoop/bin/xcall
一键启停hadoop集群脚本制作
在node01上的/home/hadoop/bin目录下创建脚本
[hadoop@node01 bin]$ cd /home/hadoop/bin/
[hadoop@node01 bin]$ vim hadoop.sh
#!/bin/bash
case $1 in
"start" ){
source /etc/profile;
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/start-dfs.sh
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/start-yarn.sh
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/mr-jobhistory-daemon.sh start historyserver
};;
"stop"){
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/stop-dfs.sh
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/stop-yarn.sh
/hlbdx/install/hadoop-2.6.0-cdh5.14.2/sbin/mr-jobhistory-daemon.sh stop historyserver
};;
esac
给脚本进行授权
[hadoop@node01 bin]$ chmod 777 hadoop.sh
[hadoop@node01 bin]$ ./hadoop.sh start # 启动hadoop集群
[hadoop@node01 bin]$ ./hadoop.sh stop # 停止hadoop集群
至此,大数据三节点基础环境准备完毕!
链接:https://pan.baidu.com/s/1yJXYplVRGoVyKqbVe4is2Q
提取码:gk21
此博文仅供学习参考,如有错误欢迎指正。下一篇《大数据-HDFS(一)》
希望对大数据相关技术感兴趣的友友们关注一下,大家可以一起交流学习哦~