Hadoop分布式集群搭建

本文以研究和测试功能为主,部署生产环境要参考软件实际版本以及对应部署方法。
本文涉及软件:vmware14、jdk8、hadoop2、centos6.8

1.虚拟机配置初始配置
1.1:打开虚拟机安装centos6.8,本人分配2G内存、20G硬盘、创建hadoop01用户(自行百度创建Linux用户相关命令)
1.2:安装完成以root身份进入系统vi /etc/inittab将id:5:initdefault改为3 启动。默认为命令行(不同发行版本Linux级别文件目录不同)
1.3:配置yum源
yum install -y wget
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
yum update -y
1.4:配置sudo
yum install sudo -y
visudo 后添加 hadoop01 ALL=(ALL) NOPASSWD:ALL
找到 secure_path 这一行之后添加:/usr/local/bin:/usr/local/sbin
1.5:关闭防火墙(centos不同版本命令不同 6通关service 7通过systemctl )
chkconfig iptables off
/etc/init.d/iptables stop
1.6:下载解压java、hadoop 配置环境变量(下面的环境变量是本人配置,按需修改)
vi /etc/profile
export JAVA_HOME=/usr/local/src/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_HOME=/home/xxx/software/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2.虚拟机网络配置(此处选择NAT模式):
网桥、NAT、本机模式具体区别:https://blog.csdn.net/dif90304/article/details/101758657?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2
2.1:先将虚拟机网络适配器设置为NAT模式

2.2:配置网络模式,规划一个局域网网段
本人设置192.168.1.0 255.255.255.0 作为虚拟机配置网段,192.168.1.1~192.168.1.99 作为虚拟机静态ip
192.168.1.100~192.168.1.251 作为DHCP动态ip(本人192.168.1.252 被占用,所以跳过)
192.168.1.253作为宿主机虚拟网卡(VMware Network Adapter VMnet8)的ip
192.168.1.254作为网关ip
hadoop等节点从虚拟机静态ip中分配

 

 

2.3.配置虚拟机网卡
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
vi /etc/sysconfig/network-scripts/ifcfg-eth0

/etc/init.d/network restart
vi /etc/sysconfig/network 修改主机名称 hadoop01
vi /etc/hosts 添加 192.168.1.1 hadoop01(可以将hadoop2...也添加上)之后主机和虚拟机相互ping通,并且虚拟机可以访问外网
3.克隆虚拟机配置
3.1:网络配置
vi /etc/udev/rules.d/70-persistent-net.rules 删除原来的eht0 将下面的eth1改为eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改HWADDR 和 IPADDR
vi /etc/sysconfig/network 修改主机名
vi /etc/hosts 添加本机ip 和 主机名
3.2:日期同步
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum install ntpdate
ntpdate -u ntp.api.bz
3.3:各个机器之间免密登陆(本机也要复制)
ssh-keygen -t rsa
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
*:在hadoop每个机器都执行ssh-copy-id拷贝公钥(可以通过脚本)该命令只是针对一个用户
*:scp -r [本地目录] [远程目录] *目录都可以用 远程用户名@计算机名称:路径
*:rsync -rvl [本地目录] [远程目录] *目录都可以用 远程用户名@计算机名称:路径

4.Hadoop配置完全分布式模式
进入到hadoop安装目录
cd ./hadoop/etc/hadoop/
vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_75
vi hadoop-env.sh
# 添加JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.7.0_75
vi core-site.xml
<!-- 配置NameNode服务器 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
vi hdfs-site.xml
<!-- 配置分片数 -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
----------------------------------------------- 配置yarn --------------------------------------
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 配置mapreduce管理程序yarn -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!-- 历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
</configuration>
vi yarn-site.xml
#启动历史服务器
mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh stop historyserver
vi yarn-site.xml
<!-- yarn具体配置 -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vi slaves
# 将hadoop用到的所有机器名称全部写入(包括:NameNode、DataNode、SecondaryNameNode、NodeManager、RescourceManager等)
slave1
slave2
slave3

# 将所有配置文件同步到其他机器上(如果其他机器没有hadoop目录,则先用scp拷贝其他机器)
rsync -rvl ./hadoop/etc/hadoop/ [远程目录] *目录都可以用 远程用户名@计算机名称:路径
* 一般都是通过编写shell脚本一键分发

5. 启动hadoop
# 格式化NameNode
hadoop namenode format
# 启动hdfs
start-dfs.sh
# 启动yarn
start-yarn.sh
*:hadoop官方建议使用start-all.sh

6.配置时间同步服务
日期同步主服务器
# 查询ntp是否存在 不存在要安装
rpm -qa|grep ntp
vi /etc/ntp.conf
# 前面注解打开
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 从外部服务器获取时间注释掉
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 节点丢失网络链接 本地时间作为服务器时间
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# 让硬件时间与系统时间一起同步
vi /etc/sysconfig/ntpd
添加 SYNC_HWCLOCK=yes
service ntpd start
# 设置开机启动
chkconfig ntpd on
其它机器(从主服务器上读取时间)
crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop01

*7.重新格式化
删除core-site.xml中hadoop.tmp.dir指定目录
删除logs文件夹
hadoop namenode -format

* 0.安装编译环境
yum install glibc-headers -y
yum install gcc-c++ -y
yum install make -y
yum install cmake -y
yum install openssl-devel -y
yum install ncurses-devel -y
安装maven或者gradle或者ant

 

posted @ 2020-10-09 00:14  摩诃、  阅读(458)  评论(0编辑  收藏  举报