Hadoop 2.X 完全分布式部署安装

本文详细介绍如何在CentOS v6.5上安装配置Hadoop v2.6.0,并实现分布式环境部署。包括JDK安装、SSH无密码登录配置、Hadoop安装及七个核心配置文件详解等步骤。

http://jingyan.baidu.com/article/27fa73269c02fe46f9271f45.html


Hadoop的大名想必已被IT界人士众所周知了,而它的官方文档对它它的安装部署却介绍得很简略。为了让更多对此有兴趣的人更快入门,特发此经验。

工具/原料

  • linux系统(本篇使用的是CentOS v6.5)
  • Hadoop安装包(本篇使用的是hadoop v2.6.0)

环境要求

  1. 1

    需要安装JDK6.0以上版本(可自行解压安装或使用自带的软件安装包,如yum)

    Hadoop 2.X 完全分布式部署安装
  2. 2

    需要无密码登录的SSH环境(安装ssh及sshd,具体配置步骤在后面介绍)

    Hadoop 2.X 完全分布式部署安装
    END

安装/配置 步骤

  1. 1

    配置hosts文件,将主机名和对应IP地址映射。如图中Master、Slave1和Slave2是我们要搭建分布式环境的机器。Master为主机,Slavex为从机。

    Hadoop 2.X 完全分布式部署安装
  2. 2

    配置SSH的无密码登录:可新建专用用户hadoop进行操作,cd命令进入所属目录下,输入以下指令(已安装ssh)

    ssh-keygen -t rsa -P ""

    cat .ssh/id_rsa.pub >>.ssh/authorized_keys

    解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。

    第二条命令将生成的密钥写入authorized_keys文件。

    这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。

    Hadoop 2.X 完全分布式部署安装
  3. 3

    安装hadoop:安装方式很简单,下载安装包到所属目录下,使用

    tar -zxvf 安装包名

    进行解压,解压完毕可通过mv 命令重命名文件夹,安装至此完成。解压后的目录内容如图所示。

    Hadoop 2.X 完全分布式部署安装
  4. 4

    hadoop配置过程:要实现分布式环境,配置过程是最为重要的,

    这里要涉及到的配置文件有7个:

    ~/hadoop/etc/hadoop/hadoop-env.sh

    ~/hadoop/etc/hadoop/yarn-env.sh

    ~/hadoop/etc/hadoop/slaves

    ~/hadoop/etc/hadoop/core-site.xml

    ~/hadoop/etc/hadoop/hdfs-site.xml

    ~/hadoop/etc/hadoop/mapred-site.xml

    ~/hadoop/etc/hadoop/yarn-site.xml

    之后会分别介绍各个配置的的作用和配置关键

    Hadoop 2.X 完全分布式部署安装
  5. 5

    配置文件1:hadoop-env.sh

    该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。

    故在该文件中修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)

    Hadoop 2.X 完全分布式部署安装
  6. 6

    配置文件2:yarn-env.sh

    该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。

    在该文件中修改JAVA_HOME值为本机安装位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)

    Hadoop 2.X 完全分布式部署安装
  7. 7

    配置文件3:slaves

    该文件里面保存所有slave节点的信息,以本篇为例

    写入以下内容(hosts里从机的主机名):

    Slave1

    Slave2

    Hadoop 2.X 完全分布式部署安装
  8. 8

    配置文件4:core-site.xml

    <configuration>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/data/hadoop-${user.name}</value>

    </property>

    <property>

    <name>fs.default.name</name>

    <value>hdfs://Master:9000</value>

    </property>

    </configuration>

    这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的命名,位置为主机的9000端口;hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统中没有的位置,所以要先用mkdir命令新建一下。

    Hadoop 2.X 完全分布式部署安装
  9. 9

    配置文件5:hdfs-site.xml

    <configuration>

    <property>

    <name>dfs.http.address</name>

    <value>Master:50070</value>

    </property>

    <property>

    <name>dfs.namenode.secondary.http-address</name><value>Master:50090</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>1</value>

    </property>

    </configuration>

    这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从机的个数。

    Hadoop 2.X 完全分布式部署安装
  10. 10

    配置文件6:mapred-site.xml

    <configuration>

    <property>

    <name>mapred.job.tracker</name>

    <value>Master:9001</value>

     </property>

    <property>

    <name>mapred.map.tasks</name>

    <value>20</value>

    </property>

    <property>

    <name>mapred.reduce.tasks</name>

    <value>4</value>

    </property>

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

    </property>

    <property>

    <name>mapreduce.jobhistory.address</name><value>Master:10020</value>

    </property>

    <property><name>mapreduce.jobhistory.webapp.address</name><value>Master:19888</value>

    </property>

    </configuration>

    这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。

    其它属性为一些进程的端口配置,均配在主机下。

    Hadoop 2.X 完全分布式部署安装
  11. 11

    配置文件7:yarn-site.xml

    <configuration>

    <property>

     <name>yarn.resourcemanager.address</name>

    <value>Master:8032</value>

    </property>

    <property>

    <name>yarn.resourcemanager.scheduler.address</name>

     <value>Master:8030</value>

    </property>

    <property>

     <name>yarn.resourcemanager.webapp.address</name>

     <value>Master:8088</value>

    </property>

    <property>

    <name>yarn.resourcemanager.resource-tracker.address</name><value>Master:8031</value>

    </property>

    <property>

    <name>yarn.resourcemanager.admin.address</name><value>Master:8033</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>

    </configuration>

    该文件为yarn框架的配置,主要是一些任务的启动位置

    Hadoop 2.X 完全分布式部署安装
  12. 12

    将配置好的hadoop复制到其他节点

    scp –r ~/hadoop hadoop@Slave1:~/

    scp –r ~/hadoop hadoop@Slave2:~/

    END

启动验证

  1. 1

    格式化namenode:

    ./bin/hdfs namenode –format

    若出现如图所示提示,则格式化成功

    Hadoop 2.X 完全分布式部署安装
  2. 2

    启动hdfs: ./sbin/start-dfs.sh

    此时在Master上面运行的进程有:namenode secondarynamenode

    Slave1和Slave2上面运行的进程有:datanode

    启动yarn: ./sbin/start-yarn.sh

    此时在Master上面运行的进程有:namenode secondarynamenode resourcemanager

    Slave1和Slave2上面运行的进程有:datanode nodemanaget

    Hadoop 2.X 完全分布式部署安装
    Hadoop 2.X 完全分布式部署安装
  3. 3

    检查启动结果

    查看集群状态:./bin/hdfs dfsadmin –report

    查看文件块组成: ./bin/hdfsfsck / -files -blocks

    查看HDFS: http://192.168.101.248:50070(主机IP)

    查看RM: http:// 192.168.101.248:8088(主机IP)

    正确情况如图显示

    Hadoop 2.X 完全分布式部署安装
    Hadoop 2.X 完全分布式部署安装
    END

注意事项

  • 根目录为不存在的文件夹时,需自行创建。
  • 启动过程使用端口较多,若无其它原因,需关闭防火墙以正常启动。
  • 重新格式化namenode时,需先删除各节点的data文件
### Hadoop 3.x 完全分布式环境下安装 Flume 的指南 #### 准备工作 在安装 Flume 之前,需确保 Hadoop 集群已正常运行并完成基本配置。可以通过 `jps` 命令确认 NameNode、DataNode 等核心组件均已启动[^5]。 --- #### 下载与解压 Flume 1. **下载 Apache Flume** 访问官方镜像站点或第三方资源网站获取最新版本的 Flume(建议选择兼容 Hadoop 3.x 版本)。例如: ```bash wget https://archive.apache.org/dist/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz ``` 2. **解压文件至指定路径** 将下载的压缩包上传到服务器,并将其解压到目标目录: ```bash tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/module/ mv /opt/module/apache-flume-1.9.0-bin /opt/module/flume ``` --- #### 配置环境变量 编辑全局环境变量文件 `/etc/profile` 或用户的 `.bashrc` 文件,添加以下内容: ```bash export FLUME_HOME=/opt/module/flume export PATH=$PATH:$FLUME_HOME/bin ``` 使更改生效: ```bash source /etc/profile ``` --- #### 同步 Flume 到集群节点 通过脚本或其他方式将 Flume 分发到所有节点。例如使用自定义同步命令 `xsync`: ```bash xsync flume ``` --- #### 修改 Flume 配置文件 Flume 的主要配置位于 `$FLUME_HOME/conf` 目录下,默认情况下可能不存在完整的配置模板,可以手动创建一个简单的配置文件用于测试数据流传输功能。 以下是典型的 Flume 数据采集配置示例: ```properties # agent.conf agent.sources = source1 agent.sinks = sink1 agent.channels = channel1 # Define Source (e.g., Netcat input) agent.sources.source1.type = netcat agent.sources.source1.bind = hadoop103 agent.sources.source1.port = 44444 # Define Sink (e.g., HDFS output) agent.sinks.sink1.type = hdfs agent.sinks.sink1.hdfs.path = hdfs://hadoop103:8020/user/flume/logs/%Y%m%d agent.sinks.sink1.hdfs.fileType = DataStream agent.sinks.sink1.hdfs.writeFormat = Text agent.sinks.sink1.hdfs.rollInterval = 60 # Define Channel and connect it to the Source/Sink agent.channels.channel1.type = memory agent.channels.channel1.capacity = 1000 agent.channels.channel1.transactionCapacity = 100 agent.sources.source1.channels = channel1 agent.sinks.sink1.channel = channel1 ``` 保存该文件为 `conf/agent.conf` 并分发到各节点。 --- #### 启动 Flume Agent 切换到任意节点执行以下命令启动 Flume 实例: ```bash flume-ng agent --conf $FLUME_HOME/conf --name agent --conf-file conf/agent.conf -Dflume.root.logger=INFO,console ``` 验证是否成功监听端口: ```bash netstat -anp | grep 44444 ``` --- #### 测试 Flume 功能 在客户端发送消息到 Flume 收集器绑定的端口号(如 44444),观察日志写入 HDFS 是否成功: ```bash echo "Test message from client" | nc localhost 44444 ``` 随后登录 HDFS 检查存储位置是否存在对应的数据文件: ```bash hdfs dfs -ls /user/flume/logs/ ``` --- #### 注意事项 1. 如果需要更复杂的场景(如 Kafka 连接器集成或多级管道架构),可根据实际需求调整配置。 2. 确保防火墙允许必要的通信端口开放。 3. 对于大规模生产环境,推荐采用基于 ZooKeeper 的高可用模式部署 Flume。 --- ### 总结 以上流程涵盖了从准备阶段到最终测试的核心步骤,在此过程中需要注意保持一致性以及合理规划资源配置[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值