最近在学习大数据,需要安装Hadoop,自己弄了好久,最后终于弄好了。网上也有很多文章关于安装Hadoop的,但总会遇到一些问题,所以把在CentOS 7安装Hadoop 3.0.0的整个过程记录下来,有什么不对的地方大家可以留言更正。

  一、ssh免密登录

1、测试是否能免密登录

  1.       # ssh localhost

The authenticity of host 'localhost (::1)' can't be established.

2、设置免密登录

1)、去掉 /etc/ssh/sshd_config中的两行注释,如没有则添加,所有服务器都要设置的:

  1.         #RSAAuthentication yes
  2.         #PubkeyAuthentication yes

2)、生成秘钥:

  1. # ssh-keygen -t rsa

备注:输入命令后回车4次

3)、复制到公共密钥中:

  1. # cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

4)、将秘钥复制到目标服务器:

  1. # ssh-copy-id 目标服务器IP

5)、测试:(没有报错,并没有提示输入目标服务器用户密码,用户切换到目标服务器用户名则成功)

  1. # ssh 目标服务器IP

备注:配置好了hadoop1到hadoop2免密登录,同时需要配置hadoop2到hadoop1的免密登录,在hadoop2上操作,过程同上

  二、安装JDK

hadoop-3.0.0需要jdk1.8,此处省略安装过程,网上很多,过程也比较简单

  三、安装hadoop

1、下载hadoop:

http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

2、解压安装:

 1)、复制 hadoop-3.0.0.tar.gz 到/usr/hadoop目录下, 然后

  1.   #tar -xzvf hadoop-3.0.0.tar.gz

解压,解压后目录为:/usr/hadoop/hadoop-3.0.0,Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

  1. #cd /usr/hadoop/hadoop-3.0.0
  2.         #./bin/hadoop version

2),在/usr/hadoop/目录下,建立tmp:

  1. #mkdir /usr/hadoop/tmp

3)、设置环境变量:

  1. #vi /etc/profile
            # set hadoop path
            export HADOOP_HOME=/usr/hadoop/hadoop-3.0.0
            export PATH=$PATH:$HADOOP_HOME/bin

4)、使环境变量生效,终端中运行如下命令:

  1. #source /etc/profile

5)、设置hadoop:     

一共需要配置主要的6个文件:

  hadoop-3.0.0/etc/hadoop/hadoop-env.sh

  hadoop-3.0.0/etc/hadoop/yarn-env.sh

  hadoop-3.0.0/etc/hadoop/core-site.xml

  hadoop-3.0.0/etc/hadoop/hdfs-site.xml

  hadoop-3.0.0/etc/hadoop/mapred-site.xml 

          hadoop-3.0.0/etc/hadoop/yarn-site.xml

        ⑴、配置hadoop-env.sh:

  1.           # The java implementation to use.
  2.           #export JAVA_HOME=${JAVA_HOME}
  3.           export JAVA_HOME=/usr/java/jdk1.8.0_152 //根据自己jdk安装目录配置

⑵、配置yarn-env.sh:

  1.           #The java implementation to usr
  2.           export JAVA_HOME=/usr/java/jdk1.8.0_152 //根据自己jdk安装目录配置

⑶、配置core-site.xml:

  1.   <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
              <configuration>
  2.            <property>
  3.           <name>fs.default.name</name>
  4.           <value>hdfs://localhost:9000</value>
  5.           <description>HDFS的URI,文件系统://namenode标识:端口号</description>
  6.             </property>
  7.  
  8.             <property>
  9.           <name>hadoop.tmp.dir</name>
  10.           <value>/usr/hadoop/tmp</value>
  11.           <description>namenode上本地的hadoop临时文件夹</description>
  12.             </property>
  13.           </configuration>

⑷、配置hdfs-site.xml:

  1.   <configuration>
  2.           <!—hdfs-site.xml-->
  3.             <property>
  4.           <name>dfs.replication</name>
  5.           <value>1</value>
  6.           <description>副本个数,配置默认是3,应小于datanode机器数量</description>
  7.             </property>
  8.           </configuration>

⑸、配置mapred-site.xml:

  1.   <!-- 指定mr运行在yarn上 -->
              <configuration>
  2.             <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>yarn</value>
  5.             </property>
  6.           </configuration>

⑹、配置yarn-site.xml:

  1.   <!-- 指定YARN的老大(ResourceManager)的地址 -->
              <configuration>
  2.             <property>
  3.           <name>yarn.nodemanager.aux-services</name>
  4.           <value>mapreduce_shuffle</value>
  5.             </property>  

     <!-- reducer获取数据的方式 -->
             <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
             </property>

   </configuration>

  备注:以上配置都是以最简配置,还有很多配置可以自行添加

       6)、将/usr/hadoop复制到其他服务器:

          scp -r /usr/hadoop root@192.168.1.11:/usr/hadoop

 7)、格式化namenode:  

  1.   #CD /usr/hadoop/hadoop-3.0.0
  2.           # ./bin/hdfs namenode -format

  成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错          

  备注:只需格式化namenode,datanode不需要格式化(若格式化了,可将/usr/hadoop/tmp目录下文件都删除),所以先将安装文件夹复制到其他服务器,再格式化

    四、测试:

      1、启动HDFS:

  1.       #CD /usr/hadoop/hadoop-3.0.0
  2.       # sbin/start-dfs.sh

如果运行脚本报如下错误,

ERROR: Attempting to launch hdfs namenode as root
      ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
      Starting datanodes
      ERROR: Attempting to launch hdfs datanode as root
      ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
      Starting secondary namenodes [localhost.localdomain]
      ERROR: Attempting to launch hdfs secondarynamenode as root
      ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.

解决方案

(缺少用户定义而造成的)因此编辑启动和关闭

  1.       $ vim sbin/start-dfs.sh
  2.       $ vim sbin/stop-dfs.sh

顶部空白处添加

  1.       HDFS_DATANODE_USER=root
  2.       HADOOP_SECURE_DN_USER=hdfs
  3.       HDFS_NAMENODE_USER=root
  4.       HDFS_SECONDARYNAMENODE_USER=root

2)启动ResourceManager和NodeManager:

  1.       #CD /usr/hadoop/hadoop-3.0.0
  2.       #sbin/start-yarn.sh

      如果启动时报如下错误,

      Starting resourcemanager
      ERROR: Attempting to launch yarn resourcemanager as root
      ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.

      解决方案

(也是由于缺少用户定义)

      是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本 

  1.       $ vim sbin/start-yarn.sh
  2.       $ vim sbin/stop-yarn.sh

顶部空白添加

  1.       YARN_RESOURCEMANAGER_USER=root
  2.       HADOOP_SECURE_DN_USER=yarn
  3.       YARN_NODEMANAGER_USER=root

3)、启动验证:

执行jps命令,出现下图基本完成

备注:也可以使用下面命令同时启动HDFS和ResourceManager、NodeManager:

  1.       #CD /usr/hadoop/hadoop-3.0.0
  2.       #sbin/start-all.sh

Hadoop2.3-HA高可用集群环境搭建  http://www.linuxidc.com/Linux/2017-03/142155.htm

Hadoop项目之基于CentOS7的Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

Hadoop2.7.2集群搭建详解(高可用)  http://www.linuxidc.com/Linux/2017-03/142052.htm

使用Ambari来部署Hadoop集群(搭建内网HDP源)  http://www.linuxidc.com/Linux/2017-03/142136.htm

Ubuntu 14.04下Hadoop集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

CentOS 6.7安装Hadoop 2.7.2  http://www.linuxidc.com/Linux/2017-08/146232.htm

Ubuntu 16.04上构建分布式Hadoop-2.7.3集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-02/150812.htm

CentOS 7安装Hadoop 3.0.0的更多相关文章

  1. CentOS下安装hadoop

    CentOS下安装hadoop 用户配置 添加用户 adduser hadoop passwd hadoop 权限配置 chmod u+w /etc/sudoers vi /etc/sudoers 在 ...

  2. Centos 6.5 hadoop 2.2.0 全分布式安装

    hadoop 2.2.0 cluster setup 环境: 操作系统:Centos 6.5 jdk:jdk1.7.0_51 hadoop版本:2.2.0 hostname    ip master ...

  3. CentOS 6.5 伪分布式 安装 hadoop 2.6.0

    安装 jdk -openjdk* 检查安装:java -version 创建Hadoop用户,设置Hadoop用户使之可以免密码ssh到localhost su - hadoop ssh-keygen ...

  4. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  5. 安装hadoop 2.2.0

    安装环境为 CentOS 64位系统, 大概分下面几个步奏, 0. 安装JDK1. 配置SSH2. 配置/etc/hosts3. 拷贝hadoop包到没台机器上4. 修改hadoop配置文件5. 关闭 ...

  6. 如何在Ubuntu/CentOS上安装Linux内核4.0

    大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...

  7. CentOS7.0分布式安装HADOOP 2.6.0笔记-转载的

    三台虚拟机,IP地址通过路由器静态DHCP分配 (这样就无需设置host了). 三台机器信息如下 -      1. hadoop-a: 192.168.0.20  #master     2. ha ...

  8. 64位CentOS上编译 Hadoop 2.2.0

    下载了Hadoop预编译好的二进制包,hadoop-2.2.0.tar.gz,启动起来后.总是出现这样的警告: WARN util.NativeCodeLoader: Unable to load n ...

  9. CentOS 7 安装 Oracle 11.2.0.4

    一.安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二.安装前准备 2.1 修改主 ...

随机推荐

  1. GRYZ 模 拟 赛 系 列 Xxy 的车厢调度

    Xxy 的车厢调度(train.cpp/c/pas)Description有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入,再从 B 方向驶出,同时它的车厢可以重新组合.假设 ...

  2. BZOJ.1034.[ZJOI2008]泡泡堂(贪心)

    题目链接 容易想到田忌赛马.但是是不对的,比如2 3对1 3,按田忌赛马策略会3->1 2->3,但是3->3 2->1显然更优. 而如果按己方最强>=对方最强则开打,也 ...

  3. hdu 4169 二分匹配最大独立集 ***

    题意:有水平N张牌,竖直M张牌,同一方向的牌不会相交.水平的和垂直的可能会相交,求最少踢出去几张牌使剩下的牌都不相交. 二分匹配 最小点覆盖=最大匹配. 链接:点我 坐标点作为匹配的端点 #inclu ...

  4. KVM源代码框架

    自己通过看代码总结的内核中包含kvm的文件夹: (1)Linux-3.17.4\Documentation\virtual\kvm\ (2)Linux-3.17.4\include\ (3)Linux ...

  5. Codeforces Round #369 (Div. 2) D. Directed Roads 数学

    D. Directed Roads 题目连接: http://www.codeforces.com/contest/711/problem/D Description ZS the Coder and ...

  6. oracle切割以,隔开的数字字符串

    提前声明strsplit_typeCREATE OR REPLACE TYPE strsplit_type as table of varchar2(4000); 如果不,会报错:PLS-00201: ...

  7. 10分钟上手python pandas

    目录 Environment 开始 对象创建 查看数据 选择 直接选择 按标签选择 按位置选择 布尔索引 设置 缺失数据 操作 统计 应用(apply) 直方图化(Histogramming) 字符串 ...

  8. 没用过的函数 GetHomePath - 获取用户程序数据目录

    uses System.IOUtils; procedure TForm1.FormCreate(Sender: TObject); var S: string; begin { 三种方法结果一致: ...

  9. HDU 4778 Gems Fight! (2013杭州赛区1009题,状态压缩,博弈)

    Gems Fight! Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 327680/327680 K (Java/Others)T ...

  10. c#调用刀片小票打印机

    public static bool Print(int orderId, string orderTime) { bool b = true; string cut = ((char)29).ToS ...