查看: 126|回复: 0

[原创] CentOS7-Minimal安装ApacheHadoop集群

[复制链接]
论坛徽章:
0
发表于 2019-5-31 13:25 | 显示全部楼层 |阅读模式

tm Oracle Hadoop 集群 操作系统

本帖最后由 天翊 于 2019-5-31 13:35 编辑

写在前面的话:

网上能找到的例子都是大同小异,都是用的centos6系统下用图形界面弄的。

但是实际情况下用户的环境都是centos7,而且一般情况下也没有图形界面。为了更好的理解课程中讲述的知识,所以使用centos7的minimal环境尝试搭建Hadoop集群。

由于centos6和7在命令上还是有很大区别的,所以在写这个文档过程中也和公开课老师讲解的内容命令有很多修改。

除了操作系统不同外,虚拟机也使用了最常见的VMware虚拟机,所以虚拟机的设置和操作也和老师讲的有很大的不同。


一、master主机准备

1、虚拟机环境:

1)虚拟机使用VMware Workstation。

2)虚拟机操作系统使用CentOS7.6 minimal版本安装镜像。

3)虚拟机硬盘大小40G,6G内存,2核CPU。

4)集群环境主机名使用master、slave1、slave2 这3台主机,分别对应IP地址为:192.168.2.131/132/133

5)虚拟机安装采用master主机安装完毕后克隆2台slave机器的方式安装。


2、虚拟机操作系统安装:

2.1、安装操作系统设置页面

clipboard.png

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/f56eb6e466fc4fb0ae66961dad976d6e/clipboard.png

2.2、网络配置界面

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/f1b766ff88ff462e8dfc6ab253570cd0/clipboard.png

01.png
2.3、安装后界面

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/c22d510417784a15895b02fbe69f01a9/clipboard.png

02.png
2.4、安装后关机,设置共享文件夹

03.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/7534555edd2a456c8094ce102406bcbe/clipboard.png

3、设置操作系统

设置操作系统包括:

1)关闭系统防火墙与SELinux

在CentOS7中,设置防火墙和SELINUX命令发生变化。

关闭并禁用系统防火墙命令:

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/8ddb336846c64498b1b79babf7f8e6c8/clipboard.png

关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

该命令只能重启后生效,所以还需要执行下面的命令使其立即生效:

setenforce 0

04.png

2)关闭操作系统THP透明大页服务

vi /etc/rc.local

添加:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

注意:rc.local默认是不可执行状态,需要授权给予其可执行权限。

chmod +x /etc/rc.local


3)配置交换分区Swap,目标是尽量不使用交换分区

vi /etc/sysctl.conf

添加一行:

vm.swappiness=0


修改后可执行sysctl -p使其立即生效。


4)配置NTP

Hadoop集群需要使用NTP同步时钟

默认的minimal形式安装的系统是没有NTP服务的,所以需要安装此服务。

首先将yum源修改为国内163的源,这样下载比较快:

05.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/542ef0dac9b7499996e0b85b3ff66c9d/clipboard.png

安装ntp服务:

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/64300e1158194ed18354d99ebbd9fe23/clipboard.png

06.png
设置NTP服务器

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/fac65874fc7747eeac8bcb10f4f12bc1/clipboard.png

网址的获取来自:http://www.pool.ntp.org/zone/cn

该网站包含全球的标准时间同步服务,也包括对中国时间的同步

07.png
启动NTP服务,并设置开机启动

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/d2e99cb2ea0745f7824e9d4678f83de5/clipboard.png


08.png
4、使用VMware共享文件夹

1)为了使用共享文件夹,首先需要安装VMware Tools,在虚拟机的“虚拟机”菜单中点击安装VMware Tools工具。虚拟机会将工具以cdrom形式挂载到操作系统中。

2)创建一个文件夹,挂载光驱,将其拷贝出来

mkdir /mnt/cdrom

mkdir /mnt/vcdrom


mount /dev/sr0 /mnt/cdrom

cp -r * /mnt/vcdrom/

3)进入/mnt/vcdrom后,将VMwareTools压缩包解压

tar -xzvf VMwareTools-10.2.0-7259539.tar.gz

进入解压后的文件夹

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/71827563a7d846e3bc30a2874f2a66c1/clipboard.png

09.png
因为该安装文件为perl的,所以需要安装相关环境:

yum -y install perl gcc make kernel-headers kernel-devel

10.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/8e2b37b2c2424347a9255497b8613ccd/clipboard.png



注意:如果出现下面的内容则需要退出重来

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/8bbe74b8a1a84dc7ad9ccd95505849d0/clipboard.png

11.png
指定版本重新安装 yum install "kernel-devel-uname-r == $(uname -r)"

出现下面内容说明安装成功:

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/fbfed0e1c999462bb71ecd2dd84f8a68/clipboard.png

12.png
进入/mnt可以看到新的文件夹hgfs

如果该文件夹下无内容,请参考2.4节重新设置共享文件夹即可。



5、安装Oracle JDK1.8

根据apache给到的信息,Hadoop2系列支持OpenJDK1.7或1.8 Oracle的JDK1.7和1.8也可以

13.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/7ee1f028cdbd438caa6b0b1883a865cc/clipboard.png

安装JDK

14.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/b61a70b9450e424db4034255fea5dddd/clipboard.png

设置环境变量:

15.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/beddfb792f254971b5dc353cd0f21879/clipboard.png

设置的内容为:
16.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/0acf2183b0cb454ba27b4e1d55da9066/clipboard.png

6、设置HOSTS

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/b7c0a0c722644623a4db18b31004e284/clipboard.png

17.png
7、创建dataguru用户

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/91e088ea305b44d790e26335e7100d31/clipboard.png

添加:dataguru ALL=NOPASSWD:ALL

18.png
8、解压Hadoop安装包

cd /opt

tar -xzvf hadoop-2.9.2.tar.gz

创建软链接

ln -s hadoop-2.9.2 hadoop


9、配置环境变量

由于我们已经在全局环境变量中设置了Java_HOME所以,这里不需要修改hadoop-env.sh脚本了

注意:此处JAVA_HOME必须写路径,否则会起不来hdfs

source ~/.bash_profile

hadoop version

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/f2c39c34788b439ebe287a7823278f73/clipboard.png

19.png
10、配置yarn-env.sh

vi /opt/hadoop/etc/hadoop/yarn-env.sh

修改下面的内容

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 下添加:export JAVA_HOME=${JAVA_HOME}



11、配置core-site.xml

vi /opt/hadoop/etc/hadoop/core-site.xml

在<configuration>和</configuration>之间添加如下内容:

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hadoopdata/tmp</value>

</property>


12、配置hdfs-site.xml


vi /opt/hadoop/etc/hadoop/hdfs-site.xml

在<configuration>和</configuration>之间添加如下内容:

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>slave1:9001</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>/opt/hadoopdata/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/opt/hadoopdata/hdfs/data</value>

</property>

<property>

<name>dfs.namenode.checkpoint.dir</name>

<value>/opt/hadoopdata/hdfs/snn</value>

</property>

<property>

<name>dfs.namenode.checkpoint.period</name>

<value>3600</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>


建立相应目录:

mkdir -p /opt/hadoopdata/hdfs/name

mkdir -p /opt/hadoopdata/hdfs/data

mkdir -p /opt/hadoopdata/hdfs/snn


13、配置yarn-site.xml

vi /opt/hadoop/etc/hadoop/yarn-site.xml

在<configuration>和</configuration>之间添加如下内容:

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>


14、配置mapred-site.xml

cd /opt/hadoop/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

在<configuration>和</configuration>之间添加如下内容:

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>


15、配置Slaves

vi slaves

修改为如下内容:

master

slave1

slave2


二、Slave主机准备

1、使用Vmware克隆功能克隆出2台虚拟主机。

20.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/30f11ab616f441f0b7e429f1bc30bdab/clipboard.png

2、启动Hadoop2,修改IP地址、主机名称

21.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/c10e15b9c7ff445b93903193148dd1b1/clipboard.png

使用命令重启网卡,后可以使用ssh客户端连接:

22.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/6a117034fdee4d82af102e768ab765e6/clipboard.png

hostnamectl --static set-hostname slave1

修改hostname

reboot后可以看到配置完成了

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/6b6b571b082444c1922b6656cbaf8aeb/clipboard.png

23.png
3、同样方式配置slave2

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/013d4df7586c4e6da565778be56cea9b/clipboard.png

24.png
三、3台主机SSH免密登陆

步骤:生成密钥对、发送公钥、发送authorized_keys

1、在3台主机的dataguru账户下执行:

ssh-keygen -t rsa

生成SSh密钥对,生成后可以 cd ~/.ssh 看到相应文件

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/5643ccda326d48eab13b641727aca0e0/clipboard.png

25.png
2、在master上执行ssh-copy-id master 发送公钥给master

26.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/dbe403c3e5364fdb8ffd2e0c3270400d/clipboard.png

3、在其他2台主机上也执行此命令

27.png
执行结束后在master节点上再次执行cat authorized_keys时可以看到3台主机的公钥信息

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/45d809a6f81f4058ad2c1ed00cab1769/clipboard.png

为了防止每次SSH登录都要输入密码,在每台机器的SSH配置文件中修改默认选项如下:

sudo vi /etc/ssh/ssh_config

28.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/ff6aef7db5004cea814a567fdff9dd52/clipboard.png

master主机及2台slave机器全部设置完毕。

4、将authorized_keys文件同步至slave2和slave1

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/8e2bce73af1b4aa8993e67745ceb414e/clipboard.png

29.png
四、启动Hadoop

1、格式化HDFS

第一次运行hadoop需要执行格式化HDFS命令

30.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/f7278c611d3848d6bbf851bef92148c8/clipboard.png

2、启动HDFS

start-dfs.sh


五、启动Yarn

start-yarn.sh

31.png
C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/d3f680e9ccb44eb4a4da62a4645749d5/clipboard.png

五、启动History-server

C:/Users/%E5%A7%9C%E6%98%8A/AppData/Local/YNote/data/adamed@163.com/331eab1862d749bc950c408324b32cc2/clipboard.png

32.png







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-6-24 21:12 , Processed in 0.187515 second(s), 32 queries .

关闭

扫一扫加入
本版微信群