centOS 6.5下搭建成功Hadoop伪分布式环境
jdk和hadoop安装包,可以到我的百度云盘下载(http://pan.baidu.com/s/1bn9zkZX)
操作系统:centos 6.5
JDK:jdk-7u45-linux-x64.rpm
HADOOP:hadoop-2.0.0-cdh4.7.0.tar.gz
我是在root用户下配置的
1、JDK
[root@localhost ~]# cd /usr/local/ 进入local目录,mkdir java 创建java目录,将jdk安装包拷贝到/usr/local/java中,
[root@localhost java]# rpm -ivh jdk-7u45-linux-x64.rpm 一路yes或回车至安装完毕。
配置环境变量
[root@localhost java]# vi /etc/profile,插入如下内容并保存
# set java environment
export JAVA_HOME=/usr/local/java/jdk1.7.0_45
export JRE_HOME=/usr/local/java/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
使环境变量生效
[root@localhost java]# source /etc/profile
验证是否安装成功
[root@localhost java]# java,可以看到一堆内容
[root@localhost java]# java -version,可以看到如下内容
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
恭喜你,jdk安装成功!
2、SSH
检查是否安装了ssh
[root@localhost ~]# rpm -qa | grep ssh
openssh-server-5.3p1-94.el6.x86_64
openssh-clients-5.3p1-94.el6.x86_64
libssh2-1.4.2-1.el6.x86_64
openssh-5.3p1-94.el6.x86_64
openssh-askpass-5.3p1-94.el6.x86_64
出现上述内容,说明ssh已经安装。
检查ssh服务状态
[root@localhost ~]# service sshd status
openssh-daemon (pid 2017) is running...
说明正在运行,如果服务关闭状态,则执行如下命令
[root@localhost ~]# service sshd start,启动ssh服务
设置开机自启动
[root@localhost ~]# chkconfig sshd on
检查是否设置成功,执行命令,出现如下内容,说明设置成功
[root@localhost ~]# chkconfig --list sshd
sshd 0:off 1:off2:on3:on4:on5:on6:off
设置免密码登录
[root@localhost ~]# cd 到根目录
[root@localhost ~]# ls -a 查看是否存在.ssh文件夹,不存在则创建一个
[hadoop@localhost ~]$ ssh-keygen -t dsa -P ' ' –f ~/.ssh/id_dsa
解释一下,ssh-keygen代表生成秘钥; -t(注意区分大小写)表示指定生成的秘钥类型;dsa是dsa密钥认证的意思。即秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。(其中~代表当前用户文件夹,如home/wade ),这条命令会在.ssh文件夹下创建id_dsa及id_dsa.pub两个文件,这是SSH的一对私钥和秘钥,类似于锁和钥匙。
[hadoop@localhost ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这条命令用于把公钥加到用于认证的公钥文件中。这里的authorized_keys是用于认证的公钥文件。
配置完毕,通过ssh 本机IP 测试,如果没有提示输入密码,则无密码登录配置成功!如果确实配置成功了,但是还是不能免密码登陆,这可能就是authorized_keys文件没有访问权限,执行命令:chmod 600 ~/.ssh/authorized_keys 即可!
3、hadoop
[root@localhost ~]# cd /usr/local/ 进入local目录,mkdir hadoop,创建hadoop目录,将安装包拷贝至此。
[root@localhost hadoop]# tar -zxvf hadoop-2.0.0-cdh4.7.0.tar.gz,解压到当前目录
配置环境变量 /etc/profile,插入如下内容
# set hadoop
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.0.0-cdh4.7.0
#export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_COMMOM_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/Sbin
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
修改hadoop配置文件
[root@localhost hadoop]# cd hadoop-2.0.0-cdh4.7.0/etc/hadoop/,进入目录
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.0.0-cdh4.7.0/tmp</value>
</property>
</configuration>
hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.7.0_45,修改路径
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hadoop-2.0.0-cdh4.7.0/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hadoop-2.0.0-cdh4.7.0/hdfs/data</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>localhost:9001</value>
<final>ture</final>
</property>
</configuration>
yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
slaves
127.0.0.1
格式化
[root@localhost hadoop]# hadoop namenode -format
hadoop配置完毕!
[root@localhost ~]# vi /etc/hosts,为如下内容
127.0.0.1localhost.localdomain localhost
::1 localhost.localdomain localhost
至此一切配置完毕,重启一下系统。
进入[root@localhost ~]# cd /usr/local/hadoop/hadoop-2.0.0-cdh4.7.0/sbin/ 目录,执行命令
[root@localhost sbin]# ./start-all.sh ,然后检查hadoop启动情况,执行如下命令
[root@localhost sbin]# jps
3035 NameNode
3575 NodeManager
6120 Jps
3158 DataNode
3322 SecondaryNameNode
3469 ResourceManager
看到上述内容,恭喜你成功啦!
查看一下 http://localhost:8088
http://localhost:50070
4、mapreduce例子
这里我就不多说了,推荐个我参见的好文章 http://blog.csdn.net/liuxiaochen123/article/details/8786715
在eclipse中开发mapreduce程序,需要引入以下5个jar包,可在hadoop安装目录中找到
commons-cli-1.2.jar
commons-logging-1.1.1.jar
guava-11.0.2.jar
hadoop-common-2.0.0-cdh4.7.0.jar
hadoop-mapreduce-client-core-2.0.0-cdh4.7.0.jar