准备条件:

CentOS 7 64位操作系统 | 选择minimal版本即可(不带可视化桌面环境),也可以选择带完整版
Hadoop-2.8.0 | 本文采用的是Hadoop-2.8.0版本。
JDK1.8 | 本文采用jdk-8u131-linux-x64.tar.gz版本。


- 解压并配置JDK并配置Hadoop

1. 将下载好的jdk放入/usr 下并在/usr目录下新建java目录

[root@localhost /]# cd /usr
[root@localhost usr]# mkdir java
[root@localhost usr]# cd /usr/java/jdk1.8

进入该目录,并解压jdk到当前文件夹

tar -xzvf jdk-8.tar.gz

解压得到文件夹修改文件夹名为jdk1.8以方便使用。 
修改JAVA环境变量:
编辑java环境 vi ~/.bash_profile
添加如下命令:

export JAVA_HOME=/usr/java/jdk1.8.0_121

export PATH=$JAVA_HOME/bin:$PATH

执行source ~/.bash_profile 使变量生效

2. 解压hadoop-2.8.0
将下载好的Hadoop压缩包解压到目标文件夹下,(本文解压目录为:/usr/local
修改解压后得到Hadoop的文件夹名为:Hadoop-2.8.0 并得到如下文件:

Hadoop不需要安装,下面进行环境配置


下面的修改过程可使用vi命令,或者vim命令,或使用xftp直接对文件进行修改
  • 再次修改bash_profile 添加hadoop的文件路径:
    加上之前修改的配置的jdk环境,改该文件整体修改为:

PATH=$PATH:$HOME/bin
export PATH
export JAVA_HOME=/usr/java/jdk1.8
export HADOOP_HOME=/usr/local/hadoop-2.8.0
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$HADOOP_HOME/bin

再次执行 source ~/.bash_profile 使得文件立即生效

  • 修改etc/hadoop/core-site.xml将configurarion标签修改为:
    注意: 192.168.0.181是本文的测试地址,相应的,需要修改成自己虚拟机的ip地址,如果虚拟机不是桥接方式,则可以改为:127.0.0.1 9000是Hadoop的默认端口,建议先不要修改

        <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.181:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.8.0/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
  • 修改etc/hadoop/hdfs-site.xml

       <configuration>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop-2.8.0/hdfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop-2.8.0/hdfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.0.181:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>
    </configuration>

    以上,分别配置的是相应的几个节点和安全认证,文件目录会在服务开启时自动创建

dfs.permissions设置为false可以允许完全分布式模式下的多机访问
  • 修改etc/hadoop/yarn-site.xml

       <configuration>
    
       <!-- Site specific YARN configuration properties -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>192.168.0.181:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>192.168.0.181:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>192.168.0.181:8031</value>
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>192.168.0.181:8033</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>192.168.0.181:8088</value>
    </property>
    <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>6078</value>
    </property>
    </configuration>
  • 修改etc/hadoop/hadoop-env.sh

    # The java implementation to use.

    export JAVA_HOME=/usr/java/jdk1.8

       以上修改JAVA_HOME为绝对路径

  • 修改 etc/hadoop/mapred-site.xml
    注意: etc/hadoop/目录下并没有这个xml文件,仔细查找,有个mapred-site.xml.template把这个文件复制,重命名为mapred-site.xml并修改为:

            <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.0.181:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.0.181:19888</value>
</property>
</configuration>
  • 修改 etc/hadoop/yarn-env.sh
    在其中找到 export JAVA_HOME 并去掉注释,编辑java地址 export JAVA_HOME=/usr/java/jdk1.8

  • 修改etc/hadoop/slaves
    添加当前主机ip

至此,基本配置已经完毕

3. 列表项目

hadoop目录下执行如下指令,进行编译

 ./bin/hdfs namenode –format

出现如上图,表示编译成功。

4. 关闭防火墙:
关闭防火墙服务systemctl stop firewalld.service 
使防火墙服务不随机器启动systemctl disable firewalld.service
开启Hadoop服务

./sbin/start-all.sh

输入jps查看相关节点是否开启
打开浏览器:地址栏输入http://192.168.0.181:8088

使用过程中遇到的问题:

  • 问题一:nameNode节点无法启动,jps目录缺少相应活动程序
    在第一次格式化dfs后启动并使用了Hadoop,后来又重新执行了格式化命令hdfs namenode –format
    这时namenodeclusterID会重新生成,而datanodeclusterID 保持不变。
    从而导致两者的id不一致,出现一系列错误。
    解决办法:
    hadoop/hdfs目录下分别查看data/current下的VERSIONname/current下的VERSION文件对比两文件中的clusterID是否相同,若不同,使用name/current下的VERSION中的clusterID覆盖data/current下的clusterID. 修改后重新启动Hadoop即可

  • 问题二:如何配置单机互信?
    每次启动和关闭Hadoop的时候,都需要频繁输入多次密码,通过配置单机互信或者多机互信来简化操作:
    解决办法:
    使用指令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
    随后:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    并执行:chmod 600 .ssh/authorized_keys
    即可。

  • 问题三:在完全分布式模式下运行失败,无法登陆或没有访问权限
    解决办法:
    修改etc/hadoop/hdfs-site.xml
    添加

    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>

---------------------------------------------------------------------------------------------------------------

//系统环境的java+hadoop路径配置
vi /etc/profile
source /etc/profile

//当前目录环境的java+hadoop路径配置
vi ~/.bash_profile
source ~/.bash_profile

//关闭防火墙服务
systemctl stop firewalld.service

//使防火墙服务不随机器启动
systemctl disable firewalld.service

//数据格式化
./bin/hdfs namenode -format

//启动hadoop系统
./sbin/start-all.sh

//关闭hadoop系统
./sbin/stop-all.sh

CentOS 7_64位系统下搭建Hadoop_2.8.0分布式环境的更多相关文章

  1. Linux下搭建gtk+2.0开发环境

    安装gtk2.0 sudo apt-get install libgtk2.0-dev 查看 2.x 版本 pkg-config --modversion gtk+-2.0 #有可能需要sudo ap ...

  2. 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码

    Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...

  3. Centos 6.5系统下搭建Git服务器--失败历程

    参考博客 http://www.51hei.com/bbs/dpj-28077-1.html http://www.linuxidc.com/Linux/2014-06/103885p2.htm ht ...

  4. Centos7 系统下搭建.NET Core2.0+Nginx+Supervisor+Mysql环境

    好记性不如烂笔头! 一.简介 一直以来,微软只对自家平台提供.NET支持,这样等于让这个“理论上”可以跨平台的框架在Linux和macOS上的支持只能由第三方项目提供(比如Mono .NET).直到微 ...

  5. Windows下搭建Eclipse+Android4.0开发环境

    官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...

  6. Eclipse下搭建Hadoop2.4.0开发环境

    一.安装Eclipse 下载Eclipse,解压安装,例如安装到/usr/local,即/usr/local/eclipse 4.3.1版本下载地址:http://pan.baidu.com/s/1e ...

  7. Linux下搭建gtk+2.0开发环境

    1.执行如下命令,检查系统是否已安装gtk+ pkg-config --list-all |grep gtk 若命令提示如下,则系统已安装gtk+,否则未安装. 2.若未安装,则执行如下命令进行安装 ...

  8. CentOS和Ubuntu系统下安装 HttpFS (助推Hue部署搭建)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  9. linux CentOs 7.4 64位 系统下 nuxt部署 、nginx 安装、node环境及软连接,pm2软连接

    一.nginx安装 1.安装依赖包 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2 ...

随机推荐

  1. 由于没有公钥,无法验证下列签名 Ubuntu

    问题:执行 apt-get update 时错误 W: GPG 错误:https://apt.dockerproject.org ubuntu-trusty InRelease: 由于没有公钥,无法验 ...

  2. Linq使用中的ToList注意事项

    在使用Linq时,如果查询逻辑太复杂,可以拆分为多个Linq查询,下一个Linq在上一个Linq查询的结果上继续操作,这样逻辑清晰,又不会出错.但在使用ToList的时候需要注意,最常见碰到的错误是: ...

  3. Solr相似度算法二:Okapi BM25

    地址:https://en.wikipedia.org/wiki/Okapi_BM25   In information retrieval, Okapi BM25 (BM stands for Be ...

  4. Python2.4+ 与 Python3.0+ 主要变化与新增内容

    Python2                          Python3print是内置命令                 print变为函数print >> f,x,y     ...

  5. PXE+Kickstart无人值守安装系统re

    PXE(Preboot Excute Environment)预启动执行环境,可以让计算机通过网络启动系统,主要用于无人值守安装系统中引导客户端主机安装Linux操作系统. 由于之前有过使用cobbl ...

  6. 201621123023《Java程序设计》第8周学习总结

    一.本周学习总结 二.书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 由图可知,传入参数后调用indexOf函数来判断是否存在,会循环整个eleme ...

  7. 1415: 小ho的01串 [字符串]

    点击打开链接 1415: 小ho的01串 [字符串] 题目描述 有一个由0和1组成的字符串,它好长呀--------一望无际 恩,说正题,小ho的数学不太好,虽然是学计算机的但是看见0和1也是很头疼的 ...

  8. Vue 框架 笔记

    1.兼容 2.性能优化   vuejs ******作者:尤雨溪 *** *******MVVM框架: M:model层 数据层 数据的增删改查 V:view视图层 类似于html的模板 vm:vie ...

  9. 洛谷P2179 [NOI2012]骑行川藏(拉格朗日乘数法)

    题面 传送门 题解 看\(mashirosky\)大佬的题解吧--这里 //minamoto #include<bits/stdc++.h> #define R register #def ...

  10. Jmeter非GUI运行,生成html报告

    一.JMete执行方式 JMeter执行方式有2种,一种是GUI模式,一种是非GUI模式.GUI模式就是界面模式,非GUI模式就是命令行模式.界面模式主要用来编写和调试脚本用的,项目的真正执行最好是采 ...