hadoop集群搭建与简单应用

系统镜像:CentOS-6.5-x86_64-Li.iso

虚拟机:VMware Workstation 16 Pro(16.0.0 build-16894299)

JDK:1.8.0_161

hadoop:2.7.0

创建虚拟机

虚拟机安装后将系统install

对master主机linux系统配置

  • 修改主机名

    vim /etc/sysconfig/network

    shutdown -r now

  • 配置ip地址映射

    ip地址自己去看:编辑>虚拟网络编辑器>VMnet8>NAT设置

    vim /etc/hosts

    192.168.112.128 master
    192.168.112.129 slave001
    192.168.112.130 slave002
  • 配置网卡

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    写入以下内容

    DEVICE=eth0
    NETMSKE=255.255.255.0
    GATEWAY=192.168.112.2
    IPADDR=192.168.112.128
    ONBOOT=yes
    BOOTPROTO=static

    service network restart

    ifconfig

  • 开启sshd服务与开机启动,关闭防火墙与开机启动.

    service sshd start
    chkconfig sshd on
    service iptables stop
    chkconfig iptables off
  • 赋予hdp,sudo权限

    useradd hdp

    passwd hdp

    vim /etc/sudoers

    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    hdp ALL=(ALL) ALL
  • putty通过pscp传输文件或用xftp

    pscp -P 22 [要传输的文件] [用户名@主机ip地址:要传输到的目录]

  • 解压jdk,hadoop
    解压tar:tar -xvf [文件名] [-C] /usr/local

    解压tar.gz:tar -zxvf [文件名] [-C] /usr/local

    压缩:tar -zcvf 文件名.tar.gz [文件名]

  • 对jdk,hadoop设置文件拥有者,组拥有者

    chown -R hdp /usr/local/jdk1.8.0_161

    chgrp -R hdp /usr/local/jdk1.8.0_161

    chown -R hdp /usr/local/hadoop2.7.0

    chgrp -R hdp /usr/local/hadoop2.7.0

  • 配置环境变量

    vim /etc/profile

    export JAVA_HOME=/usr/local/jdk1.8.0_161
    export PATH=$PATH:$JAVA_HOME/bin
    export HADOOP_HOME=/usr/local/hadoop-2.7.0
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source /etc/profile

    java,hadoop检验

克隆slave基于master

  • 修改主机名

    vim /etc/sysconfig/network

    shutdown -r now

  • 配置网卡

    将IPADDR修改一下

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

配置$HADOOP_HOME/etc/hadoop/下的文件

转到hdp用户su hdp

转到配置文件目录cd $HADOOP_HOME/etc/hadoop/

创建hadoop存储文件夹mkdir $HADOOP_HOME/tmp

对下列文件进行修改(对主机名看自己情况修改)

  • hadoop-env.sh

    export JAVA_HOME=/usr/local/jdk1.8.0_161
    #JAVA_HOME写上自己jdk 的安装路径
  • core-site.xml

    <!-- 指定Hadoop所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    <!-- 定Hadoop运行是产生文件的存储目录。默认 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop-2.7.0/tmp</value>
    </property>
  • hdfs-site.xml

    <!-- 指定HDFS副本的数量,不修改默认为3个 -->
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    <!-- dfs的SecondaryNameNode在哪台主机上 -->
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave001:50090</value>
    </property>
  • mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml

    <!-- 指定MapReduce运行是框架,这里指定在yarn上,默认是local -->
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
  • yarn-site.xml

    <!-- 指定yarn的老大ResourceManager的地址 -->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    </property>
    <!-- NodeManager上运行的附属服务。需要配置成mapreduce_shuffle,才可以运行MapReduce程序默认值 -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
  • slaves

    slave001
    slave002

传输hadoop配置文件到slave机

scp -r /usr/local/hadoop2.7.0/etc/hadoop hdp@slave001:/usr/local/hadoop2.7.0/etc/

启动集群

  • 初始化HDFS

    hdfs namenode -format

  • 启动hdfs,yarn

    start-all.sh等价于start-hdfs.sh,start-yarn.sh

  • 查看节点角色

    jps

  • 查看端口

    netstat -nplt

  • 浏览器查看namenode,secondarynamnode,yarn监控端

    master:50070
    slave001:50090
    master:8080

集群wordcount示例

  • 常用命令

    类mkdir命令:hadoop fs -mkdir 目录

    类ls命令:hadoop fs -ls 文件

    类cat命令:hadoop fs -cat 文件

    类cp命令:hadoop fs -cp 文件 文件

    类rm -r命令:hadoop fs -rm -r 文件

    类mv命令:hadoop fs -mv 文件 文件

    统计文件系统可用空间信息:hadoop fs -df -h /

    统计文件夹的大小信息:hadoop fs -du -s -h 文件

    下载hdfs文件到本地:hadoop fs -get hdfs文件

    上传本地文件到hdfs:hdfs dfs -put 本地文件 hdfs文件

  • 运行wordcount示例

    hadoop fs -mkdir /input

    hdfs dfs -put 一个具有文字信息的文件 /input/

    yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount /input/ /output

    hadoop fs -ls /output

  • namenode进入和离开安全模式

    hdfs dfsadmin -safemode get

    hdfs dfsadmin -safemode wait可以运行一次?

    hdfs dfsadmin -safemode enter

    hdfs dfsadmin -safemode leave

有问题或建议请在下面评论,如果我看到的话会回。

本文作者:好像没什么问题

本文链接:https://www.cnblogs.com/FlourishingTree/p/16795120.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   好像没什么问题  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 小镇姑娘 你的九儿
  2. 2 达尔文 蔡健雅
  3. 3 远走高飞 金志文
  4. 4 南屏晚钟 王晰
达尔文 - 蔡健雅
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 小寒

作曲 : 蔡健雅

我的青春 也不是没伤痕

是明白爱是信仰的延伸

什么特征 人缘还是眼神

也不会预知爱不爱的可能

保持单身 忍不住又沉沦

兜着圈子来去有时苦等

人的一生 感情是旋转门

转到了最后真心的就不分

有过竞争 有过牺牲

被爱筛选过程

学会认真 学会忠诚

适者才能生存

懂得永恒 得要我们

进化成更好的人

我的青春 有时还蛮单纯

我的青春 有时还蛮单纯

相信幸福取决于爱得深

读进化论 我赞成达尔文

没实力的就有淘汰的可能

我的替身 已换过多少轮

我的替身 已换过多少轮

记忆在旧情人心中变冷

我的一生 有几道旋转门

转到了最后只剩你我没分

有过竞争 有过牺牲

被爱筛选过程

学会认真 学会忠诚

适者才能生存

懂得永恒 得要我们

进化成更好的人

有过竞争 有过牺牲

有过竞争 有过牺牲

被爱筛选过程

学会认真 学会忠诚

适者才能生存

懂得永恒 得要我们

进化成更好的人

懂得永恒 得要我们

懂得永恒 得要我们

进化成更好的人

进化成更好的人

进化成更好的人