Linux-centos7虚拟机集群搭建

Linux-centos7虚拟机集群搭建

====================================================

ψ(ー)ψ文末有彩蛋——各位长得好看的客官一定get到!!!

====================================================

操作过程常用命令:

查看hadoop编译工具是否成功安装:

java -version

mvn -version

ant -version

cmake --version

protoc --version

配置环境变量:

vim /etc/profile.d/my_env.sh

vim /etc/profile

让文件生效:

source /etc/profile

source /etc/profile.d/my_env.sh

查看文件大小:du -sh 文件名

操作过程常遇问题:

dfs.sh和yarn.sh关闭不了?

在自己用户下边关闭dfs.sh和yarn.sh=======root下边是关不了的!

hdfs启动后,各虚拟机的进程有缺失?

检查配置文件中的虚拟机名称是否匹配好。

所有虚拟机的免密登录是否配置好

hadoop编译报错?

网络不稳定,继续重新编译;

内存配置太大,内存溢出;

所有需要的编译的包版本冲突,尽量使用本文的编译包版本。

下载比较慢,可以拷贝别人编译好的jar包文件,文件路径:/root/.m2/repository/

注:“.m2是隐藏文件”用"ls -a"命令查看。

===========================================================

进入正题

(✪ω✪)哈哈~本文前提条件:自己先在linux上创建一个虚拟机。(网上很多的,你们这些聪明的小脑袋,肯定是小case)

开始集群搭建

有xshell可以连接上,没有的话直接打开虚拟机后端:桌面右击—打开终端。

1.查看是否可以连接网络:ping www.baidu.com

2.修改IP地址:vim /etc/sysconfig/network-scripts/ifcfg-ens33

(这里配置的是一个实例,客官可根据自身设置)

​ BOOTPROTO=static

​ #IP地址

​ IPADDR=192.168.20.20

​ #网关

​ GATEWAY=192.168.20.2

​ #域名解析器

​ DNS1=144.144.144.144

​ DNS2=8.8.8.8

3.重启网络:service network restart

4.配置主机名:

​ 1-查看主机名:hostname

​ 2-修改主机名:vim /etc/hostname

​ 3-映射主机名和IP地址:vim /etc/hosts

​ windows映射主机名和IP地址:C:\Windows\System32\drivers\etc\hosts

5.关闭防火墙: systemctl stop firewalld

6.配置用户具有root权限:vim /etc/sudoers

​ 找到:root ALL=(ALL) ALL

​ 添加:自己的用户名 ALL=(ALL) ALL

​ 我的是: dennis ALL=(ALL) ALL

7.在/opt目录下创建module、software文件夹

修改module、software文件夹的权限:chown dennis:dennis /opt/module/ /opt/software/

8.在hadoop001上安装jdk:(就是你创建的第一个虚拟机)

​ 1-卸载现有的jdk:rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps

​ 2-将JDK安装包导入到opt目录下面的software文件夹下面

​ 3-解压JDK到/opt/module目录下:tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

​ (jdk包在网上下载)

​ 4-配置环境变量:

​ 1)sudo vim /etc/profile.d/my_env.sh

​ 2)添加下面内容:

​ #JAVA_HOME

​ export JAVA_HOME=/opt/module/jdk1.8.0_212

​ export PATH=P A T H : PATH:PATH:JAVA_HOME/bin

​ 5-检查是否配置成功:java -version

​ 6-如果报错:则进行重启:

​ 同步数据到磁盘:sync;

​ 重启:reboot;

​ 如果连的xshell:则只需断开xshell,再重连即可

9.在hadoop001上安装hadoop

​ 1-Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

​ 2-将hadoop安装包导入到opt目录下面的software文件夹下面

​ 3-解压hadoop到/opt/module目录下:tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

​ 4-配置环境变量:

​ 1)sudo vim /etc/profile.d/my_env.sh

​ 2)添加下面内容:

​ #HADOOP_HOME

​ export HADOOP_HOME=/opt/module/hadoop-3.1.3

​ export PATH=P A T H : PATH:PATH:HADOOP_HOME/bin

​ export PATH=P A T H : PATH:PATH:HADOOP_HOME/sbin

​ 5-检查是否配置成功:hadoop version

​ 6-让配置文件生效:source /etc/profile

​ 6-如果报错:同第8点jdk查错

10.hadoop运行模式:(正菜)

​ 1-本地运行模式:(这里忽略)

​ 2-完全分布式运行模式:(重点)

​ 分析:

​ 1)准备3台客户机(关闭防火墙、设置静态ip、设置主机名称

​ 2)安装JDK

​ 3)配置环境变量

​ 4)安装Hadoop

​ 5)配置环境变量

​ 6)配置集群

​ 7)单点启动

​ 8)配置ssh

​ 9)群起并测试集群

1)准备工作:准备3台虚拟机(用刚建好的虚拟机再克隆2台)

如何克隆:

​    选中刚建好的虚拟机——右击——管理——克隆——选择“下一步”——“虚拟机中的当前状态”——“创建完整克隆”——设置克隆虚拟机名称/设置克隆虚拟机位置——完成。


2) 2)~5)前边已经弄好了(看第8点)

3)编写集群分发脚本xsync:

​ 重点:1-这个脚本放的位置:在root目录下创建bin:[root@hadoop001 ~]# mkdir bin

​ 将脚本移动到/bin中,以便全局调用。

​ 2-在bin目录下创建xsync文件:[root@hadoop001 bin]# touch xsync

​ 3-再给xsync授权执行权限。chmod +x /bin/xsync

​ 脚本xsync编写:

===============================================

#!/bin/bash

​ #1. 判断参数个数

​ if [ $# -lt 1 ]

​ then

​   echo Not Enough Arguement!

  exit;

fi

#2. 遍历集群所有机器

for host in hadoop102 hadoop103 hadoop104

do

  echo ====================  $host  ====================

  #3. 遍历所有目录,挨个发送

for file in $@

  do

    #4 判断文件是否存在

    if [ -e $file ]

    then

      #5. 获取父目录

      pdir=$(cd -P $(dirname $file); pwd)

      #6. 获取当前文件的名称

      fname=$(basename $file)

      ssh $host "mkdir -p $pdir"

      rsync -av $pdir/$fname $host:$pdir

    else

      echo $file does not exists!

    fi

  done

done

==========================================================================

4).设置ssh免密登录

​ **原理:**A想免密登录到B->首先A创建公钥和私钥->把公钥复制给B->A把携带私钥的消息发送给B->B用A的 公钥来解密->B用A的公钥加密的数据返回给A->A收到B的消息用自己的私钥解密。


​ **目的:**将所有虚拟机的root用户下和自己创建的用户下实现彼此之间相互免密登录。

​ (类似笛卡尔乘积相互连接)

​ 具体操作:

​ 1-分别在root和自己的用户名下创建公钥/私钥:ssh-keygen -t rsa

​ 按3次空格生成公钥和私钥。

​ 2-所有虚拟机互相发送公钥:ssh-copy-id 虚拟机名称

​ 3-测试连接:ssh 虚拟机名称。

5)配置集群:

hadoop001hadoop002hadoop003

HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode

YARNNodeManagerResourceManager NodeManagerNodeManager

​ 配置4个配置文件:

​ 1-core-site.xml

​ 2-hdfs-site.xml

​ 3-yarn-site.xml

​ 4-mapred-site.xml

​ 5-在集群上分发配置好的Hadoop配置文件:xsync /opt/module/hadoop-3.1.3/etc/hadoop/

6)群起集群:

​ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

​ 添加如下内容:

​ hadoop101

​ hadoop102

​ hadoop103

​ 同步到其他两个机器上:xsync /opt/module/hadoop-3.1.3/etc

7)启动集群

​ 1-先格式化:在hadoop001/bin下格式:hdfs namenode -format

​ **注意:**格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据

​ 2-启动hdfs:在hadoop-3.1.3下:

sbin/start-dfs.sh

​ cd /opt/module/hadoop-3.1.3/data/路径下的文件夹,在启动了hdfs后会自己创建出配置文件的文件:

​ 这是hadoop001中data/data中的文件:


​ 这是hadoop002中的data/data中的文件:


​ 这是hadoop003中data/data中的文件:


​ 3-在配置了ResourceManager的节点(hadoop002)启动YARN:

sbin/start-yarn.sh

1

​ 4-Web端查看SecondaryNameNode:http://hadoop003:9868/status.html

​ **注意:**浏览器若显示不出来,检查防火墙是否已经关闭。

8)配置历史服务器(在hadoop001中)

​ 1-配置mapred-site.xml:vi mapred-site.xml

​ 添加:

============================================

<!-- 历史服务器端地址 -->

<property>

    <name>mapreduce.jobhistory.address</name>

    <value>hadoop102:10020</value>

</property>

<!-- 历史服务器web端地址 -->

<property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>hadoop102:19888</value>

</property>

=====================================================

2-在hadoop001启动历史服务器:mapred --daemon start historyserver

3-查看进程是否启动:jps

4-JobHistory:http://hadoop001:19888/jobhistory

9)配置日志的聚集

1-配置yarn-site.xml:vim yarn-site.xml

添加:

========================================

<property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

</property>

<property> 

    <name>yarn.log.server.url</name> 

    <value>http://hadoop100/jobhistory/logs</value>

</property>

<property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

</property>

==============================================

2-命令:

关闭historyserver:在001上执行: mapred --daemon stop historyserver

启动NodeManager 、ResourceManage、Timelineserver和HistoryServer

在103上执行:start-yarn.sh

在103上执行:yarn --daemon start timelineserver

在102上执行:mapred --daemon start historyserver

10)配置时间同步(必须root用户)

11.切记!!!hdfs格式化之前删除data、logs

12.hadoop编译:(重点)

​ **1-必要条件:**可以连接外网、用root用户编译

​ 2-准备编译工具:(网上可以下载)

​ **3-配置环境变量:**maven、ant、LD_LIBRARY_PATH

​ (source生效)/etc/profile/

​ (source生效)/etc/profile.d/my_env.sh

​ 4-需要配置的文件:

​ maven中配置阿里云镜像:

​ [root@hadoop001 apache-maven-3.6.3]# vi conf/settings.xml

​ 添加:

<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

​ ant的配置:

​ 安装 glibc-headers 和 g++:

​ [root@hadoop001 apache-ant-1.10.9]# yum install glibc-headers

​ [root@hadoop001 apache-ant-1.10.9]# yum install gcc-c++

​ 安装make和cmake

​ [root@hadoop001 apache-ant-1.9.9]# yum install make

​ [root@hadoop001 cmake-3.6.2]# ./bootstrap

​ [root@hadoop001 cmake-3.6.2]# gmake

​ [root@hadoop001 cmake-3.6.2]# gmake install

​ 查看cmake是否安装成功:cmake --version

​ protobuf的配置

​ [root@hadoop001 protobuf-2.5.0]#./configure

​ [root@hadoop001 protobuf-2.5.0]# make

​ [root@hadoop001 protobuf-2.5.0]# make check

​ [root@hadoop001 protobuf-2.5.0]# make install

​ [root@hadoop001 protobuf-2.5.0]# ldconfig

​ 查看是否配置成功:

​ java -version

​ mvn -version

​ ant -version

​ cmake --version

​ protoc --version

​ 5-安装openssl库

​ [root@hadoop001 software]#yum install openssl-devel

​ 6-安装 ncurses-devel库

​ [root@hadoop001 software]#yum install ncurses-devel

​ 7-编译源码

​ 解压源码到/opt/目录:

​ [root@hadoop001 software]# tar -zxvf hadoop-3.1.3-src.tar.gz -C /opt/

​ 进入到hadoop源码主目录:

​ [root@hadoop001 hadoop-3.1.3-src]#

​ 通过maven执行编译命令:

​ [root@hadoop001 hadoop-3.1.3-src]#mvn package -Pdist,native -DskipTests -Dtar

​ 8-编译完毕

====================================

集群搭建完毕!!!

====================================

=========================================================

来了,,来了,,,

实现一台电脑的虚拟机连另一台电脑的虚拟机:

1-改IP地址(前三位一致)、子网掩码(两台一样)、改网关地址(两台一样)、改为桥接模式、连接到同一个无线网

2-查看两台电脑是否ping成功

3-ping成功开始发送:(执行命令)

rsync -av 发送的本机文件路径 对方虚拟机IP:保存发来的文件路径

​ 例:

rsync-av/opt/module  root@hadoop103:/opt/(这里写虚拟机名称必须保证对方的虚拟机名称和其IP地址是映射的,否则就要写IP地址)

写IP地址的: rsync-av/opt/module  root@192.168.20.22:/opt/写虚拟机名称:rsync-av/opt/module  root@hadoop003:/opt/


举个栗子:

IP地址:192.168.20.20 中 192.168.20要一样;

网关:192.168.20.2 (两台电脑网关都弄一样。)

改为桥接模式:

点开虚拟机——右击设置——选择桥接模式

查看编译下载的jar包

1-编译默认下载的jar包文件在:/root/.m2/repository

2-查看文件大小:du-sh 文件名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容