Hadoop CentOS 7 安装配置

本篇根据 给力星 改动而来,文尾有来源

简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
[1] Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
来源:百科

JAVA JDK

http://blog.csdn.net/fenglailea/article/details/26006647
环境变量设置
http://blog.csdn.net/fenglailea/article/details/52457731
风.fox

环境说明

Centos 7.1 服务器
Hadoop 2.7.3

下载地址

http://archive.apache.org/dist/hadoop/common/
当前最新版 2.7.3

wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar zxvf hadoop-2.7.3.tar.gz

安装Hadoop

cd ~
mv hadoop-2.7.3 /home/hadoop/hadoop   #目录位置

chmod -R +x /home/hadoop/hadoop/bin    # 修改文件权限
chmod -R +x /home/hadoop/hadoop/sbin   # 修改文件权限

mkdir -p /home/hadoop/hadoop/tmp

配置

配置文件 core-site.xml

vim /home/hadoop/hadoop/etc/hadoop/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>file:/home/hadoop/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

配置文件 hdfs-site.xml:

vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml

修改为

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

设置用户

JAVA 环境变量也要在此用户中设置
注意:如果不设置用户,那么将会已root用户启动,并且每次启动都要输入root的秘密
创建用户

useradd -m hadoop -s /bin/bash     # 创建hadoop用户
passwd hadoop          # 修改密码,这个时候会让你输入密码2次
usermod -G root hadoop    # 增加管理员权限

设置管理员或用户组权限
执行命令

visudo

方法一
找到以下 一行 去除 前缀#号

%wheel  ALL=(ALL)       ALL

方法二
在root 那行增加 hadoop一行,如下所示

root    ALL=(ALL)       ALL
hadoop    ALL=(ALL)       ALL

应用设置

  • 方法一: 退出当前用户,改用hadoop登录,用命令su –,即可获得root权限进行操作
  • 方法二:重新启动系统

设置无密码登录

切换用户

su hadoop

进入当前用户目录 hadoop

cd ~
pwd

pwd 命令会显示如下目录

/home/hadoop

生成秘钥

mkdir -p /home/hadoop/.ssh
cd ~/.ssh/
ssh-keygen -t rsa    #如有提示,直接按回车
cat id_rsa.pub >> authorized_keys  # 加入授权

启动

格式化

/home/hadoop/hadoop/bin/hdfs namenode -format       # namenode 格式化

输出如下信息正常,如有其他问题请看FAQ

16/11/24 15:09:53 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
16/11/24 15:09:53 INFO util.ExitUtil: Exiting with status 0
16/11/24 15:09:53 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1
************************************************************/

启动

/home/hadoop/hadoop/sbin/start-dfs.sh               # 开启守护进程

判断是否启动成功

jps

出现以下进程 表明启动成功

2433 NameNode
2801 SecondaryNameNode
2911 Jps
2600 DataNode

关闭

/home/hadoop/hadoop/sbin/stop-dfs.sh   #这个是关闭命令

更多请看以下目录下

/home/hadoop/hadoop/sbin/
/home/hadoop/hadoop/bin/

运行 WordCount 实例:

/home/hadoop/hadoop/bin/hdfs dfs -mkdir -p /user/hadoop     # 创建HDFS目录
/home/hadoop/hadoop/bin/hdfs dfs -mkdir input
/home/hadoop/hadoop/bin/hdfs dfs -put /home/hadoop/hadoop/etc/hadoop/*.xml input  # 将配置文件作为输入
/home/hadoop/hadoop/bin/hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
/home/hadoop/hadoop/bin/hdfs dfs -cat output/*                # 查看输出

配置hadoop 环境变量

vim ~/.bashrc

最后一行加入

export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

这些变量在启动 Hadoop 进程时需要用到,不设置的话可能会报错(这些变量也可以通过修改 /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh 实现)。

集群配置

请看
http://www.powerxing.com/install-hadoop-simplify/
http://www.powerxing.com/install-hadoop-cluster/ 集群
http://www.powerxing.com/install-hadoop/ 伪分布式(单机多个进程)

FAQ

1. SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1

主机名称问题
编辑以下文件查看主机名称是否是 localhost,如果不是则修改。一般只改第一个就可以解决问题

vim /etc/hostname

HOSTS

vim /etc/hosts

如果有 localhost.localdomain(如下) 把它修改为 localhost

127.0.0.1  localhost localhost.localdomain

重启系统

reboot

这里有一个讨巧的方法,上面一步重启不执行,执行

hostname localhost

这个意思是临时修改主机名称

2 mkdir: Call From localhost/127.0.0.1 to localhost:9000 failed on connection exception

mkdir: Call From localhost/127.0.0.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:
http://wiki.apache.org/hadoop/ConnectionRefused

出现这个问题的原因,你没有格式化,先退出,重新执行格式化命令

查看:
http://www.powerxing.com/install-hadoop-simplify/

    原文作者:MapReduce
    原文地址: https://yq.aliyun.com/articles/66204
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞