HADOOP集群搭建

2023-11-18

安装步骤

机器mini_yum,mini2,mini3,mini4

注意:下面的步骤在4台机子上都要做的操作

1先将虚拟机的网络模式选为NAT
2修改主机名
        vi /etc/sysconfig/network
        NETWORKING=yes
        HOSTNAME=xxxx ###

3修改IP
            vim /etc/sysconfig/network-scripts/ifcfg-eth0
         
            DEVICE="eth0"
            BOOTPROTO="static"               ###
            HWADDR="xxxxxxx"
            IPV6INIT="yes"
            NM_CONTROLLED="yes"
            ONBOOT="yes"
            TYPE="Ethernet"
            UUID="xxxxxxx"
            IPADDR="xxxx"           ###
            NETMASK="255.255.255.0"          ###
            GATEWAY="xxxx"            ###
            
4 修改主机名和IP的映射关系
        vim /etc/hosts
        xxxx    mini2
    
5关闭防火墙
        #查看防火墙状态
        service iptables status
        #关闭防火墙
        service iptables stop
        #查看防火墙开机启动状态
        chkconfig iptables --list
        #关闭防火墙开机启动
        chkconfig iptables off
6修改sudo
        su root
        vim /etc/sudoers
        给hadoop用户添加执行的权限

7免密

8重启Linux:    reboot
9 安装JDK

10为每个机器创建hadoop用户,密码为hadoop

[root@mini-yum ~]# echo $JAVA_HOME
/usr/local/jdk1.7.0_45
[root@mini-yum ~]# 

上面步骤在以前的内容都有介绍,我就不截图从新做一遍了。

重点(我下面都是用root用户操作,实际上应该使用hadoop)

安装hadoop2.6.4(已经编译过了,怎么编译看https://download.csdn.net/download/zhou920786312/10889695
1上传hadoop的安装包到服务器上去/home/hadoop/

2解压

[root@mini-yum hadoop]# tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/

3修改配置文件 

cd  /home/hadoop/apps/hadoop-2.6.4/etc/hadoop

3.1配置环境变量
  hadoop-env.sh

[root@mini-yum hadoop]# vi hadoop-env.sh 

 export JAVA_HOME=/usr/local/jdk1.7.0_45

 


3.2运行时参数配置(在mini-yum 上操作)
core-site.xml

[root@mini-yum hadoop]# vi core-site.xml 

  <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
     <!-- 使用的文件系统名称 -->
        <name>fs.defaultFS</name>
        <!-- 使用的协议是hdfs,地址是mini-yum:9000 -->
        <value>hdfs://mini-yum:9000</value>
    </property>
     <!-- 指定hadoop集群(也就是dataNode)运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
    </property>

     

 

hdfs-site.xml  (可以配也可以不配,因为有默认配置)

  <!-- 指定HDFS副本的数量,默认是3,也就是说存储在nodeDate的数据有3份副本 -->
  <property>
   <name>dfs.replication</name>
   <value>2</value>
  </property>

[root@mini-yum hadoop]# vi hdfs-site.xml 

        

mapred-site.xml.template(mapreduce)

修改名称

[root@mini-yum hadoop]# mv mapred-site.xml.template mapred-site.xml

<!-- 指定mapreduce运行在yarn上,默认是local就是本地跑-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
 

[root@mini-yum hadoop]# vi  mapred-site.xml 



yarn-site.xml

<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>mini-yum</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

[root@mini-yum hadoop]# vi yarn-site.xml 


4 将mini-yum的apps分发到mini2,mini3,mini4

当前目录

[root@mini-yum hadoop]# pwd
/home/hadoop
[root@mini-yum hadoop]# ll
总用量 176584
drwxr-xr-x. 3 root root      4096 1月   2 07:21 apps
-rw-r--r--. 1 root root 180813065 12月  6 18:40 cenos-6.5-hadoop-2.6.4.tar.gz

分发命令

[root@mini-yum hadoop]# scp -r apps mini2:/home/hadoop

[root@mini-yum hadoop]# scp -r apps mini3:/home/hadoop

[root@mini-yum hadoop]# scp -r apps mini4:/home/hadoop

 

5配置hadoop环境变量

mini-yum配置
[root@mini-yum etc]# vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_45
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


[root@mini-yum etc]# source /etc/profile

同时对mini2,mini3,mini4也这样配置

 

6 格式化namenode(是对namenode进行初始化,也就是mini-yum)

[root@mini-yum hadoop]# hdfs namenode -format
 

红色表示成功格式话,这个目录怎么来的?

来自core-site.xml配置的

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
    </property>

这个目录有什么?

 


        
7  启动hadoop

启动namedate(mini-yum)

[root@mini-yum hadoop-2.6.4]# cd /home/hadoop/apps/hadoop-2.6.4/sbin

[root@mini-yum sbin]# hadoop-daemon.sh  start namenode


      

验证

http://mini-yum:50070/

 

启动mini2的datanode

[root@mini2 hadoop]# cd /home/hadoop/apps/hadoop-2.6.4/sbin
[root@mini2 sbin]#  hadoop-daemon.sh  start datanode
starting datanode, logging to /home/hadoop/apps/hadoop-2.6.4/logs/hadoop-root-datanode-mini2.out
[root@mini2 sbin]# jps
5330 DataNode
5397 Jps
[root@mini2 sbin]# 

验证

 

后面可以一个一个启动mini3,mini4

缺点:加上有1000个节点,手动启动非常麻烦,所以才有下面的内容

8自启动所有节点

启动前,关闭所有节点,这边就写2个列子,mini3,mini4就参照mini2

mini-yum:

[root@mini-yum sbin]# hadoop-daemon.sh  stop namenode
stopping namenode
[root@mini-yum sbin]# jps
5561 Jps

mini2:

[root@mini2 sbin]#  hadoop-daemon.sh  stop  datanode
stopping datanode
[root@mini2 sbin]# jps
5435 Jps

自启动所有节点配置

启动前我mini-yum对mini-yum,mini2,mini3,mini4做了免登陆

 先到目录

[root@mini-yum hadoop-2.6.4]# cd /home/hadoop/apps/hadoop-2.6.4/etc/hadoop

[root@mini-yum hadoop]# vi slaves 

 

启动所有节点

[root@mini-yum hadoop]# cd /home/hadoop/apps/hadoop-2.6.4/sbin
[root@mini-yum sbin]# start-dfs.sh

验证

 

9停止所有节点

因为前面8已经配置了slave,所有只要在mini-yum执行以下命令就可以了

[root@mini-yum sbin]# stop-dfs.sh

验证

 

最后发现一个很郁闷的问题,那就是我用root用户操作了

 

所以我最后修改了apps文件及所有子文件的权限,将他们都改为hadoop用户组

机器mini_yum,mini2,mini3,mini4都要改

[root@mini4 hadoop]# pwd
/home/hadoop
[root@mini4 hadoop]# chown hadoop.hadoop -R  apps

[root@mini4 hadoop]# ll
总用量 44
drwxr-xr-x.  3 hadoop hadoop  4096 1月   2 10:23 apps
drwxr-xr-x. 12 hadoop hadoop  4096 12月  5 09:08 zookeeper
-rw-rw-r--.  1 hadoop hadoop 31049 12月  7 08:27 zookeeper.out

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HADOOP集群搭建 的相关文章

随机推荐

  • php 解析 %e5%80%aa%e9%a3%9e,content.json

    title Linux安装Docker date 2020 11 08T14 54 29 000Z path 2020 11 08 Linux安装Docker tags name Linux Docker slug Linux Docker
  • loC和AOP使用扩展

    6 1多种方式实现依赖注入 6 1 1构造注入 6 1 2技能训练1 6 1 3使用p命名空间实现属性注入 Spring配置文件从2 0版本开始采用schema形式 使用不同的命名空间管理不同类型的配置使得配置文件更具扩展性 列如 我们曾使
  • [Python]pip查找包的历史版本

    pip查找包的历史版本 场景 在一些时候通过pip install xxx 安装第三方库的时候默认情况下安装最新版本 由于是最新版本有个稳定性就不得不考虑其中 所以部分场景会存在一些bug这就要求我们安装历史版本 对一些更新频率比较高的三方
  • Window&linux使用换行符的问题总结

    1 Window使用Git时 设置换行符格式 参见 https www jianshu com p 6ef90ce18ba2 2 vi下设置回车换行符等特殊符号 换行方式 在早期的打印机时代 开始新的一行要占用两个字符的时间 如果到了一行的
  • java.lang.UnsatisfiedLinkError

    java lang UnsatisfiedLinkError 原因 jni注册的时候匹配写错了 I B B 如下 static JNINativeMethod methods native getSps I B B void Native
  • Keras保存模型并载入模型继续训练

    我们以MNIST手写数字识别为例 import numpy as np from keras datasets import mnist from keras utils import np utils from keras models
  • PyQt5中的按钮3-QCommandLinkButton

    PyQt5中的按钮3 QCommandLinkButton QCommandLinkButton介绍 QCommandLinkButton举例 QCommandLinkButton介绍 CommandLinkButton 外观像是一个被设置
  • verilog赋多位值_关于verilog 赋值

    1 wire表示直通 即只要输入有变化 输出马上无条件地反映 reg表示一定要有触发 输出才会反映输入 2 只有 lt 表示非阻塞 给沿触发的寄存器赋值 是阻塞赋值 给电平触发的信号赋值 3 不指定就默认为1位wire类型 专门指定出wir
  • 计算机视觉论文-2021-07-19

    本专栏是计算机视觉方向论文收集积累 时间 2021年7月19日 来源 paper digest 欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 1 T
  • 在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)

    1 前端页面upload jsp 后台处理程序UplodAction java 2 struts config的配置参数如下 没有设置 ActionForm
  • JAVA的WebService规范(支持)

    SOA Service Oriented Architecture 面向服务架构是一种思想 它将应用程序的不同功能单元通过中立的契约 独立于硬件平台 操作系统和编程语言 联系起来 使得各种形式的功能单元更好的集成 目前来说 WebServi
  • windows7旗舰版 appium环境搭建

    1 安装jdk 8u171 windows x64 exe 注意配置环境变量 参考资料 https jingyan baidu com article 6dad5075d1dc40a123e36ea3 html java version 查
  • Modbus RTU协议各知识点入门 + 实例

    文章目录 1 起因 2 几个重点 2 1 一些难懂的概念 2 2 CRC的高低位 2 3 其他 3 介绍 3 1 起源 3 2 分类 4 格式 4 1 串口协议 4 2 帧格式 5 数据类型 6 功能码 7 CRC16 modbus 8 实
  • React(Hook介绍)

    为什么要用Hook 介绍Hooks之前 首先要给大家说一下React的组件创建方式 一种是类组件 一种是纯函数组件 并且React团队希望 组件不要变成复杂的容器 最好只是数据流的管道 开发者根据需要 组合管道即可 也就是说组件的最佳写法应
  • 如何在 CentOS 8 上安装 Python 3.8

    本文来自于 阿里云官方镜像站 https developer aliyun com mirror utm content g 1000307095 原文链接 https developer aliyun com article 756221
  • 报错java.lang.Long cannot be cast to java.lang.Integer解析

    用博客记录工作中出现的问题 给自己一个提醒 也给其他朋友一些借鉴 报错 java lang Long cannot be cast to java lang Integer Long 无法转化成Integer类型 这个异常 经常出现在hin
  • 正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话

    该如何理解下面段代码的第二行QWidget parent 1 Widget Widget QWidget parent 2 QWidget parent 3 4 在讲解原因之前 先请大家看下面的一个例子 include
  • git切换分支时报错(error: pathspec ‘master‘ did not match any file(s) known to git.)的解决方法

    git切换分支时报错 切换分支 root git my code git checkout master 产生如下报错 error pathspec master did not match any file s known to git
  • 用 Python 爬取网红城市大长沙!

    这两天获取了两份关于长沙的数据 长沙景点和长沙美食 之后进行了分析 如果有朋友想去长沙或者周边城市玩 要仔细看看喔 导入库 长沙景点 数据获取 长沙景点的数据获取方法和之前那篇关于厦门的文章是一样的 只是重新跑了一遍代码 具体过程不再阐述
  • HADOOP集群搭建

    安装步骤 机器mini yum mini2 mini3 mini4 注意 下面的步骤在4台机子上都要做的操作 1先将虚拟机的网络模式选为NAT 2修改主机名 vi etc sysconfig network NETWORKING yes H