继上次我们在机器中配置好了CentOS7,这次我们来配置实验环境
这次我们要来安装Hadoop伪集群
Hadoop 介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算
Hadoop 安装配置
前置实验环境:CentOS 7
Hadoop下载链接:(可以从Apache官网下载,不过我嫌太慢了,直接到清华镜像站里下载)
Hadoop 3.1.3: /apache/hadoop/common/hadoop-3.1.3 - 清华镜像站
参考:
https://zhuanlan.zhihu.com/p/45166521
https://zhuanlan.zhihu.com/p/73461795
前置环境配置
修改ip地址
在虚拟机的命令行中输入下面的命令,即使用vim编辑器修改网卡的配置文件
$ vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=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=55f92893-e87e-44fd-b89b-d6d813407263
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.52.130
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网卡使配置生效
$ sudo service network restart
修改主机名
CentOS 7可以使用hostnamectl命令,直接修改主机名
hostnamectl set-hostname magic
修改ip地址和主机名的映射关系
用vim编辑器修改/etc/hosts文件
$ vim /etc/hosts
添加一行新的映射,然后保存退出
192.168.52.130 magic
关闭防火墙
CentOS 7的防火墙服务为firewalld,不再使用IPtables了
systemctl stop firewalld #关闭防火墙服务网
systemctl disable firewalld #设置防火墙服务开机不启动
安装JDK
Hadoop 3.x要求JDK的版本必须是java 8,下载地址:jdk-8u161-linux-x64.tar.gz
$ sudo mv jdk-8u251-linux-x64.tar.gz /usr/local/
$ sudo tar -zxvf jdk-8u251-linux-x64.tar.gz
$ # set environment
$ vim /etc/profile
在profile里添加以下环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_251
export PATH=$PATH:$JAVA_HOME/bin
然后重新加载环境变量
$ source /etc/profile
下载安装Hadoop
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.3/
$ mkdir /hadoop
$ tar -zxvf hadoop-3.1.3.tar.gz -C /hadoop/
$ cd /hadoop/hadoop-3.1.3/
修改配置文件
在hadoop安装目录下有一个etc目录,里面存放着hadoop的配置文件(注意不要和linux的/etc搞混)
在我们这个实例中,etc位于/hadoop/hadoop-3.1.3/etc/hadoop,如下

[user@localhost hadoop]$ pwd
/hadoop/hadoop-3.1.3/etc/hadoop
[user@localhost hadoop]$ ll
total 172
-rw-r--r--. 1 user user 8260 Sep 12 2019 capacity-scheduler.xml
-rw-r--r--. 1 user user 1335 Sep 12 2019 configuration.xsl
-rw-r--r--. 1 user user 1940 Sep 12 2019 container-executor.cfg
-rw-r--r--. 1 user user 774 Sep 12 2019 core-site.xml
-rw-r--r--. 1 user user 3999 Sep 12 2019 hadoop-env.cmd
-rw-r--r--. 1 user user 15903 Sep 12 2019 hadoop-env.sh
-rw-r--r--. 1 user user 3323 Sep 12 2019 hadoop-metrics2.properties
-rw-r--r--. 1 user user 11392 Sep 12 2019 hadoop-policy.xml
-rw-r--r--. 1 user user 3414 Sep 12 2019 hadoop-user-functions.sh.example
-rw-r--r--. 1 user user 775 Sep 12 2019 hdfs-site.xml
-rw-r--r--. 1 user user 1484 Sep 12 2019 httpfs-env.sh
-rw-r--r--. 1 user user 1657 Sep 12 2019 httpfs-log4j.properties
-rw-r--r--. 1 user user 21 Sep 12 2019 httpfs-signature.secret
-rw-r--r--. 1 user user 620 Sep 12 2019 httpfs-site.xml
-rw-r--r--. 1 user user 3518 Sep 12 2019 kms-acls.xml
-rw-r--r--. 1 user user 1351 Sep 12 2019 kms-env.sh
-rw-r--r--. 1 user user 1747 Sep 12 2019 kms-log4j.properties
-rw-r--r--. 1 user user 682 Sep 12 2019 kms-site.xml
-rw-r--r--. 1 user user 13326 Sep 12 2019 log4j.properties
-rw-r--r--. 1 user user 951 Sep 12 2019 mapred-env.cmd
-rw-r--r--. 1 user user 1764 Sep 12 2019 mapred-env.sh
-rw-r--r--. 1 user user 4113 Sep 12 2019 mapred-queues.xml.template
-rw-r--r--. 1 user user 758 Sep 12 2019 mapred-site.xml
drwxr-xr-x. 2 user user 24 Sep 12 2019 shellprofile.d
-rw-r--r--. 1 user user 2316 Sep 12 2019 ssl-client.xml.example
-rw-r--r--. 1 user user 2697 Sep 12 2019 ssl-server.xml.example
-rw-r--r--. 1 user user 2642 Sep 12 2019 user_ec_policies.xml.template
-rw-r--r--. 1 user user 10 Sep 12 2019 workers
-rw-r--r--. 1 user user 2250 Sep 12 2019 yarn-env.cmd
-rw-r--r--. 1 user user 6056 Sep 12 2019 yarn-env.sh
-rw-r--r--. 1 user user 2591 Sep 12 2019 yarnservice-log4j.properties
-rw-r--r--. 1 user user 690 Sep 12 2019 yarn-site.xml
[user@localhost hadoop]$
修改Hadoop的环境变量配置文件
hadoop-env.sh是Hadoop的环境变量配置文件,需要在该配置文件中指定JAVA_HOME的路径,使用vi编辑器修改该配置文件,然后保存退出
$ vim hadoop-env.sh
大约55行左右,可以在这里设置变量JAVA_HOME

###
# Generic settings for HADOOP
###
# Technically, the only required environment variable is JAVA_HOME.
# All others are optional. However, the defaults are probably not
# preferred. Many sites configure these options outside of Hadoop,
# such as in /etc/profile.d
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/local/jdk1.8.0_251
修改Hadoop的核心配置文件
core-site.xml是Hadoop的核心配置文件,里面可以配置HDFS(Hadoop分布式文件系统)的NameNode的地址和数据存储目录,使用vi编辑器修改该配置文件,然后保存退出
$ vim core-site.xml
修改内容如下:
<configuration>
<!-- 指定hdfs的nameservice的地址为magic,端口为9000 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://magic:9000</value>
</property>
<!-- 指定hadoop存储数据的目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/data</value>
</property>
</configuration>
修改HDFS的配置文件
hdfs-site.xml是HDFS的配置文件,由于当前在一台机器上配置的Hadoop伪分布式,所以这里修改HDFS的副本为1即数据只保存一份,使用vi编辑器修改该配置文件,然后保存退出
vi hdfs-site.xml
具体修改内容如下:
<configuration>
<!-- HDFS的副本为1,即数据只保存一份 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改MapReduce的配置文件
mapred-site.xml里面可以配置,指定MapReduce框架运行在YARN资源调度系统上,使用vim编辑器修改该配置文件,然后保存退出
yarn是一个依赖管理工具
$ vim mapred-site.xml
具体修改内容如下:
<configuration>
<!-- 指定MapReduce运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改YRAR的配置文件
yarn-site.xml是配置YARN的相关配置的文件,使用vi编辑器修改该配置文件,然后保存退出
$ vim yarn-site.xml
具体修改内容如下:
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 分别指定ResouceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>magic</value>
</property>
<!-- 分别指定MapReduce的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
将Hadoop的命令添加到系统环境变量
将Hadoop的bin和sbin目录下的命令添加到系统环境变量,这样在执行Hadoop相关的命令是,就可以在任何目录下执行了,使用vi编辑器修改/etc/proflie配置文件,在文件的最后添加环境变量,然后保存退出
$ vim /etc/profile
具体修改内容如下:
export JAVA_HOME=/usr/local/jdk1.8.0_161
export HADOOP_HOME=/bigdata/hadoop-3.1.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
重新加载环境变量,在命令行中执行如下命令
$ source /etc/profile
初始化Hadoop HDFS文件系统
上面五个配置文件修改完成后,就可以初始化HDFS文件系统了,在命令行中执行下面的命令
$ hdfs namenode -format
看到如下信息,代表NameNode被成功初始化

INFO common.Storage: Storage directory /hadoop/data/dfs/name has been successfully formatted.
在命令行中先执行启动HDFS的命令
$ start-dfs.sh
执行后发现有如下错误
[user@localhost hadoop]$ start-dfs.sh
Starting namenodes on [magic]
magic: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Starting datanodes
localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Starting secondary namenodes [magic]
magic: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[user@localhost hadoop]$
这个错误是因为没有配置SSH免密码登录的问题,所以配置SSH免密码登录
$ ssh-keygen -t rsa
回车执行该命令后再接着三个回车(密钥的存储位置,是否加密、确定密码) ,然后将公钥拷贝给自己
$ ssh-copy-id localhost
$ ssh localhost # try to login without password
假如直接ssh登陆成功,说明配置完成
这时我们再次用命令start-dfs.sh启动hdfs,发现启动成功
利用jps命令可以查看hdfs是否启动成功
[user@localhost hadoop]$ start-dfs.sh
Starting namenodes on [magic]
Starting datanodes
Starting secondary namenodes [magic]
[user@localhost hadoop]$ jps
24225 Jps
24083 SecondaryNameNode
23717 NameNode
23882 DataNode
[user@localhost hadoop]$
执行jps命令后多了NameNode、DataNode和SecondaryNameNode进程,说明HDFS启动成功

在启动YARN `` start-yarn.sh` 可以正常启动,并且执行jps命令后多了ResourceManager、NodeManager进程,说明YARN启动成功!

[user@localhost hadoop]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers
[user@localhost hadoop]$ jps
24083 SecondaryNameNode
23717 NameNode
24856 Jps
23882 DataNode
24397 ResourceManager
24527 NodeManager
[user@localhost hadoop]$
测试Hadoop环境
附上hdfs常用端口配置:https://blog.csdn.net/wulantian/article/details/50843811
使用浏览器可以访问hdfs管理界面
192.168.52.130:50070刚开始照教程访问的是50070端口,但是连接失败
查到最后,发现是Hadoop 3.x以前的采用50070端口,3.x以后的版本采用9870端口,这里是个小坑
不过其他人这时连不上,大都都是防火墙没有放开
192.168.52.130:9870
打开Hadoop YARN的管理页面
使用浏览器访问yarn管理界面:
http://magic:8088/
本文详细介绍了如何在CentOS7上安装配置Hadoop 3.1.3的伪集群。内容包括前置环境配置如修改ip、主机名、关闭防火墙、安装JDK,下载安装Hadoop,以及一系列的配置文件修改,如core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml。最后,文章还提到了如何启动HDFS和YARN,并测试Hadoop环境,包括访问HDFS和YARN的管理页面。

3940

被折叠的 条评论
为什么被折叠?



