CentOS7编译安装Hadoop详解

来源:互联网 发布:edg网络黄金官方网站 编辑:程序博客网 时间:2024/05/24 01:41

一.步骤

1.准备服务器

2.设置SSH免密登录

3.安装配置JAVA环境

4.下载Hadoop源码包编译安装生成Hadoop二进制文件压缩包

5.解压安装配置Hadoop

6.网页访问我们的Hadoop

二.详解

1.安装准备:准备三台服务器(开三个虚拟机)--博主是三台CentOS7(64位)

-- Master:192.168.132.128

-- Slave1:192.168.132.129

-- Slave2:192.168.132.130

2.设置SSH免密码登录(CentOS7默认不开启SSH免密码登录)

(1)vi /etc/ssh/shhd_config(三个虚拟机都需要设置)

#RSAAuthentication yes
#PubkeyAuthentication yes

找到上面这两行的内容,并且去掉前面的#注释(具体操作:先键入i+去掉#+再键入esc+再键入shirt+:+键入wq+回车)

    (2)输入ssh-keygen -t rsa(然后一直回车,/root目录下会有.ssh文件夹生成,一样3台虚拟机都要设置)

    (3)进入Master服务器的/root/.ssh目录下

cat id_rsa.pub >> authorized_keys
ssh root@192.168.132.129 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh root@192.168.132.130 cat ~/.ssh/id_rsa.pub >> authorized_keys

    (4)把Master服务器下的authorized和known_hosts复制到Slave服务器下的之前生成的.ssh目录下

3.安装配置Java环境(博主为jdk1.7.0_79,Hadoop最低支持的Java版本为1.7版本)

    (1)下载jdk-7u79-linux-x64.tar.gz---jdk1.7下载路径,统一放到/soft文件夹下

    (2)输入tar -zvxf jdk-7u79-linux-x64.tar.gz 解压缩

    (3)配置Java环境变量:(此处配置两个地方:1./etc/profile 2./root/.bashrc(即用户目录))

export JAVA_HOME=/soft/jdk1.7.0_79
export PATH=$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/rt.jar
(将以上内容复制到文件内即可(注意中英文))

    (4)输入source /etc/profile(或者source /root/.bashrc)

    (5)输入java -version检查是否设置成功(设置成功下面会显示java的版本)

4.下载Hadoop源码包,编译安装(Hadoop有两个包可供下载:1.hadoop-2.7.0.tar.gz 2.hadoop-2.7.0-src.tar.gz 第一个为编译后的压缩包,第二个为Hadoop的源码包,Hadoop只有32位的编译后的压缩包,要想得到64位的则需要自己下载第二个源码包自己进行编译,可怜博主就是64位系统,不得不给大家编译一把,说干就干吧)注:博主本人遇到了很多坑,光编译过程就有接近两个小时(博主网速还可以),这些后面都会给大家讲到!

    (1)下载源码包:点击进入选取hadoop-2.7.0-src.tar.gz

    (2)输入mkdir /soft/hadoop,并将压缩包拖到hadoop文件夹下

    (3)输入tar -zvxf hadoop-2.7.0-src.tar.gz 解压缩

    (4)进入hadoop-2.7.0-src文件夹,打开BUILDING.TXT

上面Requirements下面的内容就是编译Hadoop所需的库和相关工具
总结一下就是:1.JDK1.7+
    2.maven3.0 or later
    3.zlib devel
    4.cmake 2.6
    5.findbugs 1.3.9
    6.protocolBuffer 2.5.0
    7.openssl-devel
    8.gcc
    9.autoconf
    等等....

     (5)先把依赖的问题解决,输入以下指令自动下载安装各种依赖

yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel

     (6)下载安装protobuf-2.5.0.tar.gz:点击打开链接选取protobuf-2.5.0.tar.gz下载(放到/soft/protobuf下(博主强迫症))

tar -zvxf  protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make install
protoc -version(检验是否安装成功)

     (7)安装Maven,下载安装apache-maven-3.2.5-bin.tar.gz:点击打开链接选取3.2.5/下载(放到/soft/maven下)

tar -zvxf apache-maven-3.2.5-bin.tar.gz

vi /etc/profile   (将以下内容复制到profile文件末尾即可(3个export))---(具体操作:现在windows里复制下面内容+再回centos键入i+移到文件末尾点击右键(即粘贴)+再键入esc+再键入shirt+:+键入wq+回车)

export MAVEN_HOME=/soft/maven/apache-maven-3.2.5
export PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
mvn -version(检查是否成功)

    (8)安装findbugs,下载安装findbugs-3.0.1.tar.gz:点击打开链接下载https://sourceforge.net/projects/findbugs/files/findbugs/3.0.1/findbugs-3.0.1.tar.gz/download(进去等5秒)(放到/soft/findbugs下)

tar -zvxf findbugs-3.0.1.tar.gz
vi /etc/profile(具体操作同上)
exprot FINDBUGS_HOME=/soft/finfbugs/fingbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin

findbugs -version(检查是否成功)

    (9)安装ant,下载安装apache-ant-1.9.9-bin.tar.gz:点击打开链接选择apache-ant-1.9.9-bin.tar.gz下载(放到/soft/ant下)

tar -zxvf apache-ant-1.9.9-bin.tar.gz

vi /etc/profile(具体操作同上)

exprot ANT_HOME=/soft/ant/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin

ant -version(检查是否成功)

(10)编译Hadoop(进入hadoop-2.7.0-src,输入mvn package -Pdist,native -DskipTests -Dtar(注意中英文,遇坑概不负责)直接编译


编译完成显示如上:BUILD SUCCESS即为编译成功!(编译过程只要按规范来,就没问题,当然遇到麻烦百度解决一下,博主只能帮你到这了,注意,安装过程很漫长,
一定要保证网络通畅,博主就有read time out导致编译失败的情况!!!)

(11)编译好的二进制压缩包在/soft/hadoop/hadoop-2.7.0-src/hadoop-dist/target/hadoop-2.7.0.tar.gz下

5.解压安装配置Hadoop

(1)解压安装

cp /soft/hadoop/hadoop-2.7.0-src/hadoop-dist/target/hadoop-2.7.1.tar.gz /soft/hadoop/hadoop-2.7.0.tar.gz

cd /soft/hadoop

tar -zvxf hadoop-2.7.0.tar.gz

mkdir /soft/hadoop/tmp /soft/hadoop/data /soft/hadoop/name (创建后面hadoop数据存放的文件夹)

(2)配置Hadoop(这是重点,启动全靠配置)

a.配置/soft/hadoop/hadoop-2.7.0/etc/hadoop/core-site.xml
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.132.129:19000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/soft/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
b.配置/soft/hadoop/hadoop-2.7.0/etc/hadoop/hdfs-site.xml
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/soft/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/soft/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.132.129:19001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
c.配置/soft/hadoop/hadoop-2.7.0/etc/hadoop/mapred-site.xml(先cp mapred-queues.xml.template mapred-queues.xml)
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.132.129:19007</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.132.129:19008</value>
    </property>
d.配置/soft/hadoop/hadoop-2.7.0/etc/hadoop/yarn-site.xml
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.132.129:19002</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.132.129:19003</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.132.129:19004</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.132.129:19005</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.132.129:19006</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>768</value>
    </property>

e.配置/soft/hadoop/hadoop-2.7.0/etc/hadoop下的hadoop-env.sh和yarn-env.sh文件里的JAVA_HOME

export JAVA_HOME=/home/java/jdk1.7.0_79 (操作同上面)scp -r /home/hadoop 192.168.0.183:/home/

f.配置 /soft/hadoop/hadoop-2.7.0/etc/hadoop下的slaves,加上192.168.132.129和192.168.132.130,同时去掉localhost

(3)将配置好的Hadoop复制到其他节点上

scp -r/soft/hadoop 192.168.132.129:/soft/

scp -r/soft/hadoop 192.168.132.130:/soft/

(4)在主服务器上启动Hadoop(slaves会自动启动,之前开启了免密登录)

cd /soft/hadoop/hadoop-2.7.0

bin/hdfs namenode-format


#当status 0时即初始化成功

sbin/start-all.sh

启动成功

6.网页访问我们的Hadoop

http://192.168.132.128:19003/(之前设置的)

http://192.168.132.128:50070/(默认端口)

7.骚年,开始我们的大数据之旅吧!!!!

附录:Hadoop官方:点击打开链接进入Hadoop官网

全文手打,觉得不错给个赞吧哭哭哭