> CentOS > CentOS服务器 > 环境配置 >

CentOS下Hadoop搭建与wordcount实例运行

最近在学习弄hadoop,遇到很多麻烦,这里记录下来是方便以后回头查看。我用的VMware Workstation 10.0.4下安装的CentOS7

安装配置jdk

java -version看是否安装java

用 env | grep JAVA_HOME 或者echo $JAVA_HOME $PATH 来检查环境变量配置的是否正确,如果没有可以到官网上下载。因为自带的jdk有点问题,我先卸载了自带的jdk:

首先检查linux下面时候安装过jdk

 # rpm -qa|grep jdk

java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64

java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64

然后卸载自带jdk

# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64

# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64

环境变量配置

然后用下面命令配置环境变量:

vi /etc/profile (该文件要切换到root下去编辑)

打开编辑的文件后, 在文件最后面添加如下内容

JAVA_HOME=/usr/java/jdk1.7.0_71  (这是我的安装目录,可以根据自己的定)

JRE_HOME=/usr/java/jdk1.7.0_71/jre

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JRE_HOME PATH CLASSPATH

保存退出, 最后运行下面命令, 使配置生效

source  /etc/profile

echo $JAVA_HOME $PATH 来检验是否配置正确

安装ssh服务

#rpm -qa |grep ssh 检查是否装了SSH包  没有的话yum install openssh-server

#chkconfig --list sshd 检查SSHD是否在本运行级别下设置为开机启动

#chkconfig --level 2345 sshd on  如果没设置启动就设置下.

#service sshd restart  重新启动

#netstat -antp |grep sshd  看是否启动了22端口.确认下.

#iptables -nL  看看是否放行了22口.

#setup---->防火墙设置   如果没放行就设置放行.

配置 hadoop ssh 密钥

# su - hadoop : 切换到 hadoop 用户;

$ ssh-keygen -t rsa

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

$ chmod 0600 ~/.ssh/authorized_keys

$ exit

安装hadoop

到hadoop官网上下载相应格式的源文件,我下的是hadoop2.6.0,解压后将得到的文件夹赋予当前用户执行权限

chmod a+x 文件 增加文件所有用户组可执行权限

chown -R liu /usr/local/hadoop-2.6.0/ (liu是当前用户名)

然后hadoop2.6.0的三种安装模式可以参考官方文档http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#YARN_on_Single_Node

我按照伪分布式模式进行安装的。

运行Wordcount实例

在一个文件夹下创建两个文件

如我在/home/liu/practice文件夹下创建两个文本文件

$ echo “Hello World” > file1.txt

$ echo “Hello Hadoop” > file2.txt

$ll   (可以查看创建的文件,用cat可以看文件内容)

创建输入文件夹

$ hadoop fs -mkdir /user/input

$ hadoop fs -ls /user   (显示创建的input目录信息)

将上面创建的文本文件复制到input目录下

$ hadoop fs -put /home/liu/practice/file*.txt /user/input

$ hadoop fs -ls /user/input (显示复制后的内容)

运行和查看结果

$ hadoop jar /usr/local/hadoop/hadoop-examles-2.6.0.jar wordcount /user/input /user/output

$ hadoop fs -ls /user/output (查看输出内容,结果就在part-r-00000中)

$ hadoop fs -cat /user/output/part-r-00000 (查看输出结果)

 

(责任编辑:IT)