前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop 集群部署

Hadoop 集群部署

作者头像
Freedom123
发布2024-03-29 09:08:58
900
发布2024-03-29 09:08:58
举报
文章被收录于专栏:DevOpsDevOps

Hadoop各个功能模块的理解 零. 概述 HDFS模块 HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。

YARN模块 YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题而创建的一个框架。YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。

MapReduce模块 MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。

Hadoop本地模式安装/Hadoop伪分布式模式安装/完全分布式安装 Hadoop本地模式安装,只适用与用于本地开发调试,或者快速安装体验Hadoop,这部分做简单的介绍。 Hadoop伪分布式模式安装,学习Hadoop一般是在伪分布式模式下进行。这种模式是在一台机器上各个进程上运行Hadoop的各个模块,伪分布式的意思是虽然各个模块是在各个进程上分开运行的,但是只是运行在一个操作系统上的,并不是真正的分布式。 完全分布式安装才是生产环境采用的模式,Hadoop运行在服务器集群上,生产环境一般都会做HA,以实现高可用。

一. 集群规划

代码语言:javascript
复制
    192.168.77.128
    192.168.77.130
    192.168.77.134

二. 基础设置 1. 关闭防火墙

代码语言:javascript
复制
service iptables status #查看防火墙状态
service iptables start #立即开启防火墙,但是重启后失效。
service iptables stop #立即关闭防火墙,但是重启后失效。

chkconfig iptables on #开启防火墙,重启后生效。
chkconfig iptables off #关闭防火墙,重启后生效。

2. 修改主机名

代码语言:javascript
复制
vi /etc/sysconfig/network
     hadoop000

1. hosts配置

代码语言:javascript
复制
vi /etc/hosts
    192.168.77.128 hadoop000
    192.168.77.130 hadoop001
    192.168.77.134 hadoop002

2. 免密登陆

代码语言:javascript
复制
ssh-keygen -t rsa 
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002

3. jdk安装

代码语言:javascript
复制
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv ./jdk1.8.0_151 /usr/local/jdk1.8
vi /etc/profile
    JAVA_HOME=/usr/local/jdk1.8/
    JAVA_BIN=/usr/local/jdk1.8/bin
    JRE_HOME=/usr/local/jdk1.8/jre
    PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
    CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

    export PATH=$PATH:/usr/local/mysql/bin/
    
source /etc/profile
java -version

4. ntp安装

代码语言:javascript
复制
yum install -y ntp
ntpdate -u ntp.api.bz

5. 基础设置同步到其他节点

代码语言:javascript
复制
rsync -av /usr/local/jdk1.8 hadoop001:/usr/local
rsync -av /usr/local/jdk1.8 hadoop002:/usr/local
rsync -av /etc/profile hadoop001:/etc/profile
rsync -av /etc/profile hadoop002:/etc/profile

6. 禁用 selinux(optional)

代码语言:javascript
复制
vi /etc/sysconfig/selinux
   SELINUX=disabled

7. 添加hadoop用户(optional)

代码语言:javascript
复制
useradd hadoop
passwd hadoop

三. 集群安装 1. hadoop下载解压

代码语言:javascript
复制
wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local/

2. hadoop 中hadoop-env.sh 配置java_home的配置

代码语言:javascript
复制
 vi etc/hadoop/hadoop-env.sh
     JAVA_HOME=/usr/local/jdk1.8/ 

3. hadoop_home配置

代码语言:javascript
复制
 vim ~/.bash_profile
    export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.7.0/
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source ~/.bash_profile

4. core-site.xml,hdfs-site.xml

代码语言:javascript
复制
vi core-site.xml
    <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://hadoop000:8020</value>  # 指定默认的访问地址以及端口号
        </property>
    </configuration>
代码语言:javascript
复制
vi hdfs-site.xml 
   <configuration>
       <property>
           <name>dfs.namenode.name.dir</name>
           <value>/data/hadoop/app/tmp/dfs/name</value>  # namenode临时文件所存放的目录
       </property>
       <property>
           <name>dfs.datanode.data.dir</name>
           <value>/data/hadoop/app/tmp/dfs/data</value>  # datanode临时文件所存放的目录
       </property>
   </configuration

5. 创建namenode,datanode目录

代码语言:javascript
复制
mkdir -p /data/hadoop/app/tmp/dfs/name
mkdir -p /data/hadoop/app/tmp/dfs/data

6. yarn-site.xml,mapred-site.xml

代码语言:javascript
复制
vi yarn-site.xml 
   <configuration>
       <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
       </property>
       <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>hadoop000</value>
       </property>
   </configuration>
代码语言:javascript
复制
 cp mapred-site.xml.template mapred-site.xml
代码语言:javascript
复制
vi mapred-site.xml
   <configuration>
       <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
       </property>
   </configuration>

7. slaves配置

代码语言:javascript
复制
vi slaves
    hadoop000
    hadoop001
    hadoop002

8. 以上同步到其他节点

代码语言:javascript
复制
 rsync -av /usr/local/hadoop-2.6.0-cdh5.7.0/ hadoop001:/usr/local/hadoop-2.6.0-cdh5.7.0/
 rsync -av /usr/local/hadoop-2.6.0-cdh5.7.0/ hadoop002:/usr/local/hadoop-2.6.0-cdh5.7.0/
 rsync -av ~/.bash_profile hadoop001:~/.bash_profile
 rsync -av ~/.bash_profile hadoop002:~/.bash_profile
 
 source .bash_profile
 mkdir -p /data/hadoop/app/tmp/dfs/name
 mkdir -p /data/hadoop/app/tmp/dfs/data
 source .bash_profile
 mkdir -p /data/hadoop/app/tmp/dfs/name
 mkdir -p /data/hadoop/app/tmp/dfs/data

四. 集群运行 单服务启动和集群启动,俩者二选一 1. 集群启动 1. 在hadoop000上执行 namenode 格式化

代码语言:javascript
复制
hdfs namenode -format

2. 集群启动

代码语言:javascript
复制
start-all.sh             
stop-all.sh        #关闭

hdfs 启动:

代码语言:javascript
复制
namenode:
    hadoop-daemon.sh start namenode
datanode:
    hadoop-daemon.sh start datanode
SecondaryNameNode
    hadoop-daemon.sh start secondarynamenode

yarn 启动:

代码语言:javascript
复制
resourcemanager
    yarn-daemon.sh start resourcemanager
nodemanager
    yarn-daemon.sh start nodemanager

3. 查看进程

代码语言:javascript
复制
jps           
start-dfs.sh
start-yarn.sh
yarn-daemon.sh start resourcemanager

2. 单服务启动

代码语言:javascript
复制
1. zk启动
    ./zkServer.sh start
2. jn启动
    sbin/hadoop-daemons.sh start journalnode
3. zkfc格式化
    hdfs zkfc -formatZK
4. namenode 格式化
    hdfs namenode -format
5. namenode启动
    hadoop-daemon.sh start namenode
5.1 启动standby namenode
    hdfs namenode -bootstrapStandby #把NameNode的数据同步到hadoop02上
    hadoop-daemon.sh start namenode #启动备用的namenode
6. datanode启动
    hadoop-daemons.sh start datanode
7. yarn启动
    start-yarn.sh
8. ZKFC启动
    hadoop01:
    hadoop-daemon.sh start zkfc
    hadoop02
    hadoop-daemon.sh start zkfc

8. yarn启动:

代码语言:javascript
复制
1. Resourcemanager启动
   yarn-daemon.sh start resourcemanager
2. nodemanager启动
   yarn-daemon.sh start nodemanager

9. 停止服务

代码语言:javascript
复制
1. sbin/hadoop-daemon.sh stop namenode
2. sbin/hadoop-daemon.sh stop datanode
3. sbin/yarn-daemon.sh stop resourcemanager
4. sbin/yarn-daemon.sh stop nodemanager
代码语言:javascript
复制
yarn:
   sbin/stop-yarn.sh
   sbin/start-yarn.sh

3. hadoop访问:192.168.77.128:50070 4. yarn访问:192.168.77.128:8088 高可用: 六. 高可用需要配置zk 3. zk集群搭建 4. core-site.xml 补充配置 zk信息 七. 本地模式部署 1. 下载解压 2. /etc/profile配置java_home, 3. conf/hadoop-env.sh 配置java_home 4. 启动

五. hdfs命令

代码语言:javascript
复制
    1. hdfs dfs -ls /
    2. hdfs dfs -mkdir /data
    3. hdfs dfs -put ./test.sh /data
    4. hdfs dfs -text /browserout/part-r-00000
    5. hdfs dfs -cat /demo1/core-site.xml
    6. hdfs dfs -get /demo1/core-site.xml
    hadoop fs -get /user/trunk/test.txt . (复制到本地当前目录下)
    hadoop fs -cat /user/trunk/test.txt
    hadoop fs -tail /user/trunk/test.txt  (查看最后1000字节)
    hadoop fs -rm /user/trunk/test.txt
    hadoop fs -rmdir /user/trunk
    hadoop fs -help ls (查看ls命令的帮助文档)

4. jar包执行:

代码语言:javascript
复制
hadoop jar ./hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 3 4
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档