硬件配置:1台NameNode节点、2台DataNode节点

一、Linux环境配置

这里我只配置NameNode节点,DataNode节点的操作相同。

1.1、修改主机名

命令:vi /etc/sysconfig/network
修改内容:
NETWORKING=yes
HOSTNAME=master
命令:hostname master

1.2、修改ip地址(桥接模式)

命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改内容:(保留最简配置)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.12.80
NETMASK=255.255.255.0
GATEWAY=192.168.12.254
命令:service network restart 重启网络服务

1.3、配置主机名和ip地址的映射关系

命令:vi /etc/hosts
修改内容:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.12.80 master
192.168.12.81 slave1
192.168.12.82 slave2

1.4、关闭防火墙

命令:service iptables status 查看防火墙状态
命令:service iptables stop  关闭防火墙

1.5、设置防火墙开机不启动

命令:chkconfig iptables --list 查看防火墙开机启动状态
命令:chkconfig iptables off  设置防火墙开机不启动

二、java环境配置

使用软件SSHSecureShellClient进行文件的上传、远程命令执行等。

2.1、上传jdk

创建文件夹用于存放jdk文件,下载用于linux操作系统的jdk版本。
命令:mkdir java

2.2、解压jdk

命令:tar -zxvf jdk-8u121-linux-x64.tar.gz -C /home/bi/java

2.3、修改环境变量

命令:vi /etc/profile
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121
export PATH=${JAVA_HOME}/bin:$PATH
命令:source /etc/profile 重新加载环境变量脚本

2.4、验证java是否生效

命令:java -version

2.5、将java文件夹复制到DataNode节点下,并配置JDK环境变量

命令:
scp -r java bi@slave1:/home/bi/java
scp -r java bi@slave2:/home/bi/java

三、hadoop环境配置

3.1、上传hadoop安装包

创建文件夹用于存放hadoop安装文件
命令:mkdir hadoop

3.2、解压hadoop安装包

命令:tar -zxvf hadoop-2.7.3.tar.gz -C /home/bi/hadoop
在hadoop中有几个重要的目录:
sbin:启动或者停止hadoop相关服务的脚本
bin:对hadoop相关服务进行操作的脚本
etc:hadoop相关配置文件
share:hadoop依赖的相关jar包和文档
lib:hadoop本地库

3.3、修改环境变量

命令:vi /etc/profile
修改内容:
export HADOOP_HOME=/home/bi/hadoop/hadoop-2.7.3
export PATH=${JAVA_HOME}/bin:$PATH:${HADOOP_HOME}/bin
命令:source /etc/profile

3.4、配置hadoop(完全分布式)

命令:mkdir data 在hadoop文件夹下创建data文件夹用于存放hdfs数据
进入目录/hadoop/hadoop-2.7.3/etc/hadoop下:
1)修改core-site.xml文件
<configuration>
<!-- 配置NameNode地址-->            
<property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://master:9000</value>
            </property>
<!-- 配置HDFS数据存储目录 -->
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/home/bi/hadoop/hadoop-2.7.3/data</value>
            </property>
</configuration>
2)修改hdfs-site.xml文件

<configuration>
<!-- 配置HDFS副本备份数 -->
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
            <!-- 配置SecondaryNameNode地址 -->
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>master:50090</value>
            </property>
</configuration>
3)修改mapred-site.xml文件
<configuration>
<!-- 配置mapreduce运行在yarn上 -->
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>master:10020</value>
            </property>
            <property>
                    <name>mapreduce.job.tracker</name>
                    <value>master:9001</value>
            </property>
</configuration>
4)修改yarn-site.xml文件
<configuration>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
            <property>
                   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
            </property>
<!-- 配置resourcemanager的地址 -->
            <property>
                    <name>yarn.resourcemanager.address</name>
                    <value>master:8032</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.scheduler.address</name>
                     <value>master:8030</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.resource-tracker.address</name>
                     <value>master:8031</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.admin.address</name>
                     <value>master:8033</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.webapp.address</name>
                     <value>master:8088</value>
            </property>
</configuration>
5)修改slaves文件
修改内容:(删除文件中其他内容)
slave1
slave2
6)修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121

3.5、配置ssh免密码登录

1)执行下列命令,让master节点能够免密码登录自身服务器
命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
2)让master节点可以免密码登录到两个子节点(slave1、slave2)
为了实现这个功能,两个slave节点的公钥文件中必须要包含主节点的公钥信息,这样master就可以顺利安全的访问这两个slave节点了。
命令:
scp -r id_rsa.pub bi@slave1:/home/bi/.ssh/authorized_keys
scp -r id_rsa.pub bi@slave2:/home/bi/.ssh/authorized_keys
命令:测试免密码登录是否成功
ssh slave1
ssh slave2

3.6、将master节点配置的hadoop文件复制到两个子节点(slave1、slave2)

命令:
scp -r hadoop bi@slave1:/home/bi
scp -r hadoop bi@slave2:/home/bi

3.7、格式化NameNode

命令:hdfs namenode -format

3.8、启动hadoop

命令:sbin目录
sbin/start-all.sh

3.9、查看启动结果

命令:jps(master节点)
命令:jps(slave节点)
也可以打开界面:192.168.12.80:50070、192.168.12.80:8088查看节点状态

Hadoop环境搭建|第二篇:hadoop环境搭建的更多相关文章

  1. 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)

    上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章很多人看了以后,都表示不解,觉得不知道我到底 ...

  2. 【原】Spring整合Redis(第二篇)—SDR环境搭建具体步骤

    [环境参数] Spring版本:4.2.6.RELEASESpring-Data-Redis版本:1.7.2.RELEASE Redis版本:redis-2.4.5-win32-win64 [简要说明 ...

  3. cocos2d-x之android编译环境搭建(第二篇)[版本号:cocos2d-x-3.1.1]

    基于 Android NDK 的学习之旅-----环境搭建 工欲善其事 必先利其器 , 以下介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建. 1.Android 开发 ...

  4. Hadoop入门第四篇:手动搭建自己的hadoop小集群

    前言 好几天没有更新了,本来是应该先写HDFS的相关内容,但是考虑到HDFS是我们后面所有学习的基础,而我只是简单的了解了一下而已,后面准备好好整理HDFS再写这块.所以大家在阅读这篇文章之前,请先了 ...

  5. hadoop 初探之第二篇(杂谈)

    NameNode:名称节点,主要功能在于实现保存文件元数据,这些元数据直接保存在内存中,为了保证元数据的持久性,而也会周期性的同步到磁盘上去.磁盘上的数据通常被称为元数据的映像数据 image fil ...

  6. 《安卓网络编程》之第二篇 java环境下网络通信的综合应用

    经过前面内容的学习,我们了解了Java技术中实现网络通信的基本知识.下面将通过一个具体视力的实现过程,讲解客户端和服务器端通信的流程. 服务器端的实现文件是 Server.java,代码如下: imp ...

  7. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  8. Hadoop学习之Ubuntu12.04 Hadoop 环境搭建笔记

    SSH无密码配置 Hadoop在Ubuntu12.04上搭建环境 报错及问题 SSH无密码配置 参考:Linux(Centos)配置OpenSSH无密码登陆 注意问题: Hadoop集成环境三台机器都 ...

  9. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...

随机推荐

  1. ROUTE: route addition failed

    ROUTE: route addition failed 1)报FlushIpNetTable failed on interface错误 应对:以管理员身份运行OpenV-P-N 2)报Warnin ...

  2. 2019 WebRtc AudioMixer混音流程

    本文简要说明最新版WebRtc AudioMixer混音流程. 本程序使用4个16KHz 单声道时长均大于10秒的Wav文件作为混音源,只合成前10秒的音频,输出也是16KHz单声道音频. 输入和输出 ...

  3. Python内置函数系列

    Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义. 作用域相关(2) locals()  :以字典类型返回当前位置 ...

  4. ElementUI 复杂顶部和左侧导航栏实现

    描述:如图 项目路径如下图所示: 代码实现: 首先在store.js中添加两个状态: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vue ...

  5. 数据库入门(mySQL):数据操作与查询

    增删改 单表查询 多表查询 一.增删改 1.插入数据记录(增) insert into table_name(field1,field2,field3,...fieldn) valuses(value ...

  6. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (16944839 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable.

    今天发现task微服务的error日志报如下错误: Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large ...

  7. Java 面向对象(七)多态

    一.多态概述(Polymorphism) 1.引入 多态是继封装.继承之后,面向对象的第三大特性. 通过不同的事物,体现出来的不同的形态.多态,描述的就是这样的状态.如跑的动作,每个动物的跑的动作就是 ...

  8. 从graphql endpoint获取schema文件

    graphql server端有更新,client端需要重新获取schema文件用于创建新的api request,下面简要记录如何从graphql endpoint获取schema文件 You ca ...

  9. wince如何扫描条码并且在浏览器上查询数据

    这个挺简单的,winform也适用 public override void OnGetBarcode(string scanStr) { try { Process.Start("iesa ...

  10. css中 禁止spa有点击状态

    <span class="an" onclick="selNum();"></span> var selNum = function() ...