hadoop实践(三)hadoop 集群配置

2023-10-27

第一步: 集群规划

master   192.168.136.140
slave1  192.168.136.151
slave2  192.168.136.152


第二步:配置环境变量

  1)  vi /etc/profile  在最后面添加如下代码: 

export JAVA_HOME=/usr/java/jdk1.7.0_80
export JAVA_BIN=/usr/java/jdk1.7.0_80/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.4 
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:</span></span>

使之生效:[root@master dfs]# source /etc/profile


2)vi /etc/hosts文件 在最后面添加如下内容: 

[root@master dfs]# vim /etc/hosts
127.0.0.1   localhost
192.168.136.140 master.hadoop
192.168.136.151 slave1.hadoop
192.168.136.152 slave2.hadoop


第三步: 配置hadoop (master 192.168.136.140)

使用hadoop用户, 进入目录/opt/hadoop/hadoop-2.6.4/etc/hadoop

1)  [hadoop@master hadoop]$  vim  core-site.xml 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master.hadoop:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>4096</value>
        </property>
</configuration>


2) vim  hadoop-env.sh  和 yarn-env.sh  在开头添加如下环境变量(一定要添加切勿少了) 

    export JAVA_HOME=/usr/java/jdk1.7.0_80

3)vim  hdfs-site.xml 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///usr/hadoop/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:///usr/hadoop/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>


    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master.hadoop:50090</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>


4) vim mapred-site.xml 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
        </property>


    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>master.hadoop:50030</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master.hadoop:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master.hadoop:19888</value>
    </property>
        <property>
                <name>mapred.job.tracker</name>
                <value>http://master.hadoop:9001</value>
        </property>
</configuration>


5)vim  yarn-site.xml 

<?xml version="1.0"?>
<configuration>
       <!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master.hadoop</value>
        </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master.hadoop:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master.hadoop:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master.hadoop:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master.hadoop:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master.hadoop:8088</value>
    </property>
</configuration>


第五步 单机验证

1)如果没有启动进程(start-all.sh)

执行: [hadoop@master sbin]$ hadoop dfsadmin -report

正常是报告连接不上端口:9000

16/06/12 15:28:41 DEBUG ipc.Client: Connecting to master.hadoop/192.168.136.140:9000
16/06/12 15:28:41 DEBUG ipc.Client: closing ipc connection to master.hadoop/192.168.136.140:9000: Connection refused
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)

2) 进程已经启动(start-all.sh)

执行: [hadoop@master sbin]$ hadoop dfsadmin -report


补充说明: 本人系统,上面1)情况下在执行时,开始并没有认识到进程没有启动,排查中发现另外一个问题:

补充-1)增加debug调试
[hadoop@master hadoop-2.6.4]$ export HADOOP_ROOT_LOGGER=DEBUG,console
[hadoop@master hadoop-2.6.4]$ 
[hadoop@master hadoop-2.6.4]$ hadoop dfsadmin -report
。。。。
16/06/12 12:59:11 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0)
。。。。。

注意到这里有  `GLIBC_2.14' not found 


补充-2) 查看系统版本:
[hadoop@master hadoop-2.6.4]$  ll /lib64/libc.so.6
lrwxrwxrwx. 1 root root 12 Apr 28 14:43 /lib64/libc.so.6 -> libc-2.12.so

因此,去查找解决办法:

坑啊!!!
补充-3)解决

到网站http://ftp.gnu.org/gnu/glibc/
下载glibc-2.14.tar.bz2
下载glibc-linuxthreads-2.5.tar.bz2

[root@master soft]#  tar -jxvf /home/hadoop/soft/glibc-2.14.tar.bz2
[root@master soft]# cd glibc-2.14/
[root@masterglibc-2.14]# tar -jxvf /home/hadoop/soft/glibc-linuxthreads-2.5.tar.bz2
[root@master glibc-2.14]# cd .. #必须返回上级目录
[root@master glibc-2.14]# export CFLAGS="-g -O2"           #加上优化开关,否则会出现错误
[root@master soft]# ./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
[root@master soft]# make        #编译,执行很久,可能出错,出错再重新执行
[root@master soft]# make install   #安装,必须root用户执行
#验证版本是否升级
[root@master soft]# ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 Jun 25 02:07 /lib64/libc.so.6 -> libc-2.14.so #显示2.14

注意两台slaves也需要如法炮制

第六步:集群配置

1) master上

进入/opt/hadoop/hadoop-2.6.4/etc/hadoop目录, hadoop用户

[hadoop@master hadoop]$ vim slaves
slave1.hadoop
slave2.hadoop

2)登录:master将hadoop整个的copy到另外两台机器上面

 scp -r /opt/hadoop/hadoop-2.6.4  192.168.136.151:/opt/hadoop/hadoop-2.6.4
 scp -r /opt/hadoop/hadoop-2.6.4  192.168.136.152:/opt/hadoop/hadoop-2.6.4   
 
3)配置两位两台机器上面的下面两个文件配置。
   /etc/hosts  
   /ets/profile
   配置内容和master一致
   
4)将三台机器的防火墙关闭掉:
   root用户下:service iptables stop
   
到此:整个三台Hadoop的集群的机器算是配置完成了;


第七步:集群验证

master上验证:

[hadoop@master hadoop]$ jps
119213 ResourceManager
119544 Jps
118968 NameNode

说明:本机一开始NameNode 没有,显然是有问题,后面解决(解决方法看后面补充)

slave1 上验证:

[hadoop@slave1 hadoop-2.6.4]$ jps
59295 Jps
59045 DataNode
59150 NodeManager

slave2 上验证:

[hadoop@slave2 hadoop]$ jps
59201 NodeManager
59096 DataNode
59345 Jps

登录web验证:

http://192.168.136.140:8088/cluster/nodes

http://192.168.136.140:50070/dfshealth.html#tab-overview

这两个网址能顺利打开,就表示ok

+++++++++++++++++++++++++++++++++++++

补充一:NameNode 没有正常启动的解决

首先查log:

2016-06-12 13:25:46,764 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /usr/hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:314)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:202)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1022)


/usr/hadoop/dfs/name  看来是没有,手工验证一下,确实不会自己创建,有点弱智。重新创建这该用户。

再次启动,还是报错,但是错误变化了:

2016-06-12 15:20:04,608 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /usr/hadoop/dfs/name/in_use.lock acquired by nodename 116900@master.hadoop
2016-06-12 15:20:04,611 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
java.io.IOException: NameNode is not formatted.
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1022)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:741)


 NameNode is not formatted. 于是格式化一下,具体命令:

 [hadoop@master hadoop-2.6.4]$ bin/hadoop namenode -format 
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

16/06/12 15:25:49 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = master.hadoop/192.168.136.140
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.6.4

。。。。。

最后再次重新启动 start-all.sh  注意格式化前最好先stop-all.sh

+++++++++++++++++++++++++++++++++++++

 补充二: master 执行jps 只看到2个进程

[hadoop@master hadoop]$ jps
119213 ResourceManager
119544 Jps
118968 NameNode

缺少了secondarynamenode进程,排除了好久,才发现start-all.sh里面就没有secondarynamenode启动项目,补充后执行正常启动,再次执行jps

[hadoop@master ~]$ jps
3303 ResourceManager
3871 Jps
3677 SecondaryNameNode
3058 NameNode

 hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts secondarynamenode start secondarynamenode















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

hadoop实践(三)hadoop 集群配置 的相关文章

随机推荐

  • 基于深度图与RGB图-->点云数据

    在这里记录一下 以备后续查阅 输入 对齐的深度图与RGB图 输出 点云数据 include
  • React 源碼解析 - Hooks 系列

    React 源碼解析 Hooks 系列 前言 正文 調用 React Hook 到底背後發生了什麼 初探 Hooks 源碼 Dispatcher useState Hook Hook 的實現 Hook 在 Mount 階段 useState
  • STM32CubeMX5.6.1生成的代码无启动文件

    丢失启动文件 使用这个版本的CubeMX 生成的代码里面没有对应的启动文件 编译报错 展开图片 在Drivers CMSIS文件夹下面 没有启动文件 编译不通过 报错No section matches selector no sectio
  • 微信小程序云开发:上传图片、视频到云存储指定目录并渲染到页面上

    该文章功能为主 样式为次 页面展示 前期准备 在云开发控制台的云存储环境中创建新建img文件夹和video文件夹 wxml
  • C 标准库 - 《limits.h》

    原文链接 https www runoob com cprogramming c standard library limits h html 简介 limits h 头文件决定了各种变量类型的各种属性 定义在该头文件中的宏限制了各种变量类
  • python控制系统操作-tqdm模块在终端控制台cmd中实现程序进度条的显示和控制(分别通过for循环和while循环实现)

    python控制系统操作 tqdm模块在终端控制台cmd中实现程序进度条的显示和控制 分别通过for循环和while循环实现 1 for循环控制 推荐使用 因为可以正常显示运行的时间 手动迭代进度条 from time import sle
  • Telink泰凌微TLSR8258蓝牙开发笔记(一)

    一 开发环境搭建 1 1 软件开发环境 1 1 1 开发的IDE IDE下载链接 1 1 2 烧录工具 DBT下载地址 1 1 3 蓝牙SDK 蓝牙SDK下载地址 1 2 硬件开发环境 8258开发板 烧录工具一套 二 运行例程 并使能打印
  • Leetcode 122:买卖股票二

    题目描述 题目连接 与第一次的题目相比 可以多次买卖等情况 只要求出最大利润即可 可以将一次买卖分为过个过程即可 1 2 3 4 5 比如正常情况下是第一天买进 第五天卖出 但这个过程可以分解为多次买进卖出 在第一天买进 第二天卖出 获得利
  • Meshlab源码编译 VS2013+QT5.8.0

    有了前面的配置基础 VS2013 QT5 8 0配置 接下来我们来编译源码 1 下载meshlab源码 我以 meshlab 32bit v 1 3 3 为例 利用它的源代码 MeshLabSrc AllInc v133 tgz 详细给出编
  • 关于TypeError: decode() argument ‘encoding‘ must be str, not None 的三种解决方法

    使用Scrapy Redis时 有一个常见的错误可能会让你烦恼不已 TypeError decode argument encoding must be str not None 这是因为Scrapy Redis在从Redis队列中读取请求
  • Fiddler新版全平台适配抓包,关键还免费,再也不用费劲找破解版了

    Fiddler Everywhere是适用于macOS Windows和Linux的安全且现代化的web调试代理 他可以捕获 检查 监视计算机与Internet之间的所有HTTP S 流量 并且可以mock请求 并诊断网络问题 这种方法既简
  • 水仙花数(c语言程序实现)

    描述 请判断一个数是不是水仙花数 其中水仙花数定义各个位数立方和等于它本身的三位数 输入 有多组测试数据 每组测试数据以包含一个整数n 100 lt n lt 1000 输入0表示程序输入结束 输出 如果n是水仙花数就输出Yes 否则输出N
  • 里面如何配置库_沙龙回顾

    随着自动驾驶技术不断发展 Apollo 已经从研发走向量产产品落地 作为 Apollo 开源软件平台的一部分 Apollo Cyber RT处于底层的实时操作系统 RTOS 和算法模块之间 能够在保证高吞吐的情况下 又能低延迟的实时响应上层
  • thinkbook14+(thinkbook16+) 屏幕亮度忽明忽暗

    thinkbook14 thinkbook16 在断开电源线的情况下 屏幕会时不时忽明忽暗 非常恶心 查了半天 才在贴吧找到如何解决这个问题 开始菜单里搜索英特尔显卡控制中心 在系统选项里有个功率 功率里有个显示器节能 关掉就好了
  • Hyperledger Fabric 入门笔记(三)Fabric V2.4 环境搭建

    文章目录 前言 一 基本概念 1 1 虚拟机 1 2 虚拟机软件 二 虚拟机相关 2 1 VirualBox7安装Ubuntu 2 2 Vmware安装Ubuntu 2 3 Ubuntu的使用 2 3 1 软件包管理器 2 3 1 1 yu
  • vue汉字转拼音-pinyin.js

    需求 用户在输入姓和名字的时候 由于姓 拼音 和名 拼音 为字母 容易输错 于是就有了自动生成拼音这个需求 npm install安装的四种用法 save和 save dev npm install xxx 安装项目到项目目录下 不会将模块
  • 软件工程基础知识-软件质量

    软件质量是指反映软件系统或软件产品满足规定或隐含要求的能力的特征和特性全体 软件质量保证是为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划 有组织的活动 其目的是生产该质量的软件 一 软件质量特性 二 软件质量保证 三 软件评审
  • spring集成Junit4配置

    这两天做Web开发 发现通过Spring进行对象管理之后 做测试变得复杂了 因为所有的Bean都需要在applicationContext xml中加载好 之后再通过 Resource去取得 如果每次都要整个业务流做的差不多了再去测试 这样
  • OpenCV-Python图形图像处理专栏文章目录

    前往老猿Python博客 https blog csdn net LaoYuanPython 注 1 部分文章前面标星号表示文章为付费专栏文章 2 本专栏的伴生付费专栏 https blog csdn net LaoYuanPython a
  • hadoop实践(三)hadoop 集群配置

    第一步 集群规划 master 192 168 136 140 slave1 192 168 136 151 slave2 192 168 136 152 第二步 配置环境变量 1 vi etc profile 在最后面添加如下代码 exp