本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识。
首先安装Hadoop之前需要准备安装环境。
安装Centos6.5(64位)。(操作系统再次不做过多描述,自行百度)安装JDK1.7(64位)。安装Hadoop2.2(稳定版本64位)注意:以上三者版本需要统一,必须同为64位/32位
1.安装JDK1.7
下载JDK1.7,然后拷贝到指定目录
cd /usr/local/
解压缩:tar -zxvf jdk1.7配置环境变量:
vim /etc/profile.d/java.sh 添加如下内容: CLASSPATH=$JAVA_HOME/lib:$CLASSPATH PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH执行:
source /etc/profile.d/java.shjava -version显示出JDK相关信息
2.配置hosts文件,使访问更加方便
vim /etc/hosts在文件末尾加入:
192.168.1.1(本机ip) taurus(本机域名)3.关闭防火墙:
查看防火墙状态:service iptables status 关闭防火墙:chkconfig iptables off(永久性生效) service iptables stop(即时生效,重启后复原)4.SSH无密码验证配置
创建hadoop用户组
groupadd hadoop创建hadoop用户
useradd group group为hadoop用户设置密码
passwd hadoop创建.ssh文件
mkdir .ssh使用命令生成密钥:
ssh-keygen -t rsa用公钥生成认证文件
cp id_rsa.pub authorized_keys赋予文件权限
chmod 700.ssh chmod 600 .ssh/*然后使用ssh连接当前节点,ssh taurus(本机域名) 如果提示ssh未安装执行命令:
yum -y install openssh-clients如果还是提示下列错误:
ssh: connect to host taurus port 22: Connection refused说明ssh-server没有安装
sudo apt-get install openssh-server 进行安装然后在使用ssh localhost应该会连接成功。
5.开始搭建伪分布式环境
下载hadoop2.2.0安装包
wget http://hadoop.f.dajiangtai.com/hadoop2.2/hadoop-2.2.0-x64.tar.gz解压安装包:
tar -zxvf hadoop-2.2.0-x64.tar.gz重命名hadoop-2.2.0-x64.tar.gz
mv hadoop-2.2.0-x64.tag.gz hadoop将haddop文件夹的权限赋予hadoop用户
chown -R hadoop:hadoop hadoop创建hadoop数据目录--3个
root@taurus:/usr/local# mkdir -p /data/dfs/name root@taurus:/usr/local# mkdir -p /data/dfs/data root@taurus:/usr/local# mkdir -p /data/tmp将创建的文件夹权限赋予hadoop用户
root@taurus:/usr/local# chown -R hadoop:hadoop hadoop /data然后切换到hadoop用户,进入hadoop文件夹下etc/hadoop目录:
su hadoop cd etc/hadoop vim core-site.xml添加如下内容到core-site.xml文件
默认HDFS路径
存放数据的公共目录
设置hadoop安全机制的代理用户和用户组
修改hdfs-site.xml文件,添加如下内容:
Namenode文件目录
Datanode文件目录
数据快副本
HDFS权限
接下来配置mapred-site.xml文件:
由于没有mspred-dite.xml文件,因此需要复制mapred-site.xml.template
cp mapred-site.xml.template mapred-site.xmlvim mapred-site.xml添加如下内容:
制定mapreduce环境为yarn;
配置yarn-site.xml文件,添加如下内容:
为了使mapreduce程序运行起来,需要nodemanager启动加载shuffle
修改slaves文件:(指定namenode路径)由于当前配置伪分布时集群,所以namenode和datanode在同一个节点上。
配置hadoop环境变量:
su root
vim /etc/profile
添加如下内容:
使配置文件生效使用source命令:
source /etc/profilesu hadoop
进入安装目录
cd /usr/local/hadoop然后格式化namenode
bin/hadoop namenode -format没有报错,接下来我们就可以启动hadoop了:
cd /usr/lcoal/hadoop sbin/satrt-all.sh如果启动时报Error: JAVA_HOME is not set and could not be found
解决办法:修改/etc/hadoop/hadoop-env.sh中设的JAVA_HOME。
应当使用绝对路径:
export JAVA_HOME=${JAVA_HOME} //文档原来的(错误) export JAVA_HOME=/usr/local/jdk1.7 //正确,应该这么改然后再次启动sbin/start-all.sh
成功后,jps显示如下:
打开浏览器:
访问http://taurus(对应你本机域名):50070 --查看namenode文件和集群的状态
接下来使用hadoop自带wordcount程序运行测试
在hadoop文件目录下,执行如下操作:
vim wordcount.txt 添加如下内容: alan hadoop alan hadoop alan hadoop 保存退出查看hadoop根目录下文件:
hadoop fs -ls /
创建一个测试目录:
hadoop fs -mkdir /taurus
将刚才创建的文件上传到测试目录:
hadoop fs -put /usr/local/hadoop/wordcount.txt /sample执行wordcount程序:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-2.2.0.jar wordcount /sample/wordcount.txt /sample/wordcount-out在浏览器访问http://taurus(自己的域名):8088/cluster/apps
查看程序的运行状态。
在浏览器访问http://taurus(自己的域名):50070
查看程序的运行结果。
转载于:https://www.cnblogs.com/pekxxoo/p/hadoop_01.html
相关资源:linux虚拟机搭建hadoop伪分布式集群