当前位置: 移动技术网 > IT编程>数据库>其他数据库 > 大数据学习笔记【一】:Hadoop-3.1.2完全分布式环境搭建(Windows 10)

大数据学习笔记【一】:Hadoop-3.1.2完全分布式环境搭建(Windows 10)

2019年07月30日  | 移动技术网IT编程  | 我要评论

一、前言

  hadoop原理架构本人就不在此赘述了,可以自行百度,本文仅介绍hadoop-3.1.2完全分布式环境搭建(本人使用三个虚拟机搭建)。

  首先,步骤:

  ① 准备安装包和工具

    •   hadoop-3.1.2.tar.gz
    •   jdk-8u221-linux-x64.tar.gz(linux环境下的jdk)
    •   certos-7-x86_64-dvd-1810.iso(centos镜像)
    • 工具:winscp(用于上传文件到虚拟机),securecrtp ortable(用于操作虚拟机,可复制粘贴linux命令。不用该工具也可以,但是要纯手打命令),vmware workstation pro

  ② 安装虚拟机:本人使用的是vmware workstation pro,需要激活。(先最小化安装一个虚拟机master,配置完hadoop之后再克隆两个slave)

  ③ 配置虚拟机:修改用户名,设置静态ip地址,修改host文件,关闭防火墙,安装hadoop,安装jdk,配置系统环境,配置免密码登录(必要)。

  ④ 配置hadoop:配置hadoop-env.sh,hdfs-site.xml,core-site.xml,mepred-site.xml,yarn-site.xml,workers文件(在hadoop-2×中是slaves文件,用于存放从节点的主机名称,或者ip地址)

  ⑤ 克隆虚拟机:克隆两个slave,主机名称分别是slave1,slave2。然后修改slave的hadoop配置。

  ⑥ namenode格式化:分别对master、slave1,slave2执行hadoop namenode -format命令。

  ⑦ 启动hdfs和yarn:在master上执行start-all.sh命令。待启动完成之后,执行jps命令查看进程,应包含namenode,secondarynamenode,resourcemaneger三个进程。slave上有datanode,nodemanager进程。

  ⑧ 检查测试:先修改真实主机的host(ip地址与master的映射)在浏览器中输入master:9870回车,进入hdfs,点击上方datanode应该可以看到下面有两个节点;输入master:8088回车,进入资源调度管理(yarn)

 

好了,开始吧。

二、准备工具

  hadoop-3.1.2.tar.tz下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

  jdk-8u221-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  centos下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/centos-7-x86_64-dvd-1810.iso

  winscp下载地址: https://winscp.net/eng/download.php

  securecrtp ortable下载地址: http://fs2.download82.com/software/bbd8ff9dba17080c0c121804efbd61d5/securecrt-portable/scrt675_u3.exe

  vmware workstation pro下载地址:http://download3.vmware.com/software/wkst/file/vmware-workstation-full-15.1.0-13591040.exe

  附vmware workstation pro秘钥

  yg5h2-anz0h-m8ery-txzzz-ykrv8

  ug5j2-0me12-m89wy-npwxx-wqh88

  ua5dr-2zd4h-089fy-6yq5t-yprx6

三、安装虚拟机

  此步略,详情之后发布

四、配置虚拟机

  1.修改用户名:

hostnamectl --static set-hostname master

  2.设置静态ip地址

  首先查看一下原本自动获取到的网关和dns,记下来

[root@master ~]# cat /etc/resolv.conf
# generated by networkmanager
nameserver 192.168.28.2 //dns

[root@master ~]# ip routing table
destination     gateway         genmask         flags   mss window  irtt iface
default         192.168.28.2(网关)    0.0.0.0         ug        0 0          0 ens33
192.168.28.0    0.0.0.0         255.255.255.0   u         0 0          0 ens33

[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33  //修改ifcfg-ens33文件,执行此命令后进入如下界面

  

  进入界面后按“i”键进入编辑模式,修改或添加图中标红部分。“static”表示静态地址,“netmask”子网掩码,gateways是网关,设置为上一步查看得到的即可。修改后按“esc”退出编辑模式。输入":wq"保存退出。然后输入以下代码更新网络配置。

systemctl restart network

  3.修改hosts文件

  注明:本人设置master的ip地址为192.168.28.132,slave1和slave2分别为192.168.28.133,192.168.28.134

  输入以下代码修改hosts文件(在真实主机中也需要添加):

vi /etc/hosts
添加:
192.168.28.132 master
192.168.28.133 slave1
192.168.28.134 slave2

  4.关闭防火墙

  关闭防火墙代码:

systemctl stop firewalld.service  //临时关闭
systemctl disable firewalld.service  //设置开机不自启

  5.安装hadoop和jdk

  先创建两个文件夹:

mkdir /tools   //用来存放安装包
mkdir /bigdata    //存放解压之后的文件夹

  使用winscp上传压缩包:登录后找到已下载好的压缩包按如下步骤点击上传即可。

 

  上传文件后,虚拟机端进入tools文件夹并解压文件:

cd /tools  //进入tools文件夹
tar -zvxf jdk-8u221-linux-x64.tar.gz  -c /bigdata/     //解压文件到bigdata目录下
tar -zvxf hadoop-3.1.2.tar.gz -c /bigdata/

  6.配置系统环境

vi ~/.bash_profile
添加:
export java_home=/bigdata/jdk1.8.0_221
export jre_home=$java_home/jre
export classpath=.:$classpath:$java_home/lib:$jre_home/lib
export path=$path:$java_home/bin:$jre_home/bin

export hadoop_home=/bigdata/hadoop-3.1.2
export hadoop_install=$hadoop_home
export hadoop_mapred_home=$hadoop_home
export hadoop_hdfs_home=$hadoop_home
export hadoop_common_home=$hadoop_home
export hadoop_conf_dir=$hadoop_home/etc/hadoop
export path=$path:$hadoop_home/sbin:$hadoop_home/bin

保存退出,让环境变量生效:
source ~/.bash_profile

  7.配置免密登录(重要)

ssh-keygen -t rsa     (直接回车3次)
cd ~/.ssh/
ssh-copy-id -i id_rsa.pub root@master 
ssh-copy-id -i id_rsa.pub root@slave1 
ssh-copy-id -i id_rsa.pub root@slave2 

测试是否成功配置(在配置完slave之后测试):
ssh slave1
可以登录到slave1节点

五、配置hadoop

  hadoop-3.1.2中有许多坑,在2x版本中有些默认的不需要特别配置,但在hadoop-3.1.2中需要。

  hadoop-env.sh配置:

cd  /bigdata/hadoop-3.1.2/etc/hadoop/
vi hadoop-env.sh
添加:
export java_home=/bigdata/jdk1.8.0_221
export hadoop_home=/bigdata/hadoop-3.1.2
export path=$path:/bigdata/hadoop-3.1.2/bin
export hadoop_opts="-djava.library.path=${hadoop_home}/lib/native"  
export hadoop_pid_dir=/bigdata/hadoop-3.1.2/pids     //pid存放目录,若没有此配置则默认存放在tmp临时文件夹中,在启动和关闭hdfs时可能会报错
#export hadoop_root_logger=debug,console   //先注释掉,有问题可以打开,将调试信息打印在console上

  hdfs-site.xml:

<configuration>
       <property>
          <name>dfs.replication</name>    //冗余度,默认为3
          <value>1</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/bigdata/hadoop-3.1.2/dfs/tmp/data</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/bigdata/hadoop-3.1.2/dfs/tmp/name</value>
	</property>
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
</configuration>

  mapred.site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    </property>
</configuration>

  yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>
</configuration>

  core-site.xml:

<configuration>
    <property>
        <name>fs.defaultfs</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/bigdata/hadoop-3.1.2/tmp</value>
    </property>
</configuration>

  workers:把默认的localhost删掉

slave1 192.168.28.133
slave2 192.168.28.134

  yarn-env.sh  添加:

yarn_resourcemanager_user=root
hadoop_secure_dn_user=yarn
yarn_nodemanager_user=root

  进入/bigdata/hadoop-3.1.2/sbin,修改start-dfs.sh,stop-dfs.sh,都添加:

hdfs_datanode_user=root
hdfs_datanode_secure_user=hdfs
hdfs_namenode_user=root
hdfs_secondarynamenode_user=root

  

六、克隆虚拟机

  克隆两个从节点虚拟机,主机名称分别为slave1,slave2(需要进入虚拟机中修改),然后分别修改ip地址(具体方法上面有)重启网络,重启虚拟机。

  重启完成后进行namenode格式化:分别对master、slave1,slave2执行:

hadoop namenode -format

  对master执行

start-all.sh  //启动hdfs和yarn

  待完成后用jps查看进程:

[root@master ~]# jps
7840 resourcemanager
8164 jps
7323 namenode
7564 secondarynamenode

  两slave的进程:

包含以下两个:
datanode
nodemanager

七、检查

  浏览器输入:在浏览器中输入master:9870回车,进入hdfs管理页面,点击上方datanode应该可以看到下面有两个节点;

  输入master:8088回车,进入资源调度管理(yarn)

  配置到此结束。接下来学习编写job程序。有任何问题欢迎留言讨论。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网