阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.X/YARN环境搭建详解

440次阅读
没有评论

共计 17336 个字符,预计需要花费 44 分钟才能阅读完成。

一、我缘何选择 CentOS7.0

2014 年 7 月 7 日 17:39:42 发布了 CentOS 7.0.1406 正式版, 我曾使用过多款 Linux,对于 Hadoop2.X/YARN 的环境配置缘何选择 CentOS7.0,其原因有:

1、界面采用 RHEL7.0 新的 GNOME 界面风,这可不是 CentOS6.5/RHEL6.5 所能比的!(当然,Fedora 早就采用这种风格的了,但是现在的 Fedora 缺包已然不成样子了)

2、曾经,我也用了 RHEL7.0,它最大的问题就是 YUM 没法用,而且总会有 Warning 提示注册购买!为此,必须去修改 YUM 源,还有修改其他的文件使之不提示才能用,看了这么麻烦,想必有很多童鞋滴心就已经凉了 4 / 7 了吧!

3、当然,Ubuntu 系列我用过 Ubuntu14.04/12.04 和 elementaryOS, 不知为何,一用 Ubuntu14.04 就觉得好丑呀!!但是有很多人都说 CentOS 和 RHEL 更丑,但殊不知哪个才是企业级的,那个才是霸主。

另一方面,要求视觉效果的话,建议去装个 elementaryOS 试试,当然,elementaryOS 也有缺陷:它已经许久没有提供更新了,12 年推出的,已逾 2 年未曾发布新版本的系统,也未曾更新网站,与此同时,elementaryOS 的模型 Ubuntu 早就更新换代了,所以,暴露了不少问题,其中麻烦的是不要随意更新系统,否则黑屏,那就真的纯命令行了,漂亮的系统突然被打回原型,那心铁定疤凉疤凉的,而且它更新后的 apt-get 是无法安装某些匹配某些,所以 elementaryOS 只供欣赏把玩!

4、也有人用过 openSUSE,据说是最华丽的系统,在我看来,花哨的 KDE 打开文件 / 软件时显示的一跳一跳的,我心里就痒痒的,没事儿你弄个没用又难看的东东干嘛??干嘛??另外,最新的 openSUSE 对中文的设计的确无法令人满意。另外,就是 openSUSE 的环境不怎么熟悉,欧洲人设计的 GNU/Linux 还有些难适应,当然,我也不打算改旗易帜向欧洲 SUSE 倒戈。

其实,GNU/Linux 版本众多,选择一个适合自己的一款一直玩下去、用下去就足够了,Linux 版本众多,设计各有千秋,但使用大同小异,了解“异”点即可!当然,还是奉劝一句:初学者仅仅跑跑虚拟机看看效果就好,莫要将每款都用会了!毕竟,体验也是学习的动力之一!

二、体验 CentOS7 与之前版本的“异”

初次启动

装完机后,开机进系统的界面换了,乍一看以为是两个内核,原来有一个是 rescue 选择,而且按 e 后,会发现所有的 grub.conf 的信息全出来了,好不容易找到内核启动的地方,写了个 1(要进单用户模式),然后进了 rescue 模式。

字符界面

进系统后,是图形界面,想进字符界面,结果找到 /etc/inittab,发现几乎是个空文件,文件中提示想改 runlevel 的话,可以把 /lib/systemd/system/runlevel*.target 软连到 /etc/systemd/system/default.target 下(当然考过来,覆盖也行),试了一下还行,能改到字符界面 runlevel3。

配置网络和主机名

然后,想配置网络,进 /etc/sysconfig/network-script/ 一看,我靠,网卡改名了 enp1s5,好有趣,配置完网络后改主机名,到 /etc/sysconfig/network 去改名字,发现这个文件也是空的,按原 6 版本的去修改,重启后没效果,man 了一下 hostname,发现 7 中改名要到 /etc/hostname 去改名字。

本地 yum 源和挂载

接着,想配置一个本地 yum 源,配上后要挂光盘,手动挂上了,然后直接 echo“mount ……”到 rc.local 中,毕竟是启动执行脚本,重启之后竟然没挂上,进去 rc.local 中看了一下,7 中竟然要手动的把 chmod +x rc.local, 是的,要手动加执行权限,难道我之前装的 6 以前的系统中这个都要手动加执行权限,我不记得啊!!!!当然,加了权限后,开机后启动执行了 rc.local 的 mount 命令。

LVM 和 xfs

后来,想着装一个 lvm 玩玩,于是啊就分区,格式化(特意格式化为了 xfs),pv,vg,lv 一步一步,都没问题,然后想着放大,缩小,这时出问题了,执行 resize2fs 时,怎么一直报 superblock 什么的出错,这是怎么回事,然后 man resize2fs 一下,发现这命令只支持 ext 的文件系统,我艹,那我装系统是怎么是 lvm 的,这个问题我还没解决,应该有解决方法。

dhcp 和服务

接着,想着装一个 dhcp 玩玩,惊奇的发现所有 dhcp 的包装上之后,不能 service dhcpd start,然后发现 /etc/init.d/ 中竟然没一个 dhcp 类似的东西,毕竟 6 之前有 dhcpd,dhcpd6,dhcrelay 的,然后发现 /sbin/dhcpd 有启动文件,难道,难道,以后的服务想 service 启,都要手动自己编?错了,是在 /usr/lib/systemd/system/dhcpd.service, 还要修改好多,然后加权限,执行 service 服务 restart/stop。。。。。。可以,但是指向了 systemctl restart/start/stop 服务.service

iptables

又发现 iptables 这次也不是作为一个服务在 /etc/init.d/ 下面了,/sbin 下有;

防火墙由 iptables 更换成了 firewalld

 

三、系统配置之关闭防火墙

systemctl stop firewalld.service #停止 firewall

systemctl disable firewalld.service #禁止 firewall 开机启动

systemctl 命令的基本操作格式是:systemctl   动作   服务名.service
动作:start,stop,restart,status,enable,disable,is-enabled

 

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

四、配置 Linux 网络

1、修改 hostname

CentOS 7.0 的 hostname 在 /etc/hostname 中用 root 用户修改:

[root@hadoop1 ~]# vim /etc/hostname    #编辑 /etc/hostname
[root@hadoop1 ~]# cat /etc/hostname    #查看 /etc/hostname
hadoop1
[root@hadoop1 ~]#

以前版本的 CentOS 在 /etc/sysconfig/network 中用 root 用户修改:

[root@hadoop1 ~]# vim /etcsysconfig/network

Hadoop2.X/YARN 环境搭建详解

“/etc/sysconfig/network” 的 设定项目 如下:

 
NETWORKING 是否利用网络

GATEWAY 默认网关与接下来配置 IP 的属性文件中默认网关一致

IPGATEWAYDEV 默认网关的接口名

HOSTNAME 主机名

DOMAIN 域名
 

reboot 后 hostname 生效

2、修改当前机器的 IP

        Step1: 进入配置文件目录

        现在已经是 root 权限了,我们 cd 到网络配置文件的目录,并列出目录下的文件。

Hadoop2.X/YARN 环境搭建详解

Hadoop2.X/YARN 环境搭建详解

Step2: 修改配置文件

该目录下,文件名“ifcfg-ens192”文件就是网络配置的主文件。vi 它!

修改或添加一下:

ONBOOT=yes  
BOOTPROTO=static  
IPADDR=IP 地址  
NETMASK=255.255.255.0 #子网掩码 
GATEWAY=192.168.30.1  #网关地址

Hadoop2.X/YARN 环境搭建详解

Step3: 重启网络服务

修改完配置文件后,:wq! 保存退出!然后重启网络。

Hadoop2.X/YARN 环境搭建详解

Step4: 测试

通过 ifconfig 命令查看 ip 是否设置成功,然后 ping 一下网络。这个时候应该成功了!

3、修改 DNS(看情况,非必选)

若网络环境有 DNS 要求, 则配置, 否则,勿配!

格式:

nameserver DNS 地址

[root@hadoop1 ~]# vi /etc/resolv.conf  
nameserver 202.131.80.1    #依需求而定 
nameserver 202.131.80.5    #依需求而定

4、配置 hosts 文件

/etc/hosts“ 这个文件是用来配置主机将用的 DNS 服务器信息,是记载 LAN 内接续的各主机的对应 [HostName 和 IP] 用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP 地址。

我们要测试两台机器之间知否连通,一般用 ”ping 机器的 IP”,如果想用 ”ping 机器的主机名 ” 发现找不见该名称的机器,解决的办法就是修改 ”/etc/hosts“ 这个文件,通过把 LAN 内的各主机的 IP 地址和 HostName 的 一一对应 写入这个文件的时候,就可以解决问题。

例如:机器为 ”hadoop1:59.67.107.80″ 对机器为 ”hadoop2:59.67.107.79″ 用命令 ”ping” 记性连接测试。测试结果如下:

Hadoop2.X/YARN 环境搭建详解

从上图中的值,直接对 IP 地址进行测试,能够 ping 通,但是对主机名进行测试,若没有 ping 通,提示 ”unknown host——未知主机 ”,这时查看 ”hadoop1″ 的 ”/etc/hosts” 文件内容。

若 ping hadoop1 不通则显示:

Hadoop2.X/YARN 环境搭建详解

若 ping hadoop1 通则显示:

Hadoop2.X/YARN 环境搭建详解

若发现里面没有 ”59.67.107.79 hadoop2″ 内容,故而本机器是无法对机器的主机名为 ”hadoop2″ 解析。

在进行 Hadoop 集群 配置中,需要在 ”/etc/hosts” 文件中添加集群中所有机器的 IP 与主机名,这样 Master 与所有的 Slave 机器之间不仅可以通过 IP 进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的 ”/etc/hosts” 文件 末尾 中都要添加如下内容:

因为本文以已经配置好的环境说明,所以我的 /etc/hosts 显示:

Hadoop2.X/YARN 环境搭建详解

一般处于内网下,照此添加(192.168.1.1 为网关):

 
192.168.1.2 hadoop1

192.168.1.3 hadoop2

192.168.1.4 hadoop3

192.168.1.5 hadoop4
 

用以下命令进行添加:

vim /etc/hosts

现在我们在进行对机器为 ”hadoop2″ 的主机名进行 ping 通测试,看是否能测试成功。

Hadoop2.X/YARN 环境搭建详解

从上图中我们已经能用主机名进行 ping 通了,说明我们刚才添加的内容,在局域网内能进行 DNS 解析了,那么现在剩下的事儿就是在其余的 Slave 机器上进行相同的配置。然后进行测试。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/108915p2.htm

Hadoop 是 Java 写的,他无法使用 Linux 预安装的 OpenJDK, 因此安装 hadoop 前需要先安装 JDK(1.6 以上)

原材料:在 Oracle 官网下载的 32 位 JDK:

Hadoop2.X/YARN 环境搭建详解

 

Hadoop2.X/YARN 环境搭建详解

Hadoop2.X/YARN 环境搭建详解

 

说明:

1、CentOS 7.0 系统现在只有 64 位的,但是,Hadoop 一般支持 32 位的,在 64 位环境下有事会有 Warning 出现,避免真的有神马问题,选择 i586 的 JDK(即 32 位的),当然,64 位的 CentOS 7 肯定是兼容 32 位 JDK 的,记住:64 位系统肯定兼容 32 位的软件,32 位系统不能兼容 64 位软件。64 位只是说明了 CPU 一次运算的位数为 64 位, 比 32 位多,64 位性能更高。

2、以前的 Linux 版本 JDK 有”.bin”文件可供下载,但是,现在官网只提供 rpm 的安装包与 tar.gz 的压缩包了,rpm 安装包是 RedHat 系列系统(RedHat/RHEL/Fedora/CentOS)特有的安装文件,直接运行即可,但我们不知道其中的配置方法。所以,为接近底层,我选择 tar.gz 的压缩包予以安装。

安装方式:

自带的 OpenJDK 与之后安装的 JDK,不可兼得,故而有两种操作:1、卸载删除原有的 OpenJDK,再安装 JDK    2、二者依然共存,但是,配置何者为真正有效的 JDK

 

Method 1: 卸载删除原有的 OpenJDK,再安装 JDK

第一步:卸载删除 OpenJDK

卸载删除 OpenJDK,首先需要知道到底要删除哪些东西:

 

Hadoop2.X/YARN 环境搭建详解

 

[Randy@localhost ~]$ rpm -qa|grep openjdk -i #查找已经安装的 OpenJDK,- i 表示忽略“openjdk”的大小写

 

现在将之全部删除:

[Randy@localhost ~]$ sudo yum remove java-1.6.0-openjdk-devel-1.6.0.0-6.1.13.4.el7_0.x86_64 java-1.7.0-openjdk-devel-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.7.0-openjdk-headless-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.6.0-openjdk-1.6.0.0-6.1.13.4.el7_0.x86_64
#用 RedHat 系列系统自带的 yum 进行删除 openjdk,yum 类似 Ubuntu 中的 apt-get, 均用于安装、卸载及更新系统自带的软件,注意:以上均以空格间隔

 

第二步:安装 JDK

 

1、解压

首先解压下载得来的 JDK:(JDK 的 tar.gz 压缩包放在了~/dev 目录下)

 
[Randy@localhost ~]$ sudo mkdir /usr/lib/jdk #如若没有 /usr/lib/jdk 路径,则执行此句予以创建 jdk 文件夹
[Randy@localhost ~]$ sudo tar -zxvf jdk-8u11-linux-i586.tar.gz -C /usr/lib/jdk #注意:-C, --directory=DIR        改变至目录 DIR
[Randy@localhost ~]$  ls /usr/lib/jdk
jdk1.8.0_11
[Randy@localhost ~]$ ls /usr/lib/jdk/jdk1.8.0_11/
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
[Randy@localhost ~]$
 

 

移动 jdk1.8.0_11 中的文件到 /usr/lib/jdk, 并删除 jdk1.8.0_11 文件夹:

 
[Randy@localhost ~]$ sudo cp -rf /usr/lib/jdk/jdk1.8.0_11/* /usr/lib/jdk/ #移动
[Randy@localhost ~]$ 
[Randy@localhost ~]$  ls /usr/lib/jdk
bin        javafx-src.zip  LICENSE      src.zip
COPYRIGHT  jdk1.8.0_11     man          THIRDPARTYLICENSEREADME-JAVAFX.txt
db         jre             README.html  THIRDPARTYLICENSEREADME.txt
include    lib             release
[Randy@localhost ~]$ sudo rm -rf /usr/lib/jdk/jdk1.8.0_11/ #删除
[Randy@localhost ~]$  ls /usr/lib/jdk
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
[Randy@localhost ~]$
 

 

2、配置环境变量

 
[Randy@localhost ~]$ sudo vim /etc/profile
在最后一行插入:#JAVA Environment
export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=/usr/lib/jdk/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
 

3、修改系统默认的 JDK

 
[Randy@localhost ~]$  sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300  #使系统默认的 java 命令是 /usr/lib/jdk/bin 中的 java 命令

[Randy@localhost ~]$  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/bin/javac 300  #使系统默认的 javac 命令是 /usr/lib/jdk/bin 中的 javac 命令
[Randy@localhost ~]$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jdk/bin/jar 300 #使系统默认的 jar 命令是 /usr/lib/jdk/bin 中的 jar 命令 

[Randy@localhost ~]$  sudo update-alternatives --config java   #配���默认 java 命令
共有 1 个提供“java”的程序。选项    命令
-----------------------------------------------
*+ 1          /usr/lib/jdk/bin/java
          
按 Enter 保留当前选项[+],或者键入选项编号:1

[Randy@localhost ~]$ sudo update-alternatives --config javac   #配置默认 java 命令
共有 1 个提供“java”的程序。选项    命令
-----------------------------------------------
*+ 1          /usr/lib/jdk/bin/javac
          
按 Enter 保留当前选项[+],或者键入选项编号:1
 

 

第三步:测试 JDK

[Randy@localhost ~]$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Server VM (build 25.11-b03, mixed mode)
[Randy@localhost ~]$ javac -version
javac 1.8.0_11

 

测试是遇到了一个问题:

 
[Randy@localhost ~]$ java
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
[Randy@localhost ~]$ ls /lib/ld-linux
ls: 无法访问 /lib/ld-linux: 没有那个文件或目录
[Randy@localhost ~]$ java -version
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
[Randy@localhost ~]$
 

解决方法是:

[Randy@localhost ~]$ sudo yum install glibc.i686 #在 64 系统里执行 32 位程序如果出现 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,安装下 glic 即可

 

Method 2: 二者共存,配置何者为真正有效的 JDK

 

与 Method1 类似,只是不需要卸载删除 OpenJDK 

1、解压

首先解压下载得来的 JDK:(JDK 的 tar.gz 压缩包放在了~/dev 目录下)

 
[Randy@localhost ~]$ sudo mkdir /usr/lib/jdk #如若没有 /usr/lib/jdk 路径,则执行此句予以创建 jdk 文件夹
[Randy@localhost ~]$ sudo tar -zxvf jdk-8u11-linux-i586.tar.gz -C /usr/lib/jdk #注意:-C, --directory=DIR        改变至目录 DIR
[Randy@localhost ~]$  ls /usr/lib/jdk
jdk1.8.0_11
[Randy@localhost ~]$ ls /usr/lib/jdk/jdk1.8.0_11/
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
[Randy@localhost ~]$
 

 

移动 jdk1.8.0_11 中的文件到 /usr/lib/jdk, 并删除 jdk1.8.0_11 文件夹:

 
[Randy@localhost ~]$ sudo cp -rf /usr/lib/jdk/jdk1.8.0_11/* /usr/lib/jdk/ #移动
[Randy@localhost ~]$ 
[Randy@localhost ~]$  ls /usr/lib/jdk
bin        javafx-src.zip  LICENSE      src.zip
COPYRIGHT  jdk1.8.0_11     man          THIRDPARTYLICENSEREADME-JAVAFX.txt
db         jre             README.html  THIRDPARTYLICENSEREADME.txt
include    lib             release
[Randy@localhost ~]$ sudo rm -rf /usr/lib/jdk/jdk1.8.0_11/ #删除
[Randy@localhost ~]$  ls /usr/lib/jdk
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
[Randy@localhost ~]$
 

 

2、配置环境变量

 
[Randy@localhost ~]$ sudo vim /etc/profile
在最后一行插入:#JAVA Environment
export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=/usr/lib/jdk/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
 

3、修改系统默认的 JDK

 
[Randy@localhost ~]$  sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300  #使系统默认的 java 命令是 /usr/lib/jdk/bin 中的 java 命令

[Randy@localhost ~]$  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/bin/javac 300  #使系统默认的 javac 命令是 /usr/lib/jdk/bin 中的 javac 命令
[Randy@localhost ~]$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jdk/bin/jar 300 #使系统默认的 jar 命令是 /usr/lib/jdk/bin 中的 jar 命令 

[Randy@localhost ~]$  sudo update-alternatives --config java   #配置默认 java 命令

共有 3 个提供“java”的程序。

  选项    命令
———————————————–
*  1          /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/bin/java
  2          /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
+ 3          /usr/lib/jdk/bin/java

按 Enter 保留当前选项[+],或者键入选项编号:3


[Randy@localhost ~]$ sudo update-alternatives --config javac   #配置默认 java 命令

共有 3 个提供“javac”的程序。

  选项    命令
———————————————–
*  1          /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/bin/javac
  2          /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/javac
+ 3          /usr/lib/jdk/bin/javac

按 Enter 保留当前选项[+],或者键入选项编号:3

 

[Randy@localhost ~]$

 

 

第三步:测试 JDK

[Randy@localhost ~]$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Server VM (build 25.11-b03, mixed mode)
[Randy@localhost ~]$ javac -version
javac 1.8.0_11

 

测试是遇到了一个问题:

 
[Randy@localhost ~]$ java
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
[Randy@localhost ~]$ ls /lib/ld-linux
ls: 无法访问 /lib/ld-linux: 没有那个文件或目录
[Randy@localhost ~]$ java -version
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
[Randy@localhost ~]$
 

解决方法是:

[Randy@localhost ~]$ sudo yum install glibc.i686 #在 64 系统里执行 32 位程序如果出现 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,安装下 glic 即可

 

 

附:

说完了 JDK 的环境配置,顺便聊聊 CentOS 7 自带的数据库 MariaDB 的设置。

现在,RHEL 7/CentOS 7 自带的数据库都不再是 MySQL 了,主要是因为开源的能力更大,现在 google 也正将其数据从 MySQL 迁移到 MariaDB。为体验最先进的思想,以后我的 Hive 数据库平台将是 MariaDB

 

系统装好后,系统的 mariadb 服务是出于 stop 状态的,所以应该先启动服务:

[Randy@localhost ~]$ sudo systemctl start mariadb  #之前 CentOS 版本执行 sudo service mariadb start,而 CentOS7 执行 service 命令也可生效,但提示:Redirecting to /bin/systemctl start  mariadb.service

[Randy@localhost ~]$ sudo systemctl stop mariadb  #停止 mariadb 服务
[Randy@localhost ~]$ sudo systemctl status mariadb  #查看 mariadb 状态
[Randy@localhost ~]$

 

设置 mariadb 的 root 密码为“root”:

命令格式:

sudo mysqladmin -u 用户名 password “ 新密码 ”

如果 root 已经设置过密码,采用如下方法:

sudo mysqladmin -u 用户名 password 旧密码 “ 新密码 ”

 

由于安装系统后没有密码,所以设定 root 用户密码为“root”:

[Randy@localhost ~]$ sudo mysqladmin -u root password "root"

 

测试:

[Randy@localhost ~]$ mysql -u root -proot

显示:

 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.37-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
 

 

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

一、我缘何选择 CentOS7.0

2014 年 7 月 7 日 17:39:42 发布了 CentOS 7.0.1406 正式版, 我曾使用过多款 Linux,对于 Hadoop2.X/YARN 的环境配置缘何选择 CentOS7.0,其原因有:

1、界面采用 RHEL7.0 新的 GNOME 界面风,这可不是 CentOS6.5/RHEL6.5 所能比的!(当然,Fedora 早就采用这种风格的了,但是现在的 Fedora 缺包已然不成样子了)

2、曾经,我也用了 RHEL7.0,它最大的问题就是 YUM 没法用,而且总会有 Warning 提示注册购买!为此,必须去修改 YUM 源,还有修改其他的文件使之不提示才能用,看了这么麻烦,想必有很多童鞋滴心就已经凉了 4 / 7 了吧!

3、当然,Ubuntu 系列我用过 Ubuntu14.04/12.04 和 elementaryOS, 不知为何,一用 Ubuntu14.04 就觉得好丑呀!!但是有很多人都说 CentOS 和 RHEL 更丑,但殊不知哪个才是企业级的,那个才是霸主。

另一方面,要求视觉效果的话,建议去装个 elementaryOS 试试,当然,elementaryOS 也有缺陷:它已经许久没有提供更新了,12 年推出的,已逾 2 年未曾发布新版本的系统,也未曾更新网站,与此同时,elementaryOS 的模型 Ubuntu 早就更新换代了,所以,暴露了不少问题,其中麻烦的是不要随意更新系统,否则黑屏,那就真的纯命令行了,漂亮的系统突然被打回原型,那心铁定疤凉疤凉的,而且它更新后的 apt-get 是无法安装某些匹配某些,所以 elementaryOS 只供欣赏把玩!

4、也有人用过 openSUSE,据说是最华丽的系统,在我看来,花哨的 KDE 打开文件 / 软件时显示的一跳一跳的,我心里就痒痒的,没事儿你弄个没用又难看的东东干嘛??干嘛??另外,最新的 openSUSE 对中文的设计的确无法令人满意。另外,就是 openSUSE 的环境不怎么熟悉,欧洲人设计的 GNU/Linux 还有些难适应,当然,我也不打算改旗易帜向欧洲 SUSE 倒戈。

其实,GNU/Linux 版本众多,选择一个适合自己的一款一直玩下去、用下去就足够了,Linux 版本众多,设计各有千秋,但使用大同小异,了解“异”点即可!当然,还是奉劝一句:初学者仅仅跑跑虚拟机看看效果就好,莫要将每款都用会了!毕竟,体验也是学习的动力之一!

二、体验 CentOS7 与之前版本的“异”

初次启动

装完机后,开机进系统的界面换了,乍一看以为是两个内核,原来有一个是 rescue 选择,而且按 e 后,会发现所有的 grub.conf 的信息全出来了,好不容易找到内核启动的地方,写了个 1(要进单用户模式),然后进了 rescue 模式。

字符界面

进系统后,是图形界面,想进字符界面,结果找到 /etc/inittab,发现几乎是个空文件,文件中提示想改 runlevel 的话,可以把 /lib/systemd/system/runlevel*.target 软连到 /etc/systemd/system/default.target 下(当然考过来,覆盖也行),试了一下还行,能改到字符界面 runlevel3。

配置网络和主机名

然后,想配置网络,进 /etc/sysconfig/network-script/ 一看,我靠,网卡改名了 enp1s5,好有趣,配置完网络后改主机名,到 /etc/sysconfig/network 去改名字,发现这个文件也是空的,按原 6 版本的去修改,重启后没效果,man 了一下 hostname,发现 7 中改名要到 /etc/hostname 去改名字。

本地 yum 源和挂载

接着,想配置一个本地 yum 源,配上后要挂光盘,手动挂上了,然后直接 echo“mount ……”到 rc.local 中,毕竟是启动执行脚本,重启之后竟然没挂上,进去 rc.local 中看了一下,7 中竟然要手动的把 chmod +x rc.local, 是的,要手动加执行权限,难道我之前装的 6 以前的系统中这个都要手动加执行权限,我不记得啊!!!!当然,加了权限后,开机后启动执行了 rc.local 的 mount 命令。

LVM 和 xfs

后来,想着装一个 lvm 玩玩,于是啊就分区,格式化(特意格式化为了 xfs),pv,vg,lv 一步一步,都没问题,然后想着放大,缩小,这时出问题了,执行 resize2fs 时,怎么一直报 superblock 什么的出错,这是怎么回事,然后 man resize2fs 一下,发现这命令只支持 ext 的文件系统,我艹,那我装系统是怎么是 lvm 的,这个问题我还没解决,应该有解决方法。

dhcp 和服务

接着,想着装一个 dhcp 玩玩,惊奇的发现所有 dhcp 的包装上之后,不能 service dhcpd start,然后发现 /etc/init.d/ 中竟然没一个 dhcp 类似的东西,毕竟 6 之前有 dhcpd,dhcpd6,dhcrelay 的,然后发现 /sbin/dhcpd 有启动文件,难道,难道,以后的服务想 service 启,都要手动自己编?错了,是在 /usr/lib/systemd/system/dhcpd.service, 还要修改好多,然后加权限,执行 service 服务 restart/stop。。。。。。可以,但是指向了 systemctl restart/start/stop 服务.service

iptables

又发现 iptables 这次也不是作为一个服务在 /etc/init.d/ 下面了,/sbin 下有;

防火墙由 iptables 更换成了 firewalld

 

三、系统配置之关闭防火墙

systemctl stop firewalld.service #停止 firewall

systemctl disable firewalld.service #禁止 firewall 开机启动

systemctl 命令的基本操作格式是:systemctl   动作   服务名.service
动作:start,stop,restart,status,enable,disable,is-enabled

 

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

四、配置 Linux 网络

1、修改 hostname

CentOS 7.0 的 hostname 在 /etc/hostname 中用 root 用户修改:

[root@hadoop1 ~]# vim /etc/hostname    #编辑 /etc/hostname
[root@hadoop1 ~]# cat /etc/hostname    #查看 /etc/hostname
hadoop1
[root@hadoop1 ~]#

以前版本的 CentOS 在 /etc/sysconfig/network 中用 root 用户修改:

[root@hadoop1 ~]# vim /etcsysconfig/network

Hadoop2.X/YARN 环境搭建详解

“/etc/sysconfig/network” 的 设定项目 如下:

 
NETWORKING 是否利用网络

GATEWAY 默认网关与接下来配置 IP 的属性文件中默认网关一致

IPGATEWAYDEV 默认网关的接口名

HOSTNAME 主机名

DOMAIN 域名
 

reboot 后 hostname 生效

2、修改当前机器的 IP

        Step1: 进入配置文件目录

        现在已经是 root 权限了,我们 cd 到网络配置文件的目录,并列出目录下的文件。

Hadoop2.X/YARN 环境搭建详解

Hadoop2.X/YARN 环境搭建详解

Step2: 修改配置文件

该目录下,文件名“ifcfg-ens192”文件就是网络配置的主文件。vi 它!

修改或添加一下:

ONBOOT=yes  
BOOTPROTO=static  
IPADDR=IP 地址  
NETMASK=255.255.255.0 #子网掩码 
GATEWAY=192.168.30.1  #网关地址

Hadoop2.X/YARN 环境搭建详解

Step3: 重启网络服务

修改完配置文件后,:wq! 保存退出!然后重启网络。

Hadoop2.X/YARN 环境搭建详解

Step4: 测试

通过 ifconfig 命令查看 ip 是否设置成功,然后 ping 一下网络。这个时候应该成功了!

3、修改 DNS(看情况,非必选)

若网络环境有 DNS 要求, 则配置, 否则,勿配!

格式:

nameserver DNS 地址

[root@hadoop1 ~]# vi /etc/resolv.conf  
nameserver 202.131.80.1    #依需求而定 
nameserver 202.131.80.5    #依需求而定

4、配置 hosts 文件

/etc/hosts“ 这个文件是用来配置主机将用的 DNS 服务器信息,是记载 LAN 内接续的各主机的对应 [HostName 和 IP] 用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP 地址。

我们要测试两台机器之间知否连通,一般用 ”ping 机器的 IP”,如果想用 ”ping 机器的主机名 ” 发现找不见该名称的机器,解决的办法就是修改 ”/etc/hosts“ 这个文件,通过把 LAN 内的各主机的 IP 地址和 HostName 的 一一对应 写入这个文件的时候,就可以解决问题。

例如:机器为 ”hadoop1:59.67.107.80″ 对机器为 ”hadoop2:59.67.107.79″ 用命令 ”ping” 记性连接测试。测试结果如下:

Hadoop2.X/YARN 环境搭建详解

从上图中的值,直接对 IP 地址进行测试,能够 ping 通,但是对主机名进行测试,若没有 ping 通,提示 ”unknown host——未知主机 ”,这时查看 ”hadoop1″ 的 ”/etc/hosts” 文件内容。

若 ping hadoop1 不通则显示:

Hadoop2.X/YARN 环境搭建详解

若 ping hadoop1 通则显示:

Hadoop2.X/YARN 环境搭建详解

若发现里面没有 ”59.67.107.79 hadoop2″ 内容,故而本机器是无法对机器的主机名为 ”hadoop2″ 解析。

在进行 Hadoop 集群 配置中,需要在 ”/etc/hosts” 文件中添加集群中所有机器的 IP 与主机名,这样 Master 与所有的 Slave 机器之间不仅可以通过 IP 进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的 ”/etc/hosts” 文件 末尾 中都要添加如下内容:

因为本文以已经配置好的环境说明,所以我的 /etc/hosts 显示:

Hadoop2.X/YARN 环境搭建详解

一般处于内网下,照此添加(192.168.1.1 为网关):

 
192.168.1.2 hadoop1

192.168.1.3 hadoop2

192.168.1.4 hadoop3

192.168.1.5 hadoop4
 

用以下命令进行添加:

vim /etc/hosts

现在我们在进行对机器为 ”hadoop2″ 的主机名进行 ping 通测试,看是否能测试成功。

Hadoop2.X/YARN 环境搭建详解

从上图中我们已经能用主机名进行 ping 通了,说明我们刚才添加的内容,在局域网内能进行 DNS 解析了,那么现在剩下的事儿就是在其余的 Slave 机器上进行相同的配置。然后进行测试。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/108915p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计17336字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7981253
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...