数据集群软件安装

  • 1 安装Centos系统
    • 1.1安装VMware12虚拟机
    • 1.2安装Centos7.6操作系统
  • 2.配置Centos操作系统
    • 2.1关闭防火墙和Selinux
    • 2.2配置主机名和IP地址
      • 1、 配置Linux网卡
      • 2、 配置vmare网卡
      • 3、设置主机名
      • 4、设置域名解析
    • 2.3 配置yum
  • 3 安装配置JDK 和Hadoop
    • 3.1 创建用户hduser和组hadoop
    • 3.2 安装配置JDK
    • 3.3 安装和配置Hadoop
  • 4 设置SSH免密码登陆到本机
  • 5 配置Hadoop集群模式
    • 5.1 配置hosts映射文件
    • 5.2 克隆2台虚拟机并修改主机名和ip地址
    • 5.3 设置ssh免密码登陆到其它主机
    • 5.4 修改配置文件并复制到其他主机
    • 5.5 启动监控Hadoop

1 安装Centos系统

软件列表如下:

WMware Workstation 12
CentOS-7-x86_64-DVD-1810.iso
jdk-8u181-linux-x64.tar.gz
hadoop-2.7.3.tar.gz
hbase-1.2.7-bin.tar.gz
apache-hive-2.1.1-bin.tar.gz
kafka_2.11-1.1.0.tgz
spark-2.3.2-bin-hadoop2.7.tgz
apache-flume-1.8.0-bin.tar.gz
注:由于需要模拟在虚拟机上模拟3台主机,要求客户机内存至少8g以上,推荐16g内存。
大数据集群软件安装手册1-编程之家

1.1安装VMware12虚拟机

下载虚拟机安装包,不要安装在c盘,一直默认安装即可。其中下面的步骤中,选项可以去掉
大数据集群软件安装手册1-编程之家

1.2安装Centos7.6操作系统

  1. 新建虚拟机, 选择Workstation12.x,next,选择稍后安装操作系统,next,选择Linux系统,CentOS 64位
    大数据集群软件安装手册1-编程之家
    大数据集群软件安装手册1-编程之家
  2. 我是8个G内存,所以zm1为3G,zm2和zm3都为1G,内存可以后面修改,网络类型选择NAT模式,其他推荐
    大数据集群软件安装手册1-编程之家
  3. 选择创建新虚拟磁盘,大小为20G,检查没啥问题就可以点击完成
    大数据集群软件安装手册1-编程之家
  4. 接下来再安装的操作系统中加入IOS映像文件,点击编辑虚拟机设置,再CD/DVD中使用自定义的映射文件(如果要修改内存就点击内存进行修改,内存为4的倍数)
    大数据集群软件安装手册1-编程之家
  5. 点击确认后就可以开启虚拟机进行安装Linux系统了
    用键盘的上下键,选择第1个install centos,然后按回车,进入后选择语言为简体中文,软件选择GNOME桌面,
    大数据集群软件安装手册1-编程之家
    大数据集群软件安装手册1-编程之家
  6. 点击完成,系统会检测软件的依赖关系,等待即可。
    “安装位置”,有叹号,点击一下,不用修改,然后点”完成”。(如需要自己设置分区,那么请谨慎设置/, /home,/boot和swap)。 点击开始安装。
    大数据集群软件安装手册1-编程之家
  7. 下面为管理员root创建密码123456,点击2次完成
  8. 点击创建用户,创建用户名test,密码123456,并将此用户作为管理员,点击2次完成。
  9. 许可证有红色感叹号,点击勾选 我同意许可协议,点击完成。系统会重启,选择“未列出”,用户名输入”root”,密码选“123456” 然后进入配置页面,全部点击前进(下一步)即可。

2.配置Centos操作系统

2.1关闭防火墙和Selinux

CentOS7版本后防火墙默认使用firewall,不再用iptables

关闭防火墙

#systemctl stop firewalld.service #关闭防火墙
#systemctl disable firewalld.service #禁止firewall开机启动  

关闭selinux

setenforce 0
vim /etc/selinux/config 修改SELINUX=disabled,如果不会 vim,用 gedit

另外最后linux安装完后,屏幕经常会自动锁定,可以进入如下操作:
左上角点击应用程序=>选择系统工具=>选择设置=>选择隐私=>设置锁屏状态为关闭。
大数据集群软件安装手册1-编程之家

2.2配置主机名和IP地址

1、 配置Linux网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEEROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
#删除UUID,防止克隆时出现两台机器的唯一标识是一样的
DEVICE=ens33
ONBOOT=yes
#ip
IPADDR=172.16.100.101
#网关
GATEWAY=172.16.100.2

重启网络服务
$ systemctl restart network.service
查看IP地址
$ ifconfig	 #发现有172.16.100.101

大数据集群软件安装手册1-编程之家

2、 配置vmare网卡

大数据集群软件安装手册1-编程之家

3、设置主机名

#hostnamectl set-hostname zm1 
注:zm1可自行修改,systemd提供的hostnamectl命令修改名字,可以临时和永久生效, 修改的是/etc/hostname文件

4、设置域名解析

#vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

2.3 配置yum

配置yum仓库的目的是以后安装软件从本地光盘中查找。也可以设置地址为阿里云。

#cd /etc/yum.repos.d/
#cp CentOS-Sources.repo yum.repo 
#mv CentOS-Base.repo CentOS-Base.repo.bak #这句要加上,否则报错,会影响yum list运行。
#vim yum.repo

[rhel7]
name=source iso
baseurl=file:///run/media/root/‘CentOS 7 x86_64’
enabled=1
gpgcheck=0

补充:#yum clean all清理缓存
#yum list 列出安装源的所有安装包
#yum install xxx 安装xxx软件等
大数据集群软件安装手册1-编程之家

3 安装配置JDK 和Hadoop

3.1 创建用户hduser和组hadoop

#groupadd hadoop 
#useradd –g hadoop hduser 
#passwd hduser #修改密码为123456

下面为hduser增加sudo权限

#chmod u+w /etc/sudoers	//首先修改文件的读权限为当前用户可写权限
#vim /etc/sudoers   //然后为hduse添加sudo权限hduser  ALL=(ALL)       ALL			//添加这一行内容
#chmod u-w /etc/sudoers	 //把刚刚修改的写权限,再恢复到读权限
#reboot //重启

大数据集群软件安装手册1-编程之家

切换到hduser登陆,下面创建两个目录/home/hduser/software和 /home/hduser/app,前者放软件的目录,后者放安装程序的目录

$mkdir /home/hduser/software
$mkdir /home/hduser/app

3.2 安装配置JDK

1、 卸载旧的jdk

[hduser@zm1 ~]# rpm -qa | grep jdk
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64#sudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
#sudo rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
#sudo rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
#sudo rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64

2、安装新的jdk1.8

1) 将JDK压缩包jdk-8u181-linux-x64.tar.gz拷贝到CentOS 7中~/software/下
2) 进入到/home/hduser/software/目录下:$ cd ~/software/
3) 解压缩jdk压缩包:$ tar xvzf jdk-8u181-linux-x64.tar.gz
4) 把目录转移到安装目录下$ mv jdk1.8.0_181 ~/app

3、 配置jdk环境变量

#sudo vim /etc/profile  在最后面增加export JAVA_HOME=/home/hduser/app/jdk1.8.0_181
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

进入终端,输入 source /etc/profile 使刚刚修改的环境变量生效。

4、 测试是否成功:

#java –version //1.8
#javac –version //1.8

3.3 安装和配置Hadoop

1、解压hadoop

cd ~/software
tar xvzf hadoop-2.7.3.tar.gz -C ~/app/

2、配置

sudo vim /etc/profile
export HADOOP_HOME=/home/hduser/app/hadoop-2.7.3
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH #修改PATH

进入终端,输入 source /etc/profile 使刚刚修改的环境变量生效

3、 测试环境变量是否配置正确:

$ hadoop version

大数据集群软件安装手册1-编程之家

4 设置SSH免密码登陆到本机

下面设置ssh免密码登陆到本机
1) 生成公钥和私钥

ssh-keygen  -t rsa 	//在 /home/hduser/.ssh/目录下有两把钥匙,其中后缀.pub是公

2) 在本机进行免密码登陆

ssh-copy-id	localhost	 //复制私钥到其它计算机,当前是本机
//一会克隆完其它两台机器,还要再用此命令。

大数据集群软件安装手册1-编程之家

5 配置Hadoop集群模式

5.1 配置hosts映射文件

修改sudo vim /etc/hosts文件,做ip和主机名映射
172.16.100.101 zm1
172.16.100.102 zm2
172.16.100.103 zm3

5.2 克隆2台虚拟机并修改主机名和ip地址

1、克隆2台虚拟机,分别是zm2、zm3,选择“完整克隆”
2、开机时,出现“已移动”和“已复制”的选项,选择“已移动”
3、修改主机名

hostnamectl set-hostname 名字

4、修改ip

$sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=修改最后2位分别是102,103
大数据集群软件安装手册1-编程之家

重启:$ systemctl restart network.service

5.3 设置ssh免密码登陆到其它主机

把zm1的公钥复制到其他主机,实现免登录

$ssh-copy-id	zm2
$ssh-copy-id	zm3

大数据集群软件安装手册1-编程之家

5.4 修改配置文件并复制到其他主机

配置HADOOP_HOME/etc/hadoop/下的7个配置文件
hadoop-env.sh配置JDK环境

export JAVA_HOME=/home/hduser/app/jdk1.8.0_181
export HADOOP_HOME=/home/hduser/app/hadoop-2.7.3
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

yarn-env.shYarn框架环境配置,也要指定JDK路径。

export JAVA_HOME=/home/hduser/app/jdk1.8.0_181

slaves增加slave节点,也就是DateNode节点,命名自定义

zm2
zm3

core-site.xmlHadoop的全局配置

<configuration><property><name>fs.defaultFS</name><value>hdfs://zm1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hduser/app/hadoop-2.7.3/tmp</value></property><property><name>io.file.buffer.size</name><value>131702</value></property><property><name>hadoop.proxyuser.hduser.hosts</name>                                               <value>*</value></property><property><name>hadoop.proxyuser.hduser.groups</name><value>*</value></property>
</configuration> 

hdfs-site.xml HDFS的配置

<configuration><property><name>dfs.namenode.name.dir</name><value>/home/hduser/app/hadoop-2.7.3/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/hduser/app/hadoop-2.7.3/dfs/data</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name><value>zm1:50071</value></property>	
</configuration>

mapred-site.xm Mapreduce的配置

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
<property><name>mapreduce.map.memory.mb</name><value>512</value></property><property><name>mapreduce.reduce.memory.mb</name><value>1024</value></property><property><name>mapreduce.jobhistory.address</name><value>zm1:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>zm1:19888</value></property>
</configuration>

yarn-site.xml Yarn框架的配置Hadoop集群测试

<configuration><property><name>yarn.resourcemanager.hostname</name><value>zm1</value></property><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>
</configuration>

最后复制7个文件到zm2、zm3

scp -r ~/app/hadoop-2.7.3/etc/hadoop/ hduser@zm2:~/app/hadoop-2.7.3/etc
scp -r ~/app/hadoop-2.7.3/etc/hadoop/ hduser@zm3:~/app/hadoop-2.7.3/etc

大数据集群软件安装手册1-编程之家

5.5 启动监控Hadoop

1、格式化master(namenode)的文件系统(第次执行,只执行1次)

$ hdfs namenode -format  #注意这是一个横线
如果提示是否要重新格式化,需要先删除DataNode(102和103)节点的目录:/home/hduser/app/hadoop-2.7.3/dfs/data

2、启动dfs

$ start-dfs.sh
如果出现WARN util.NativeCodeLoader: Unable to load native-hadoop library….
解决:在/home/hduser/app/hadoop-2.7.3/etc/hadoop/log4j.properties文件中最后添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

大数据集群软件安装手册1-编程之家

3、 查看启动的进程

$jps  //在zm1上查看,有namenode进程,在zm2上查看,有datenode进程

大数据集群软件安装手册1-编程之家

4、 使用如下的命令来获得HDFS状态的报告

$hdfs dfsadmin -report 或hadoop dfsadmin -report

5、 HDFS带有一个监控web控制台来验证安装以及监视HDFS集群

http://zm1:50070   //在zm1服务器中打开浏览器,如果在windows用ip172.16.100.101

大数据集群软件安装手册1-编程之家

6、 启动yarn

$ start-yarn.sh

7、 启动MapReduce历史服务器(查看之前跑过的任务,mapred-site.xml配置了web地址)

$ mr-jobhistory-daemon.sh start historyserver		# 启用历史服务

8、 查看启动的进程

$jps

9、 运行测试的PI程序

$ hadoop jar ~/app/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 20
说明:这是用蒙古特卡罗的方式求pi的值,不用关心具体的细节,其中pi表示主类,10表示map数量,20表示每个map取样数量,越多越精细,结果如果没有报错在3.12左右就代表本次运行正常

10、 访问8088端口基于web的控制台页面。查看正在运行的程序
http://zm1:8088/ #可以查看多了一个作业
http://zm1:8088/ #查看集群

大数据集群软件安装手册1-编程之家
11、 关闭history service、YARN service和HDFS service

$ mr-jobhistory-daemon.sh stop historyserver		# 关闭历史服务
$ stop-yarn.sh		# 关闭yarn
$ stop-dfs.sh		# 关闭hdfs

12、 用jps查看结果