hadoop大数据平台集群环境搭建

1、登录大数据实验平台

进入实验,(界面显示为master、slave01、slave02),如图6-1所示。

图 1实验环境界面

2、确保各台虚拟机能ping通外网

(图2-1界面中master、slave01、slave02,分别对应一个虚拟机,随后简称为“界面各虚拟机”)。

2.2.1 在桌面空白处右击鼠标

打开一个终端(图2-2根据centos7所使用的图形桌面系统不同会稍有区别,一般使用gnome或xfce)。

图 2-2桌面右击鼠标界面

2.2.2 ping网络

分别在master、slave01和slave02虚拟机上ping一个外网网址,确保能够ping通,“ctrl+c”组合键结束ping命令的执行(大数据实验室提供的虚拟机默认已可ping通外网)。

图 2-3master虚拟机ping通界面

图 2-4 slave01虚拟机ping通界面

图 2-5 slave02虚拟机ping通界面

2.3配置主机名

(“界面各虚拟机”分别操作此步骤,主机名分别设置为master, slave01,
slave02)。

说明:此处以界面虚拟机master的操作为例(默认已经配置好主机名称),slave01和slave02的操作如法炮制。

2.3.1以下操作需要root用户权限,所以先切换成root用户,密码:zkpk。

[zkpk@localhost ~]$ su root

图 2-6切换到root用户

2.3.2使用vi命令编辑主机名(或使用gedit)。

2.3.2.1编辑主机名文件

[root@localhost zkpk]# vi /etc/hostname

2.3.2.2将hostname文件中原来内容替换为master,如果已经是master,可以直接按冒号“:“键,再输入“wq”保存退出。

2.3.2.3临时设置主机名为master。

[root@localhost zkpk]# hostname master

2.3.2.4检测主机名是否修改成功,使用bash命令让上一步操作生效。

[root@localhost zkpk]# bash

图 6-7主机名修改成功界面

6.4配置时钟同步(使用root用户权限,“界面各虚拟机”分别操作此步骤;若已配置过,请忽略此步骤)

说明:此处以界面虚拟机master的操作为例,slave01和slave02的操作如法炮制。

6.4.1配置自动时钟同步

6.4.1.1使用Linux命令配置。

[root@master zkpk]# crontab -e

6.4.1.2按“i“键,进入插入模式;输入下面的内容(注意:星号之间和前后都有空格)。

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

6.4.1.3按“Esc”键退出插入模式,然后按“:”键,输入“wq”保存退出。

6.4.2手动同步时间,直接在终端下运行下面的命令。

[root@master zkpk]# /usr/sbin/ntpdate cn.pool.ntp.org

图6-8手动同步时间界面

6.5关闭防火墙(使用root用户权限;“界面各虚拟机”分别操作此步骤;若已配置过,请忽略此步骤)

说明:此处以界面虚拟机master的操作为例,slave01和slave02的操作如法炮制。

6.5.1查看防火墙状态(默认已经关闭防火墙)

[root@master zkpk]# systemctl status firewalld.service

图 6-9查看防火墙状态界面

6.5.2在终端中执行下面命令(说明:两条命令分别是临时关闭防火墙和禁止开机启动防火墙)。

[root@master zkpk]# systemctl stop firewalld.service
[root@master zkpk]# systemctl disable firewalld.service

6.6配置hosts列表(使用root权限;“界面各虚拟机”分别操作此步骤;默认已经配置)

说明:此处以界面虚拟机master的操作为例,slave01和slave02的操作如法炮制。

6.6.1运行ifconfig命令,获得当前master虚拟机的ip地址,如图6-10所示是master的ip地址。(用相同方法获得当前slave01和slave02虚拟机的ip地址。)

图 6-10获得master虚拟机的ip地址

6.6.2编辑主机名列表文件hosts。

[root@master zkpk]# vi /etc/hosts

6.6.3将下面三行添加到/etc/hosts文件中,保存退出。

说明:
这里master虚拟机对应IP地址是10.42.0.93,slave01对应的IP是10.42.0.94,slave02对应的IP是10.42.0.95。而自己在做配置时,需要将IP地址改成自己的实验环境中的master、slave01和slave02虚拟机对应的IP地址。

10.42.0.93 master
10.42.0.94 slave01
10.42.0.95 slave02

6.6.4分别Ping master、slave01和slave02主机名。

[root@master ~]# ping master -c 3
[root@master ~]# ping slave01 -c 3
[root@master ~]# ping slave02 -c 3

说明:参数-c 3表示只返回三行响应就中止。

6.6.5如果出现图6-11所示的信息表示配置主机名列表文件成功。(此处只显示了master虚拟机Ping
slave01虚拟机的界面)

图 6-11 master虚拟机Ping slave01虚拟机成功

6.7免密钥登录配置(使用zkpk用户权限)。

6.7.1master虚拟机上。

6.7.1.1先从root用户,退回到普通用户zkpk(注意命令行提示符的变化)。

[root@master zkpk]# su zkpk

6.7.1.2在终端生成密钥,命令如下(一路按回车完成密钥生成)

[zkpk@master ~]$ ssh-keygen -t rsa

图 6-12 master虚拟机上密钥生成界面

6.7.1.3生成的密钥在用户根目录中的.ssh子目录中,进入.ssh目录查看,如图6-13所示操作。

图 6-13查看生成的密钥

6.7.1.4执行以下命令复制公钥文件。

[zkpk@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

6.7.1.5执行“ls -l”命令后会看到图6-14所示的文件列表,说明复制公钥文件成功。

图 6-14复制公钥文件成功

6.7.1.6修改authorized_keys文件的权限,命令如下。

[zkpk@master .ssh]$ chmod 600 ~/.ssh/authorized_keys

6.7.1.7将专用密钥添加到 ssh-agent 的高速缓存中,命令如下。

[zkpk@master .ssh]$ ssh-add ~/.ssh/id_rsa

6.7.1.8将authorized_keys文件复制到slave01、slave02虚拟机的zkpk用户的根目录,命令如下。

说明:如果提示输入yes/no的时候,输入yes,回车。密码是:zkpk

[zkpk@master .ssh]$ scp ~/.ssh/authorized_keys zkpk@slave01:~/
[zkpk@master .ssh]$ scp ~/.ssh/authorized_keys zkpk@slave02:~/

图 6-15复制authorized_keys文件到slave01、slave02虚拟机

6.7.2 slave01虚拟机上。

6.7.2.1先从root用户,退回到普通用户zkpk(注意命令行提示符的变化)。

[root@slave01 zkpk]# su zkpk

图 6-16切换到zkpk用户

然后生成密钥,命令如下(一路点击回车生成密钥)。

[zkpk@slave01 ~]$ ssh-keygen -t rsa

图 6-17 slave01虚拟机上密钥生成界面

6.7.2.2将authorized_keys文件移动到.ssh目录,命令如下。

[zkpk@slave01 ~]$ mv authorized_keys ~/.ssh/

6.7.3 slave02虚拟机上。

6.7.3.1先从root用户,退回到普通用户zkpk, (注意命令行提示符的变化)。

[root@slave02 zkpk]# su zkpk

生成密钥,命令如下(一路点击回车生成密钥)。

[zkpk@slave02 ~]$ ssh-keygen -t rsa

6.7.3.2将authorized_keys文件移动到.ssh目录,命令如下。

[zkpk@slave02 ~]$ mv authorized_keys ~/.ssh/

6.7.4验证免密钥登录。

6.7.4.1在master虚拟机上远程登录slave01,命令如下。

[zkpk@master ~]$ ssh slave01

6.7.4.2如果出现图6-18所示的内容表示免密钥配置成功。

图 6-18 master虚拟机上远程登录slave01

6.7.4.3退出slave01远程登录,命令如下。

[zkpk@slave01 ~]$ exit

图 6-19 master虚拟机上退出slave01远程登录

6.7.4.4在master机器上远程登录slave02,命令如下。

[zkpk@master ~]$ ssh slave02

6.7.4.5如果出现图6-20所示的内容表示免密钥配置成功。

图 6-20 master虚拟机上远程登录slave02

6.7.4.6退出slave02远程登录,命令如下。

[zkpk@slave02 ~]$ exit

6.8安装JDK(注意:在“界面各虚拟机”master、slave01和slave02分别操作此步骤。)

6.8.1删除系统自带的jdk(如若出现如图6-21效果,说明系统自带java,需要先卸载)

6.8.1.1查看系统自带jdk

在master虚拟机上执行:

[zkpk@master ~]$ rpm -qa | grep java

图 6-21在master虚拟机查看系统自带jdk

在slave01虚拟机上执行:

[zkpk@slave01 ~]$ rpm -qa | grep java

图 6-22在slave01虚拟机查看系统自带jdk

在slave02虚拟机上执行:

[zkpk@slave02 ~]$ rpm -qa | grep java

图 6-23在slave02虚拟机查看系统自带jdk

6.8.1.2切换为root用户,密码:zkpk

在master虚拟机上执行:

[zkpk@master ~]$ su root

在slave01虚拟机上执行:

[zkpk@slave01 ~]$ su root

在slave02虚拟机上执行:

[zkpk@slave03 ~]$ su root

6.8.1.3移除系统自带的jdk

在master虚拟机上执行:

[root@master zkpk]# yum remove java-1.*

图 6-24在master虚拟机上移除系统自带的jdk

在slave01虚拟机上执行:

[root@slave01 zkpk]# yum remove java-1.*

图 6-25在slave01虚拟机上移除系统自带的jdk

在slave02虚拟机上执行:

[root@slave02 zkpk]# yum remove java-1.*

图 6-26在slave02虚拟机上移除系统自带的jdk

6.8.1.4创建存放jdk文件目录

在master虚拟机上执行:

[root@master zkpk]# mkdir /usr/java

在slave01虚拟机上执行:

[root@slave01 zkpk] # mkdir /usr/java

在slave02虚拟机上执行:

[root@slave02 zkpk] # mkdir /usr/java

6.8.2 解压JDK压缩包

6.8.2.1将/home/zkpk/tgz下的JDK压缩包解压到/usr/java目录下

在master虚拟机上执行:

[root@master zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

图 6-27在master虚拟机上解压JDK压缩包

在slave01虚拟机上执行:

[root@slave01 zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

图 6-28在slave01虚拟机上解压JDK压缩包

在slave02上执行:

[root@slave02 zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

图 6-29在slave02虚拟机上解压JDK压缩包

6.8.2.2退出root用户。

在master虚拟机上执行:

[root@master zkpk]# exit

图 6-30在master虚拟机上退出root用户

在slave01虚拟机上执行:

[root@slave01 zkpk]# exit

图 6-31在slave01虚拟机上退出root用户

在slave02虚拟机上执行:

[root@slave02 zkpk]# exit

图 6-32在slave02虚拟机上退出root用户

6.8.3配置zkpk用户环境变量。

在master虚拟机上执行:

使用vi命令修改“.bash_profile”。

[zkpk@master ~]$ vi /home/zkpk/.bash_profile

复制以下内容添加到上面打开的文件.bash_profile中,然后保存退出。(如果已经有这样的内容,直接退出。)

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

图 6-33在master虚拟机上配置zkpk用户环境变量

在slave01虚拟机上执行:

使用vi命令修改“.bash_profile”。

[zkpk@slave01 ~]$ vi /home/zkpk/.bash_profile

复制以下内容添加到上面打开的文件.bash_profile中,然后保存退出。(如果已经有这样的内容,直接退出。)

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

在slave02虚拟机上执行:

使用vi命令修改“.bash_profile”。

[zkpk@slave02 ~]$ gedit /home/zkpk/.bash_profile

复制以下内容添加到上面打开的文件.bash_profile中,然后保存退出。(如果已经有这样的内容,直接退出。)

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

6.8.4使环境变量生效。

在master虚拟机上执行:

[zkpk@master ~]$ source /home/zkpk/.bash_profile

在slave01虚拟机上执行:

[zkpk@slave01 ~]$ source /home/zkpk/.bash_profile

在slave02虚拟机上执行:

[zkpk@slave02 ~]$ source /home/zkpk/.bash_profile

6.8.5查看java是否配置成功。

在master虚拟机上执行:

[zkpk@master ~]$ java -version

图 6-34在master虚拟机上查看java是否配置成功

在slave01虚拟机上执行:

[zkpk@slave01 ~]$ java -version

在slave02虚拟机上执行:

[zkpk@slave02 ~]$ java -version

6.9安装部署Hadoop集群(zkpk用户)

注意:每个虚拟机上的Hadoop配置基本相同,在master虚拟机上操作,然后复制到slave01、slave02两个虚拟机即可。

6.9.1将/home/zkpk/tgz/hadoop目录下的Hadoop压缩包解压到/home/zkpk目录下

[zkpk@master ~]$ tar -xzvf /home/zkpk/tgz/hadoop-2.7.3.tar.gz -C /home/zkpk

图 6-35在master虚拟机上解压Hadoop压缩包

6.9.2配置hadoop-env.sh文件。

6.9.2.1使用vi命令修改hadoop-env.sh文件。

[zkpk@master ~]$ vi /home/zkpk/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

6.9.2.2复制以下内容添加到上面打开的文件hadoop-env.sh中,然后保存退出。(如果已经有这样的内容,直接退出。)

export JAVA_HOME=/usr/java/jdk1.8.0_131/

图 6-36在master虚拟机上配置hadoop-env.sh文件

6.9.3配置yarn-env.sh文件。

6.9.3.1使用vi命令修改yarn-env.sh文件。

[zkpk@master ~]$ vi ~/hadoop-2.7.3/etc/hadoop/yarn-env.sh

6.9.3.2复制以下内容添加到上面打开的文件yarn-env.sh中,然后保存退出。(如果已经有这样的内容,直接退出。)

export JAVA_HOME=/usr/java/jdk1.8.0_131/

图 6-37在master虚拟机上配置yarn-env.sh文件

6.9.4配置core-site.xml 文件。

6.9.4.1使用vi命令修改core-site.xml文件。

[zkpk@master ~]$ vi ~/hadoop-2.7.3/etc/hadoop/core-site.xml

6.9.4.2复制以下内容替换core-site.xml中的内容,然后保存退出。(如果已经有这样的内容,直接退出。)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/zkpk/hadoopdata</value>
	</property>
</configuration>

图 6-38在master虚拟机上配置core-site.xml文件

6.9.5配置hdfs-site.xml文件。

6.9.5.1使用vi命令修改hdfs-site.xml文件。

[zkpk@master ~]$ vi ~/hadoop-2.7.3/etc/hadoop/hdfs-site.xml

6.9.5.2复制以下内容替换hdfs-site.xml中的内容,然后保存退出。(如果已经有这样的内容,直接退出。)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
</configuration>

图 6-39在master虚拟机上配置hdfs-site.xml文件

6.9.6配置yarn-site.xml文件。

6.9.6.1使用vi命令修改yarn-site.xml文件。

[zkpk@master ~]$ vi ~/hadoop-2.7.3/etc/hadoop/yarn-site.xml

6.9.6.2复制以下内容替换yarn-site.xml中的内容,然后保存退出。(如果已经有这样的内容,直接退出。)

<?xml version="1.0"?>
<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>master:18040</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>master:18030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>master:18025</value>
	</property>
	<property>
		<name>yarn.resourcemanager.admin.address</name>
		<value>master:18141</value>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>master:18088</value>
	</property>
</configuration>

图 6-40在master虚拟机上配置yarn-site.xml文件

6.9.7配置mapred-site.xml文件。

6.9.7.1复制mapred-site-template.xml文件。

[zkpk@master ~]$ cp ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml

6.9.7.2使用vi命令编辑mapred-site.xml文件。

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml

6.9.7.3复制以下内容替换mapred-site.xml中的内容,然后保存退出。(如果已经有这样的内容,直接退出。)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

图 6-41在master虚拟机上配置mapred-site.xml文件

6.9.8配置slaves文件。

6.9.8.1使用vi命令编辑slaves文件。

[zkpk@master ~]$ vi ~/hadoop-2.7.3/etc/hadoop/slaves

6.9.8.2复制以下内容替换slaves中的内容,然后保存退出。(如果已经有这样的内容,直接退出。)

slave01

slave02

图 6-42在master虚拟机上配置slaves文件

6.9.9创建Hadoop数据目录。

[zkpk@master ~]$ mkdir hadoopdata

6.9.10将配置好的hadoop文件夹复制到从节点。

6.9.10.1使用scp命令将文件夹复制到slave01、slave02上。

注意:因为之前已经配置了免密钥登录,这里可以直接免密钥远程复制。

[zkpk@master ~]$ scp -r hadoop-2.7.3 zkpk@slave01:~/
[zkpk@master ~]$ scp -r hadoop-2.7.3 zkpk@slave02:~/

复制完成后,可以在slave01和slave02上检验是否复制成功。(此处以slave02虚拟机为例。)

[zkpk@slave02 ~]$ ll

图 6-43在slave02虚拟机上检验是否复制成功

6.10配置Hadoop环境变量(使用zkpk用户权限;“界面各虚拟机”分别操作此步骤;若已配置过,请忽略此步骤)

说明:此处以界面虚拟机master的操作为例,slave01和slave02的操作如法炮制。

6.10.1使用vi命令编辑.bash_profile文件。

[zkpk@master ~]$ vi ~/.bash_profile

6.10.2复制以下内容添加到.bash_profile末尾,然后保存退出。(如果已经有这样的内容,直接退出。)

#HADOOP
export HADOOP_HOME=/home/zkpk/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

图 6-44在master虚拟机上配置.bash_profile文件

6.10.3使环境变量生效。

[zkpk@master ~]$ source ~/.bash_profile

6.11格式化Hadoop文件目录

注意:此操作在master虚拟机上执行。

格式化命令如下。

[zkpk@master ~]$ hdfs namenode –format

图6-45 格式化master虚拟机(1)

图 6-46格式化master虚拟机(2)

6.12启动Hadoop集群。

6.12.1在
master虚拟机上运行start-all.sh命令。(格式化后首次执行此命令,提示输入yes/no时,输入yes。)

[zkpk@master ~]$ start-all.sh

6.12.2查看进程是否启动。

6.12.2.1在master虚拟机上的终端执行jps命令,出现图6-47效果。

注意:前面那些数字是进程号,可能因为自己的实验环境不同而不同。

图 6-47 master虚拟机成功启动

6.12.2.2在slave01虚拟机上的终端执行jps命令,出现如图 6-48效果。

图 6-48 slave01虚拟机成功启动

6.12.2.3在slave02虚拟机上的终端执行jps命令,出现如图 6-49效果。

图 6-49slave02虚拟机成功启动

6.12.3Web UI查看集群是否成功启动。

6.12.3.1在窗口左上部的Applications菜单中打开Firefox浏览器,在浏览器地址栏中输入,检查namenode
和 datanode 是否正常,如图6-50、6-51、6-52所示。

图 6-50在Applications菜单中打开Firefox浏览器

图6-51查看集群namenode 和 datanode情况(1)

图 6-52查看集群namenode 和 datanode情况(2)

6.12.3.2打开Firefox浏览器新标签页,地址栏中输入,检查Yarn是否正常,如图6-53、6-54所示。

图 6-53查看集群Yarn情况(1)

图 6-54查看集群Yarn情况(2)

6.12.4运行PI实例检查集群是否成功。

6.12.4.1执行下面的命令。(Pi后面的第一个参数10是Map任务的数量,第二个10是求圆周率Pi的算法的参数。)

[zkpk@master~]$ hadoop jar ~/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10

6.12.4.2会看到如下的执行结果。

图 6-55运行PI实例(1)

图 6-56运行PI实例(2)

图 6-57运行PI实例(3)

6.12.4.3最后输出:Estimated value of Pi is
3.20000000000000000000,这个值还不够精确,可以通过调整那两个参数逐渐逼近3.1415926……。

说明:如果通过WebUI界面能看见正常的namenode和datanode以及YARN启动,然后运行PI程序能够得到上述图所示结果,说明集群正常启动。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟码神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值