大数据集群软件安装
- 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安装VMware12虚拟机
下载虚拟机安装包,不要安装在c盘,一直默认安装即可。其中下面的步骤中,选项可以去掉
1.2安装Centos7.6操作系统
- 新建虚拟机, 选择Workstation12.x,next,选择稍后安装操作系统,next,选择Linux系统,CentOS 64位
- 我是8个G内存,所以zm1为3G,zm2和zm3都为1G,内存可以后面修改,网络类型选择NAT模式,其他推荐
- 选择创建新虚拟磁盘,大小为20G,检查没啥问题就可以点击完成
- 接下来再安装的操作系统中加入IOS映像文件,点击编辑虚拟机设置,再CD/DVD中使用自定义的映射文件(如果要修改内存就点击内存进行修改,内存为4的倍数)
- 点击确认后就可以开启虚拟机进行安装Linux系统了
用键盘的上下键,选择第1个install centos,然后按回车,进入后选择语言为简体中文,软件选择GNOME桌面,
- 点击完成,系统会检测软件的依赖关系,等待即可。
“安装位置”,有叹号,点击一下,不用修改,然后点”完成”。(如需要自己设置分区,那么请谨慎设置/, /home,/boot和swap)。 点击开始安装。
- 下面为管理员root创建密码123456,点击2次完成。
- 点击创建用户,创建用户名test,密码123456,并将此用户作为管理员,点击2次完成。
- 许可证有红色感叹号,点击勾选 我同意许可协议,点击完成。系统会重启,选择“未列出”,用户名输入”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安装完后,屏幕经常会自动锁定,可以进入如下操作:
左上角点击应用程序=>选择系统工具=>选择设置=>选择隐私=>设置锁屏状态为关闭。
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
2、 配置vmare网卡
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软件等
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 //重启
切换到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
4 设置SSH免密码登陆到本机
下面设置ssh免密码登陆到本机
1) 生成公钥和私钥
ssh-keygen -t rsa //在 /home/hduser/.ssh/目录下有两把钥匙,其中后缀.pub是公
2) 在本机进行免密码登陆
ssh-copy-id localhost //复制私钥到其它计算机,当前是本机
//一会克隆完其它两台机器,还要再用此命令。
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
重启:$ systemctl restart network.service
5.3 设置ssh免密码登陆到其它主机
把zm1的公钥复制到其他主机,实现免登录
$ssh-copy-id zm2
$ssh-copy-id zm3
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
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
3、 查看启动的进程
$jps //在zm1上查看,有namenode进程,在zm2上查看,有datenode进程
4、 使用如下的命令来获得HDFS状态的报告
$hdfs dfsadmin -report 或hadoop dfsadmin -report
5、 HDFS带有一个监控web控制台来验证安装以及监视HDFS集群
http://zm1:50070 //在zm1服务器中打开浏览器,如果在windows用ip172.16.100.101
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/ #查看集群
11、 关闭history service、YARN service和HDFS service
$ mr-jobhistory-daemon.sh stop historyserver # 关闭历史服务
$ stop-yarn.sh # 关闭yarn
$ stop-dfs.sh # 关闭hdfs
12、 用jps查看结果