hadoop安装与集群

启动hadoop集群
在hadoop01上输入start-dfs.sh
在hadoop01上输入start-yarn.sh
在hadoop02上/opt/modules/app/hadoop/sbin输入./yarn-daemon.sh start resourcemanager启动ResourceManager
在hadoop01上/opt/modules/app/hadoop/sbin/输入mr-jobhistory-daemon.sh start historyserver启动historyserver
在windows上配置主机名
然后使用主机名启动
hadoop01:50070
hadoop02:8088

1.克隆虚拟机3个 配置上ip

https://www.jianshu.com/p/c04532d6a4da

2.修改主机名

vim /etc/sysconfig/network
hadoop01 
hadoop02 
hadoop03
然后重启虚拟机 
reboot 命令

3.绑定虚拟机的主机名和IP

vim /etc/hosts
192.168.121.140    hadoop01
192.168.121.141    hadoop02
192.168.121.142    hadoop03

4.规划

hadoop01 hadoop02 hadoop03
Namenode ResourceManager
DataNode DataNode DataNodede
NodeManager NodeManager NodeManager
HistoryServer SecondayNameNode

5.在一台主机上装hadoop 然后使用scp命令拷贝到其他虚拟机上

6.在opt里建modules/app 目录

mkdir -p modules/app
将 hadoop-2.8.3.jar.gz文件解压到这个文件下
tar   -zxvf   hadoop-2.8.3.jar.gz
修改名字为hadoop
mv  hadoop-2.8.3  hadoop

7. 配置Hadoop JDK路径修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:

java -version
添加环境变量
vim /etc/profile

export HADOOP_HOME=/opt/modules/app/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source /etc /profile  生效

在/opt/modules/app/hadoop/etc/hadoop 修改配置文件hadoop-env.sh、mapred-env.sh、yarn-env.sh添加java_home的环境变量

export  JAVA_HOME="/opt/jdk1.8"

8、 配置core-site.xml

vim core-site.xml
                //Namenode主机地址 这上是放在hadoop01上
 
   fs.defaultFS
   hdfs://hadoop01:8020
 
 
   hadoop.tmp.dir
   /opt/modules/app/hadoop2.5.0/data/tmp
 


fs.defaultFS为NameNode的地址。

hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。应该保证此目录是存在的,如果不存在,先创建。
mkdir  -p  /opt/modules/app/hadoop2.5.0/data/tmp

9、 在/opt/modules/app/hadoop/etc/hadoop 修改配置hdfs-site.xml

启动secondnamenode在hadoop03上主机上

vim    hdfs-site.xml

 
   dfs.namenode.secondary.http-address
   hadoop03:50090
 


dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将hadoop03规划为SecondaryNameNode服务器。

所以这里设置为:hadoop03:50090

10、 在/opt/modules/app/hadoop/etc/hadoop 修改配置slaves

vim   slaves

hadoop01
hadoop02
hadoop03

slaves文件是指定HDFS上有哪些DataNode节点。

11、在/opt/modules/app/hadoop/etc/hadoop 修改 配置yarn-site.xml

vim   yarn-site.xml


        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.resourcemanager.hostname
        hadoop02
    
    
        yarn.log-aggregation-enable
        true
    
    
        yarn.log-aggregation.retain-seconds
        106800
    


根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向hadoop02

yarn.log-aggregation-enable是配置是否启用日志聚集功能。

yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间

12、 在/opt/modules/app/hadoop/etc/hadoop 修改配置mapred-site.xml

从mapred-site.xml.template复制一个mapred-site.xml文件。

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


        mapreduce.framework.name
        yarn
    
    
        mapreduce.jobhistory.address
        hadoop01:10020
    
    
        mapreduce.jobhistory.webapp.address
        hadoop01:19888
    


mapreduce.framework.name设置mapreduce任务运行在yarn上。

mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在hadoop01机器上。

mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。





13.设置SSH无密码登录

Hadoop集群中的各个机器间会相互地通过SSH访问,每次访问都输入密码是不现实的,所以要配置各个机器间的
所有虚拟机都要做
SSH是无密码登录的。
1). 在hadoop01上生成公钥

    在/opt/modules/app/hadoop里输入ssh-keygen -t rsa
    一路回车

2).把公钥发给所有电脑(包括自己)

    yum install ssh-clients
    yum install -y openssh-clients
    [hadoop@hadoop01 hadoop]$ ssh-copy-id hadoop01
    [hadoop@hadoop02 hadoop]$ ssh-copy-id hadoop02
    [hadoop@hadoop03 hadoop]$ ssh-copy-id hadoop03

3). 设置hadoop02、hadoop03到其他机器的无密钥登录
同样的在hadoop02、hadoop03上生成公钥和私钥后,将公钥分发到三 台机器上。
4).把上述1.2命令在其他虚拟机上再做一遍,分发公钥

14.分发Hadoop文件

1、 首先在其他两台机器上创建存放Hadoop的目录

[hadoop@hadoop02 ~]$ mkdir /opt/modules/app
[hadoop@hadoop03 ~]$ mkdir /opt/modules/app

2、 通过Scp分发

Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录删除掉,可以节省硬盘空间并能提高分发的速度。

doc目录大小有1.6G。

[hadoop@hadoop01 hadoop]$ du -sh /opt/modules/app/hadoop/share/doc
1.6G    
rm  -rf  /opt/modules/app/hadoop/share/doc
[hadoop@hadoop02 hadoop]$ scp -r /opt/modules/app/hadoop/ hadoop02:/opt/modules/app
[hadoop@hadoop03 hadoop]$ scp -r /opt/modules/app/hadoop/ hadoop03:/opt/modules/app

15.格式化NameNode

1).在NameNode机器上执行格式化:

[hadoop@hadoop01 hadoop]$hdfs namenode -format

/opt/modules/app/hadoop-2.5.0/data/tmp
注意:

如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错,NameNode和DataNode所在目录是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir属性配置的。


     hadoop.tmp.dir
     /opt/modules/app/hadoop-2.5.0/data/tmp
  

     dfs.namenode.name.dir
     file://${hadoop.tmp.dir}/dfs/name
  

     dfs.datanode.data.dir
     file://${hadoop.tmp.dir}/dfs/data
  

因为每次格式化,默认是创建一个集群ID,并写入NameNode和DataNode的VERSION文件中(VERSION文件所在目录为dfs/name/current 和 dfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时会报错。

另一种方法是格式化时指定集群ID参数,指定为旧的集群ID。

16.启动hadoop集群

1)、 启动HDFS

[hadoop@hadoop01 hadoop]$ start-dfs.sh
hadoop安装与集群_第1张图片
image.png

2)、 启动YARN

[hadoop@hadoop01 hadoop]$ /opt/modules/app/hadoop/sbin/start-yarn.sh

在hadoop02上启动ResourceManager:

[hadoop@hadoop02 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
hadoop安装与集群_第2张图片
image.png

3)、 启动日志服务器

因为我们规划的是在hadoop01服务器上运行MapReduce日志服务,所以要在hadoop01上启动。

[hadoop@hadoop01 ~]$ /opt/modules/app/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /opt/modules/app/hadoop/logs/mapred-hadoop-historyserver-hadoop01
[hadoop@bigdata-senior03 ~]$ jps
3570 Jps
3537 JobHistoryServer
3310 SecondaryNameNode
3213 DataNode
3392 NodeManager

4)、 查看HDFS Web页面

http://hadoop01:50070/

5)、 查看YARN Web 页面

http://hadoop02:8088/cluster

6).修改C:\Windows\System32\drivers\etc下的hosts文件
添加
192.168.121.140 hadoop01
192.168.121.141 hadoop02
192.168.121.142 hadoop03

你可能感兴趣的:(hadoop安装与集群)