本篇根据 给力星 改动而来,文尾有来源
简介
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
出现这个问题的原因,你没有格式化,先退出,重新执行格式化命令