大数据学习之路--Hadoop部署

系统和软件环境要求

安装软件版本号:

Hadoop:3.2.1
Java:java version "1.8.0_251"
系统:CentOS7

本地模式安装

Java环境配置

下载Java JDK

Hadoop依赖Java环境,需要优先配置好JDK环境,由于国外下载速度一般很慢,这里选择国内镜像站华为云镜像下载JDK,如下

wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz

部署Java JDK

解压/software/ 目录下
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /software/
cd /software/
mv /software/jdk-8u181-linux-x64 java

配置Java环境变量

# 配置环境变量一般有三种,这里选择更为方便的/etc/profile.d/xxx.sh的方式,具体区别可百度
vim /etc/profile.d/java.sh
#添加如下环境变量
export JAVA_HOME=/software/java
export PATH=$PATH:$JAVA_HOME/bin

# 使配置生效
source /etc/profile

Hadoop环境配置

Hadoop安装方式与Java类似,这里选择国内镜像源清华大学镜像站

下载Hadoop

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

部署Hadoop

解压/software/ 目录下
tar -zxvf hadoop-3.2.1.tar.gz -C /software/
cd /software/
mv /software/hadoop-3.2.1.tar.gz hadoop

Hadoop环境变量配置

  1. 配置Hadoop环境变量,有很多环境变量,都是后续需要用到的,这里先提前添加进去

    vim /etc/profile.d/hadoop.sh
    
    export HADOOP_HOME=/software/hadoop
    export HADOOP_COMMON_HOME=$HADOOP_HOME 
    export HADOOP_HDFS_HOME=$HADOOP_HOME 
    export HADOOP_MAPRED_HOME=$HADOOP_HOME 
    export HADOOP_YARN_HOME=$HADOOP_HOME 
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
    export PATH=$PATH::$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
    
    # 使配置生效
    source /etc/profile
    
  2. 配置hadoop-env.sh,添加Java环境

    vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
    export JAVA_HOME=/software/java
    
  3. 配置core-site.xml

    vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
    
    <configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.7.223:8020</value> # 这里可以用主机HostName代替,搭建集群版时应改为HostName方便区分
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/software/data/tmp</value> #为了安全起见,这里应更换一下已经存在的专门存放元数据的临时目录
    </property>
    </configuration>
    
    • fs.defaultFS参数配置的是HDFS的地址
    • hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖 h a d o o p . t m p . d i r 的 配 置 。 默 认 的 ‘ h a d o o p . t m p . d i r ‘ 是 ‘ / t m p / h a d o o p − {hadoop.tmp.dir}的配置。默认的`hadoop.tmp.dir`是`/tmp/hadoop- hadoop.tmp.dirhadoop.tmp.dir/tmp/hadoop{user.name}`,此时有个问题就是NameNode会将HDFS的元数据存储在这个/tmp目录下,如果操作系统重启了,系统会清空/tmp目录下的东西,导致NameNode元数据丢失,是个非常严重的问题,所有我们应该修改这个路径。

配置、格式化、启动HDFS

  1. 配置hdfs-site.xml

    vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
    
    <property>
    	<name>dfs.replication</name>
    	<value>1</value>
    </property>
    

    dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。

  2. 格式化HDFS

    cd /software/hadoop
    bin/hdfs namenode –format
    #这个命令也可以用,3.0版本可能有变化,部署时会提示,当初忘记记录了,先就这么记录着
    

    格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。

    常见问题:

    • hadoop.tmp.dir目录的权限问题,解决方式就是把${HADOOP_HOME}/etc/hadoop/core-site.xml配置中的目录赋予hadoop用户所有者权限sudo chown -R hadoop:hadoop /software/data/tmp

    查看NameNode格式化后的目录

    -rw-rw-r--. 1 hadoop hadoop    3904 Aug 15 10:15 fsimage_0000000000000000346
    -rw-rw-r--. 1 hadoop hadoop      62 Aug 15 10:15 fsimage_0000000000000000346.md5
    -rw-rw-r--. 1 hadoop hadoop       4 Aug 15 10:36 seen_txid
    -rw-rw-r--. 1 hadoop hadoop     212 Aug 12 18:09 VERSION
    

    fsimage是NameNode元数据在内存满了后,持久化保存到的文件。

    fsimage*.md5 是校验文件,用于校验fsimage的完整性。

    seen_txid 是hadoop的版本

    vession文件里保存:

    • namespaceID:NameNode的唯一ID。
    • clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
  3. 启动NameNode

    #3.0版本
    hdfs --daemon start namenode
    hdfs --daemon start secondarynamenode
    hdfs --daemon start datanode
    #2.0版本,在3.0中使用时能用,系统提示可以用新方式启动
    ${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
    ${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
    ${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
    
  4. JPS命令查看是否已经启动成功

    [hadoop@localhost ~]$ jps
    2660 NameNode
    3268 SecondaryNameNode
    5672 Jps
    2972 DataNode
    

HDFS上测试创建目录、上传、下载文件

HDFS上创建目录

bin/hadoop fs -mkdir -p /dbtaobao/dataset

HDFS上传文件

bin/hadoop fs -put /usr/local/dbtaobao/dataset/train_after.csv /dbtaobao/dataset

HDFS下载文件

bin/hadoop fs -put /dbtaobao/dataset/train_after.csv /本地目录位置 #不写默认是执行命令的目录

HDFS删除文件/文件夹

#删除文件
bin/hadoop fs -rm /dbtaobao/dataset/train_after.csv
#删除文件夹
bin/hadoop fs -rm -r /dbtaobao/dataset/train_after.csv

参考

本文只是简单记录,参考价值不高,具体详细参考:
https://www.cnblogs.com/liuyangfirst/p/6257473.html
https://blog.csdn.net/hliq5399/article/details/78193113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值