CentOS下Hadoop搭建与wordcount实例运行
时间:2015-01-07 15:07 来源:linux.it.net.cn 作者:IT网
最近在学习弄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)
最近在学习弄hadoop,遇到很多麻烦,这里记录下来是方便以后回头查看。我用的VMware Workstation 10.0.4下安装的CentOS7 安装配置jdkjava -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) |