hadoop学习(一)-- centos 64位编译安装hadoop


hadoop的默认下载版本是32位的,但是本人的系统时64位,所以在安装hadoop的时候出现了Unable to load native-hadoop library for your platform 问题,所以笔者现在要用编译安装的方式来安装hadoop


环境:

maven : 3.3.3

hadoop: 2.7.1

jdk : 1.7

centos : 6.6-64位


1.下载hadoop源码包

wget http://archive.apache.org/dist/hadoop/core/stable/hadoop-2.7.1-src.tar.gz

解压压缩包

tar -zvxf hadoop-2.7.1-src.tar.gz 

将压缩包移动到安装目录

mkdir /opt/hadoop/hadoop-2.7.1-64
mv hadoop-2.7.1-src/* /opt/hadoop/hadoop-2.7.1-64/
cd /opt/hadoop/hadoop-2.7.1-64/

maven编译之前,要安装protobuf,本人使用2.5版本,可以从http://pan.baidu.com/s/1pJlZubT进行下载

解压:

tar -zvxf protobuf-2.5.0.tar.gz
移到安装目录

mv protobuf-2.5.0 /opt/


安装依赖

yum install gcc
yum install gcc-c++
yum install make

yum install cmake
yum install openssl-devel
yum install ncurses-devel



安装protobuf:不安装的话会出现 org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version问题

cd /opt/protobuf-2.5.0/

./configure --prefix=/opt/protoc/

make && make install

编译完成以后,将protoc添加到path中

vim /etc/profile

添加protoc环境变量:其中PROTOC_HOME是protoc环境变量,PATH中添加:$PROTOC_HOME/bin

export PROTOC_HOME=/opt/protoc
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$MAVEN_HOME/bin:$PROTOC_HOME/bin

刷新配置

source /etc/profile


在maven编译之前安装maven,http://blog.csdn.net/mingtian625/article/details/48184485


maven编译本地包:

cd /opt/hadoop/hadoop-2.7.1-64/

mvn package -Pdist,native -DskipTests -Dtar



编译成功后的hadoop路径在/opt/hadoop/hadoop-2.7.1-64/hadoop-dist/target/hadoop-2.7.1/bin下面

cd /opt/hadoop/hadoop-2.7.1-64/hadoop-dist/target/hadoop-2.7.1/bin
./hadoop version

查看版本信息

Hadoop 2.7.1
Subversion Unknown -r Unknown
Compiled by root on 2015-09-03T06:28Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /opt/hadoop/hadoop-2.7.1-64/hadoop-dist/target/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar


查看编译hadoop的编译


cd /opt/hadoop/hadoop-2.7.1-64/hadoop-dist/target/hadoop-2.7.1
file lib//native/*

查看打印信息,可以看出编译版本是64bit

lib//native/libhadoop.a:        current ar archive
lib//native/libhadooppipes.a:   current ar archive
lib//native/libhadoop.so:       symbolic link to `libhadoop.so.1.0.0'
lib//native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib//native/libhadooputils.a:   current ar archive
lib//native/libhdfs.a:          current ar archive
lib//native/libhdfs.so:         symbolic link to `libhdfs.so.0.0.0'
lib//native/libhdfs.so.0.0.0:   ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped





hadoop目录结构介绍:



bin:可执行命令

etc:hadoop的配置文件

include: C或C++的一些头文件

libexec: - - -

lib:本地库

sbin:执行脚本,启动,停止等

share:引用的jar包




将编译后的hadoop-64bit移动到安装目录:

mkdir /opt/hadoop/hadoop271-64
cp -r /opt/hadoop/hadoop-2.7.1-64/hadoop-dist/target/hadoop-2.7.1/* /opt/hadoop/hadoop271-64





2.3hadoop配置文件修改(共五个)

打开配置文件所在目录:

/opt/hadoop/hadoop271-64/etc/hadoop



第一个:
hadoop-env.sh:hadoop环境变量

vim hadoop-env.sh

将hadoop-env.sh的

# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}

修改为jdk所在的位置:

# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.7.0_75



第二个:

core-site.xml:

vim core-site.xml

在<configuration></configuration>之间添加

 <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop115:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop/hadoop271-64/tmp</value>
        </property>

hadoop115是我的主机名,查看主机名的指令:hostname

其中 fs.defaultFS指的是   用来指定hdfs的namenode的地址

hadoop.tmp.dir指的是hadoop运行时产生文件的存放目录



第三个:

hdfs-site.xml:

vim hdfs-site.xml
在<configuration></configuration>之间添加

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

dfs.replication指的是保存副本的数量





第四个:

mapred-site.xml:使用mapred-site.xml.template来复制一份mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

在<configuration></configuration>之间添加

<property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

这个配置指的是  mapreduce运行在yarn上






第五个

yarn-site.xml:

vim yarn-site.xml 

在<configuration></configuration>之间添加

<property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop115</value>
        </property>


hadoop115是我的主机名,查看主机名的指令:hostname

yarn.nodemanager.aux-services:指的是nodemanager获取数据的方式是shuffle

yarn.resourcemanager.hostname:指定yarn的老大(resourcemanager)的地址




2.4将hadoop添加到环境变量

vim /etc/profile
在文件末尾添加hadoop的home

export HADOOP_HOME=/opt/hadoop/hadoop271-64

将hadoop的bin目录添加到PATH,格式为 :$HADOOP_HOME/bin , 下面是我的配置,大家忽略掉我的java配置即可,重要的是hadoop的home配置

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

使配置生效:

source /etc/profile



2.5初始化HDFS(格式化文件系统)

打开bin目录

cd /opt/hadoop/hadoop271-64/bin

初始化namenode:

hdfs  namenode -format


可以看到,初始化成功了



可以看到,hadoop271-64目录下,多了一个tmp目录



启动hadoop:

cd /opt/hadoop/hadoop271-64/sbin
 ./start-all.sh

启动过程中可能需要需要多次输入 密码,如果不想要输入密码的话,请看我的    hadoop学习(二)-- 配置ssh免登陆

在浏览器中查看hadoop信息:

先关闭防火墙

service iptables stop


启动完成后食用jps命令查看,表示启动成功

[root@hadoop115 sbin]# jps
2896 DataNode
3509 NodeManager
3222 ResourceManager
3639 Jps
2772 NameNode
3060 SecondaryNameNode







在浏览器中查看hadoop信息:

先关闭防火墙

 service iptables stop

在浏览器中查看hadoop信息:

先关闭防火墙


http://192.168.10.115:50070/ (hdfs管理页面)


http://192.168.10.115:8088/ (yarn管理页面)



测试HDFS

hadoop上传一个文件

hadoop fs -put /opt/software/hadoop-2.7.1.tar.gz hdfs://hadoop115:9000/hadoop271

查看已经上传的文件






将刚上传的文件下载到本地

hadoop fs -get hdfs://hadoop115:9000/hadoop271 /opt/tmp/haddop271.tar.gz





在浏览器中查看hadoop信息:

先关闭防火墙

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值