Hadoop源码分析二安装配置过程详解

安装hadoop有好几种方式,以下按照hdfs高可用的方式来安装。

1、 创建用户

命令:

useradd -m bigdata
passwd bigdata

2、 安装jdk

解压:

tar -zvf jdk-8u191-linux-x64.tar.gz

修改环境变量

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
JRE_HOME=/usr/lib/jvm/java-8-openjdk-arm64/jre
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

3、 修改hosts

修改/etc/hosts

10.211.55.12    hadoop01  # NameNode Active 
10.211.55.13    hadoop01  # NameNode Standby 
10.211.55.14    hadoop01  # DataNode1

4、 配置ssh免密登录

在每一台需要配置的机器上执行以下命令:

ssh-keygen –t rsa

执行完成后默认会在其根目录下创建一个.ssh目录,在这个目录中有id_rsa和id_rsa.pub两个文件。然后将所有机器的id_rsa.pub文件的内容都合并到一个新的文件中,文件命名为authorized_keys,然后将该文件分发到各台机器上。

最后,使用ssh登录其他机器测试是否完成免密。

5、 安装zookeeper

下载链接:https://zookeeper.apache.org/releases.html

解压:

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz

修改配置文件

将zookeeper下conf目录中的zoo_sample.cfg文件复制一份,新复制的文件重命名为zoo.cfg文件。

修改内容如下:

#zookeeper的文件路径
dataDir=/root/zookeeper/data

#zookeeper集群节点信息
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

#server.A=B:C:D 其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。

然后在上述设置的文件目录中新建一个文件,文件名为myid,文件内容为一个数字。例如上述配置的hadoop01对应的是server.1,它的myid的文件内容就是1。

配置环境变量

修改/etc/profile文件

export ZOOKEEPER_HOME=/root/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

启动

启动命令如下

#启动
zkServer.sh start
#查询状态
zkServer.sh status

6、 安装hadoop

对于三台节点的配置安排如下:

hadoo01:journalnode、namenode、datanode、resourcemanager、nodemanager
hadoo02:journalnode、namenode、datanode、resourcemanager、nodemanager
hadoo03:journalnode、datanode、nodemanager

下载链接:https://hadoop.apache.org/releases.html

解压:

tar -zxvf hadoop-2.7.6.tar.gz

修改配置文件:

hadoop的配置文件在解压后文件夹的etc目录下的hadoop目录中。

修改core-site.xml



 
        fs.defaultFS
        hdfs://nns1
    
    
        io.file.buffer.size
        131072
    
    
    
        hadoop.tmp.dir
        /data/HadoopData/HDFSData
    

    
        hadoop.proxyuser.root.hosts
        *
    
    
        hadoop.proxyuser.root.groups
        *
    



        ha.zookeeper.quorum
        hadoop01:2181,hadoop02:2181,hadoop03:2181
    

配置hdfs-site.xml



 
        dfs.nameservices
        nns1
    

    
        dfs.ha.namenodes.nns1
        nn1,nn2
      
      
    
        dfs.namenode.rpc-address.nns1.nn1
        hadoop01:9000
    
    
        dfs.namenode.rpc-address.nns1.nn2
        hadoop02:9000
    
    
        dfs.namenode.http-address.nns1.nn1
        hadoop01:50070
    
    
        dfs.namenode.http-address.nns1.nn2
        hadoop02:50070
        
    
    
        dfs.namenode.shared.edits.dir
        qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/nns1
    

    
        dfs.client.failover.proxy.provider.nns1
        org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
        
    
    
        dfs.ha.fencing.methods
        sshfence
        
    
    
        dfs.ha.fencing.ssh.private-key-files
        /root/.ssh/id_rsa
    
        
    
        dfs.journalnode.edits.dir
        /data/HadoopData/HDFSData/journal
        
    
    
        dfs.ha.automatic-failover.enabled
        true
        
    
    
        dfs.namenode.name.dir
        /data/HadoopData/HDFSData/name
        
    
    
        dfs.datanode.data.dir
        /data/HadoopData/HDFSData/data
        

    
        dfs.replication
        3
    

    
        dfs.webhdfs.enabled
        true
    

配置mapred-site.xml



 
        mapreduce.framework.name
        yarn
    

配置yarn-site.xml


 
    
        yarn.resourcemanager.ha.enabled
        true
        
   
    
        yarn.resourcemanager.ha.rm-ids
        rm1,rm2
    
 
     
        yarn.resourcemanager.cluster-id
        cluster1-yarn
    

    
        yarn.resourcemanager.hostname.rm1
        hadoop01
    
    
        yarn.resourcemanager.hostname.rm2
        hadoop02
    
    
    
        yarn.resourcemanager.ha.id
        rm1
    
    
    
        yarn.resourcemanager.recovery.enabled
        true
    
    
    
        yarn.resourcemanager.zk-address
        hadoop01:2181,hadoop02:2181,hadoop03:2181
    
   
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.nodemanager.aux-services.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
    

配置slaves

hadoop01
hadoop02
hadoop03

slaves中配置的服务器ip,没改hosts文件则直接写ip地址便可。该文件配置的服务器在启动的时候会启动datanode和nodemanager两个进程。

7、 初始化

在初始化前需要将所有机器都配置好hadoop

(一般直接复制上述配置好的文件,注意yarn-site.xml中的id,还有保证配置中的路径在每台机器上都存在)。

(1) 启动zookeeper

初始化之前需要保证zookeeper能正常提供服务,启动命令之前有提到

(2) 启动journalnode

初始化前需要保证journalnode已经启动。启动脚本在hadoop的sbin目录下,名字为hadoop-daemon.sh。

启动命令如下:

./hadoop-daemon.sh start journalnode

(3) 格式化zk

命令如下

hdfs zkfc -formatZK

(4) 格式化hdfs

命令如下

hadoop namenode -format

这一步会在上述hdfs-site.xml,配置的dfs.namenode.name.dir路径下创建一系列文件。

(5) 同步元数据

在另一台配置了namenode的服务器上执行以下命令:

hdfs namenode -bootstrapStanby

上述命令如果执行失败,还有一个简单的方法可以同步元数据。可以直接将步骤4中在第一台生成的文件复制到第二台服务器。

(6) 启动hadoop

同样在sbin目录下,使用start-all.sh可以启动所有服务,使用start-dfs.sh和start-yarn.sh可以分别启动hdfs和yarn。

使用hadoop-deamon.sh和yarn-deamon.sh分别别启动hdfs和yarn的单个进程。

(7) 安装fuster

安装命令如下:

yum install psmisc

(8) 网页访问

hdfs网页访问50070端口,yarn网页访问8088。这两个端口可以在配置文件中修改。
正常启动则可以访问到以下页面。

Hadoop源码分析二安装配置过程详解_第1张图片

Hadoop源码分析二安装配置过程详解_第2张图片

以上就是Hadoop源码分析二安装配置过程的详细内容,本系列下一篇文章传送门Hadoop源码分析三启动及脚本剖析更多Hadoop源码分析的资料请持续关注脚本之家!

你可能感兴趣的:(Hadoop源码分析二安装配置过程详解)