VMWare15.5安装Centos系统
CentOS6和7两个比较特别的命令区别
系统服务操作
CentOS 6: service iptables|network start|stop|restart|disable
CentOS 7: systemctl start|stop|restart|disable 服务名
主机名的修改
hostname 主机名 (临时修改)
CentOS6 /etc/hosts
CentOS7 hostnamectl set-hostname 主机名
搭建Hadoop完全分布式
Hadoop 三种运行模式 local 伪分布式 完全分布式
搭建过程
准备三台CentOS7机器
SSH免密登陆
ssh-keygen -t rsa
ssh-copy-id hostname
安装JDK,并配置环境变量
export JAVA_HOME=/opt/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
安装hadoop
上传解压
修改配置文件
hadoop-env.sh
// 修改JAVA_HOME
core-site.xml
// fs.defaultFS hdfs://hostname:9000
// hadoop.tmp.dir $HADOOP_HOME/data/tmp 生产环境中设置到一个较大的硬盘分区
hdfs-site.xml
//dfs.namenode.secondary.http-address 将要启动SNN的节点,不要和NN启动在同一节点
yarn-env.sh
//修改JAVA_HOME
yarn-site.xml
//yarn.resourcemanager.hostname 将要启动RS的节点
mapred-env.sh
//修改JAVA_HOME
mapred-site.xml
//mapreduce.framework.name 默认值是local设置为yarn
slaves
//设置所有从节点(DN,NM) 每个主机名写一行
分发安装文件
scp -rq /opt/hadoop-2.7.7 user@hostname:/路径
配置环境变量
export HADOOP_HOME=/opt/hadoop-2.7.7
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
格式化NameNode
rm -rf $HADOOP_HOME/data/tmp/*
hdfs namenode -format
启动集群
#单独操作
hadoop-daemon.sh start|stop namenode|DN|SNN
yarn-daemon.sh start|stop NM|RM
#按服务操作
start-dfs.sh | stop-dfs.sh
start-yarn.sh | stop-yarn.sh
#全部操作
start-all.sh |stop-all.sh
HDFS 命令行操作
操作语法 hdfs dfs -命令 参数 参数 参数
大部分文件和文件夹相关的操作都和Linux命令一样
# 上传文件
hdfs dfs -put /root/a.sh hdfs://namenode:9000/
# 下载
hdfs dfs -get hdfs://namenode:9000/a.sh /root/a.sh
# -ls -rmr -mkdir -cat
# 修改副本数
hdfs dfs -setrep /a.sh 3
HDFS Java操作
使用HDFS客户端操作
依赖 hadoop-client
关键类 org.apache.hadoop.fs.FileSystem
实例获取
Configeration conf = new Configeration()
FileSystem fs = FileSystem.get(URI.create(“hdfs://NNhotsname:9000”),conf)
所有的move操作其实都是copy操作
学习API的时候打开类先找到同名参数最多的方法,看懂所有参数的含义
- 使用IO操作
```java
- 找到输入输出流
上传操作
fs.create()
本地文件 -> 内存 -> HDFS
主体是内存中正在运行的JVM
下载文件
fs.open()
- 拷贝流
IOUtils.copyBytes(in,out,1024)