您的位置:首页 > 大数据 > Hadoop

win8的vmware中的centOS6.6上安装hadoop2.7.0伪分布式部署

2015-05-15 13:54 716 查看
1. 首先,下载用到的所有文件

vmware,VMware-workstation-full-11.1.0.58002.1428919414.exe

centOS6.6,http://wiki.centos.org/Download,这里我下载64位的centOS6.6,dvd1版本

jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,这里我下载jdk-7u79-linux-x64.rpm

hadoop,http://hadoop.apache.org/releases.html,这里我下载2.7.0的binary版本。

hadoop的native的64位包,http://dl.bintray.com/sequenceiq/sequenceiq-bin/,这里我下载hadoop-native-64-2.6.0.tar

2. 安装vmware,安装完成后,创建虚拟机

3. 创建一个centOS的虚拟机,root密码也设置为root。安装centOS6.6过程中出错,提示需打开bios的intel VT-x,上网查了一下,应该在bios的高级设置里有,我的thinkpad笔记本可能特殊,我在security中找到intel VT-d,把那两个选项都设置为enabled后,重启,安装centOS成功。

4. 在centOS中安装jdk。把jdk-7u79-linux-x64.rpm、hadoop-2.7.0.tar.gz、hadoop-native-64-2.6.0.tar拷贝到centOS中,在/usr中创建jdk、hadoop目录,将安装文件分别mv进去。

执行#java -version,提示有误,证明当前没有安装任何jdk。

执行

#rpm -ivh jdk-7u79-linux-x64.rpm

直至安装成功。

修改环境变量:

#vi /etc/profile


在文件的最下方增加(这里把hadoop的相关内容也加进来了,也可稍后配置)

export JAVA_HOME=/usr/java/jdk1.7.0_79
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.0
export CLASSPATH=.$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

保存后执行#source /etc/profile

5. 安装hadoop。

测试ssh,执行#ssh,没报错,相当于已安装了ssh。(dvd1中带ssh)

配置免密码ssh,执行

#ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

没报错即执行成功。

执行#tar -zxvf hadoop-2.7.0.tar.gz,获得解压后的hadoop-2.7.0目录。进入目录后,执行修改配置文件操作。

配置etc/hadoop/core-site.xml:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>


配置etc/hadoop/hdfs-site.xml:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>


格式化namenode

执行

#bin/hdfs namenode -format

安装完成(基本完成,但后来报错了,还得调)

6. 执行启动hadoop

#sbin/start-all.sh

停止hadoop

#sbin/stop-all.sh


检测是否安装成功。查看http://localhost:50070/

我的hadoop没启动成功。启动日志中提示:localhost: Error: JAVA_HOME is not set and could not be found.

添加了第4节中的/etc/profile文件的JAVA_HOME后也没有效果,各种export JAVA_HOME=jdkpath也不好使。

最后在libexec/hadoop-config.sh文件中增加了“export JAVA_HOME=/usr/java/jdk1.7.0_79”才好使。

# Attempt to set JAVA_HOME if it is not set
export JAVA_HOME=/usr/java/jdk1.7.0_79
if [[ -z $JAVA_HOME ]]; then
# On OSX use java_home (or /Library for older versions)
if [ "Darwin" == "$(uname -s)" ]; then
if [ -x /usr/libexec/java_home ]; then
export JAVA_HOME=($(/usr/libexec/java_home))
else
export JAVA_HOME=(/Library/Java/Home)
fi
fi

# Bail if we did not detect it
if [[ -z $JAVA_HOME ]]; then
echo "Error: JAVA_HOME is not set and could not be found." 1>&2
exit 1
fi
fi

这时hadoop可以启动了,但是执行过程中还是有问题,报:warn Unable to load native-hadoop library for your platform

真悲剧,上网查了各种原因,都说是系统是64位,而hadoop是32位的,通过file检查,发现我下载的2.7.0是64位,有些说在2.6(是2.6还是2.4来着,记不清了)以后hadoop都是提供64位的了,但为什么我的centOS是64位(uname -a 查看linux的位数),hadoop也是64位,最后还出现这问题呢。

这时使用到hadoop-native-64-2.6.0.tar文件了,将lib/native/lib*的文件备份,将hadoop-native-64-2.6.0.tar直接解压在lib/native/中,tar包中也是这些lib*文件啦。重启hadoop,发现启动正常,一切ok啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: