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
修改配置文件
vi hadoop-2.8.3/etc/hadoop/hadoop-env.sh
:指定java——homevi hadoop-2.8.3/etc/hadoop/hdfs-site.xml
:具体配置
<property>
<name>dfs.namenode.rpc-address</name>
<value>hdp01:9000</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>
<!--secondaryNamenode的配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp03::50090</value>
</property>
- 添加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
- 启动namenode :
sbin/hadoop-daemon.sh start namenode
- 查看namenode的进程:
jps
ps -ef | grep java
netstat -nltp | grep java
- http://192.168.149.111:50070/dfshealth.html#tab-datanode
- C:\Windows\System32\drivers\etc配置本机windows的hosts,不需要写ip了
- 启动datanode节点
sbin/hadoop-daemon.sh start datanode
自动启动hdfs
vi /root/hadoop-2.8.3/etc/hadoop/slaves
添加:datanode的主机名- 自动自动的方式:
sbin/start-dfs.sh
自动关闭的方式:sbin/stop-dfs.sh
secondaryNamenode的启动
- 手动:
sbin/hadoop-daemon.sh start secondarynamenode
- 自动:添加配置文件在 :hdfs-site.xml中
自动排错的方式:谁没起来,就在当前的节点上找错误日志:
路径:/root/hadoop-2.8.3/logs/ *.log
hadoop的客户端:
-
hadoop fs
-
上传到hdfs上的命令:
hadoop fs -put
本地的文件在哪 目标路径- 如果我们不更改一些相关的配置文件:
客户端在上传数据的时候:默认就是本机的文件系统:
hadoop fs -put hdfs_my_start.sh /
- 如果不想上传到本机文件系统中,需要指定hdfs的uri路径,然后才能上传到hdfs文件系统中
hadoop fs -put hdfs_my_start.sh hdfs://hdp01:9000/
- 如果我们不更改一些相关的配置文件:
-
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/ -
2的步骤是不是很累,所以我们更改默认的文件系统:
为我们的hdfs文件系统* 修改客户端的配置文件:core-site.xml,具体配置:<property> <name>fs.defaultFS</name> <value>hdfs://hdp01:9000/</value> </property>
再上传时就是默认地址:hdfs的文件系统了
-
文件分块和副本的默认配置文件:
/root/hadoop-2.8.3/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.blocksize</name>
<value>64m</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
- DataNode节点上具体存放数据的目录:
/root/hdpdata/data/current/BP-1539005941-192.168.149.111-1527333601892/current/finalized/subdir0/subdir0
hdfs的常用客户端操作命令
-
文件上传:
hadoop fs -put hdfs_my_start.sh /
hdfs dfs -copyFromLocal hdfs_my_start.sh /
-
文件的查看:
hadoop fs -ls /
hadoop fs -ls -R /
-
目录的创建:
hdfs dfs -mkdir /aaa
hdfs dfs -mkdir -p /aaa/bbb/ccc
-
文件的下载操作:
hdfs dfs -get
目标服务器路径 本地路径
hdfs dfs -get /hdfs_my_start_2.sh /root/
`hdfs dfs -copyToLocal /hdfs_my_start.sh ` 本地路径
-
文件的删除操作:
hdfs dfs -rm -r /
如果你在公司不想干了:hdfs dfs -rm -r hdfs://hdp01:9000/*
-
文件的移动和重命名
hdfs dfs -mv /hdfs_my_start.sh /aaa.sh
hdfs dfs -mv /aaa/bbb/aaa.sh /aaa/ccc
-
文件的复制
hdfs dfs -cp /aaa/ccc /aaa/ddd.sh
-
查看文件的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