HDFS集群搭建

hadoop的配置文件官方路径:http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

前期准备

  • 准备4台linux机器,并做好基础配置:
  • IP地址;
  • hostname(一律小写+数字);
  • 域名映射/etc/hosts;
  • jdk;
  • 关闭防火墙;
  • ssh工具;

上传jar包:

put -r C:/scattlework/common_resources/hadoop-2.8.3.tar.gz

解压缩

tar -zxvf hadoop-2.8.3.tar.gz

修改配置文件

  1. vi hadoop-2.8.3/etc/hadoop/hadoop-env.sh :指定java——home
  2. vi hadoop-2.8.3/etc/hadoop/hdfs-site.xml:具体配置
<property>
	<name>dfs.namenode.rpc-addressname>
	<value>hdp01:9000value>
property>
<property>
	<name>dfs.namenode.name.dirname>
	<value>/root/hdpdata/namevalue>
property>
<property>
	<name>dfs.datanode.data.dirname>
	<value>/root/hdpdata/datavalue>
property>

<property>
	<name>dfs.namenode.secondary.http-addressname>
	<value>hdp03::50090value>
property>
  1. 添加hadoop的环境变量;
    1. vi /etc/profile
    export JAVA_HOME=/root/jdk1.8.0_141
    export HADOOP_HOME=/root/hadoop-2.8.3
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    2. source /etc/profile
    3. hadoop version

启动hdfs

hdfs第一次启动之前,需要初始化一些数据:hadoop namenode -format

正式手动启动hdfs

  1. 启动namenode : sbin/hadoop-daemon.sh start namenode
  2. 查看namenode的进程:jps
    ps -ef | grep java
    netstat -nltp | grep java
  3. http://192.168.149.111:50070/dfshealth.html#tab-datanode
  4. C:\Windows\System32\drivers\etc配置本机windows的hosts,不需要写ip了
  5. 启动datanode节点
    sbin/hadoop-daemon.sh start datanode

自动启动hdfs

  1. vi /root/hadoop-2.8.3/etc/hadoop/slaves
    添加:datanode的主机名
  2. 自动自动的方式:sbin/start-dfs.sh
    自动关闭的方式:sbin/stop-dfs.sh

secondaryNamenode的启动

  1. 手动:sbin/hadoop-daemon.sh start secondarynamenode
  2. 自动:添加配置文件在 :hdfs-site.xml中

自动排错的方式:谁没起来,就在当前的节点上找错误日志:

路径:/root/hadoop-2.8.3/logs/ *.log

hadoop的客户端:

  1. hadoop fs

  2. 上传到hdfs上的命令: hadoop fs -put 本地的文件在哪 目标路径

    • 如果我们不更改一些相关的配置文件:
      客户端在上传数据的时候:默认就是本机的文件系统:
      hadoop fs -put hdfs_my_start.sh /
    • 如果不想上传到本机文件系统中,需要指定hdfs的uri路径,然后才能上传到hdfs文件系统中
      hadoop fs -put hdfs_my_start.sh hdfs://hdp01:9000/
  3. URI的概念
    jdbc:mysql://localhost:3306/数据库的名字
    http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-common/core-default.xml
    file:///aaa/bbb/ccc
    hdfs://hdp01:9000/

  4. 2的步骤是不是很累,所以我们更改默认的文件系统:
    为我们的hdfs文件系统* 修改客户端的配置文件:core-site.xml,具体配置:

    <property>
    	<name>fs.defaultFSname>
    	<value>hdfs://hdp01:9000/value>
    property>
    

    再上传时就是默认地址:hdfs的文件系统了

  5. 文件分块和副本的默认配置文件: /root/hadoop-2.8.3/etc/hadoop/hdfs-site.xml

<property>
	<name>dfs.blocksizename>
	<value>64mvalue>
property>
			
<property>
	<name>dfs.replicationname>
	<value>3value>
property>
  1. DataNode节点上具体存放数据的目录:/root/hdpdata/data/current/BP-1539005941-192.168.149.111-1527333601892/current/finalized/subdir0/subdir0

hdfs的常用客户端操作命令

  1. 文件上传:
    hadoop fs -put hdfs_my_start.sh /
    hdfs dfs -copyFromLocal hdfs_my_start.sh /

  2. 文件的查看:
    hadoop fs -ls /
    hadoop fs -ls -R /

  3. 目录的创建:
    hdfs dfs -mkdir /aaa
    hdfs dfs -mkdir -p /aaa/bbb/ccc

  4. 文件的下载操作:
    hdfs dfs -get 目标服务器路径 本地路径
    hdfs dfs -get /hdfs_my_start_2.sh /root/

     `hdfs dfs -copyToLocal /hdfs_my_start.sh ` 本地路径
    
  5. 文件的删除操作:
    hdfs dfs -rm -r /
    如果你在公司不想干了:hdfs dfs -rm -r hdfs://hdp01:9000/*

  6. 文件的移动和重命名
    hdfs dfs -mv /hdfs_my_start.sh /aaa.sh
    hdfs dfs -mv /aaa/bbb/aaa.sh /aaa/ccc

  7. 文件的复制
    hdfs dfs -cp /aaa/ccc /aaa/ddd.sh

  8. 查看文件的tail
    hdfs dfs -tail /
    hdfs dfs -tail -f /aaa/ddd.sh
    配合 : hdfs dfs -appendToFile haoqiang.txt /aaa/ddd.sh

    8.运维方面相关的命令:
    查看集群的状态: hdfs dfsadmin -report


原文:https://blog.csdn.net/a331685690/article/details/80552756

你可能感兴趣的:(Hadoop)