Centos下Hadoop2.6.1单机/伪分布式安装配置教程

(1)配置本机SSH无密码登陆

    参考文章:ssh如何不用输入密码(RSA密钥)登录

    执行:

ssh localhost

SSH首次登陆提示

    输入yes,不用输入就能登陆即为成功。

(2)安装jdk

  参考文章:CentOS6.4 64位系统安装jdk

(3)安装hadoop

wget http://apache.fayea.com/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar zxvf  hadoop-2.6.0.tar.gz 
mv hadoop-2.6.0 /opt/
useradd hadoop
chown -R hadoop:hadoop /opt/hadoop-2.0.6

(4)hadoop单机配置

cd /opt/hadoop-2.6.0
mkdir input
cp etc/hadoop/*.xml input/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
cat output/*

执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词dfsadmin出现了1次
Hadoop单机WordCount输出结果

Hadoop单机WordCount输出结果。


再次运行会提示出错,需要将./output删除。

rm -R ./output

(5)Hadoop伪分布式配置

       Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的Java进程来运行,节点即是NameNode也是DataNode。需要修改2个配置文件etc/hadoop/core-site.xmletc/hadoop/hdfs-site.xml。Hadoop的配置文件是xml格式,声明property的name和value。

vim etc/hadoop/core-site.xml

<configuration>
</configuration>

修改为:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
vim etc/hadoop/hdfs-site.xml

修改为:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

关于配置的一点说明:上面只要配置 fs.defaultFS 和 dfs.replication 就可以运行,不过有个说法是如没有配置 hadoop.tmp.dir 参数,此时 Hadoop 默认的使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在每次重启后都会被干掉,必须重新执行 format 才行(未验证),所以伪分布式配置中最好还是设置一下。此外也需要显式指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则下一步可能会出错。


配置完成后,首先,初始化文件系统 HDFS:

bin/hdfs namenode -format

成功的话,最后的提示如下,Exitting with status 0 表示成功,Exitting with status 1: 则是出错。若出错,可试着加上 sudo, 既 sudo bin/hdfs namenode -format 试试看。

初始化HDFS文件系统


接着,开启NaneNode和DataNode守护进程。

sbin/start-dfs.sh

若出现下面SSH的提示,输入yes即可。

启动Hadoop时的SSH提示

成功启动后,可以通过命令jps看到启动了如下进程NameNode、DataNode和SecondaryNameNode。

通过jps查看启动的Hadoop进程

此时还可以访问Web界面http://localhost:50070来查看Hadoop的信息。


Hadoop的Web界面

通过查看启动日志分析启动失败原因


有时Hadoop无法正确启动,如 NameNode 进程没有顺利启动,这时可以查看启动日志来排查原因,不过新手可能需要注意几点:

  • 启动时会提示形如 “Master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-Master.out”,其中 Master 对应你的机器名,但其实启动日志信息是记录在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-Master.log 中,所以应该查看这个 .log 的文件;

  • 每一次的启动日志都是追加在日志文件之后,所以得拉到最后面看,这个看下记录的时间就知道了。

  • 一般出错的提示在最后面,也就是写着 Fatal、Error 或者 Java Exception 的地方。





by 雪洁 2015-05-26 01:48:02 2186 views
我来说几句

相关文章