1. 安装环境
- 操作系统:Ubuntu 18.04 64位
- Hadoop版本:hadoop-2.6.0-cdh5.7.0.tar.gz
- JDK版本:jdk-8u241-linux-x64.tar.gz
2. Hadoop伪分布式安装
操作环境:macOS终端 ssh
远程连接Ubuntu
2.1. 下载地址
1 | wget https://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz #Hadoop安装包 |
2.2. JDK安装
1 | tar -xvzf jdk-8u241-linux-x64.tar.gz -C ~/app #解压到~/app目录下 |
vi编辑器添加以下内容
1 | export JAVA_HOME=/root/app/jdk1.8.0_241 |
生效环境变量
1 | source ~/.bash_profile |
2.3. Hadoop安装
1 | apt install rsync |
2.4. Hadoop配置
1 | vi app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/hadoop-env.sh |
配置hadoop-env.sh
文件,修改JAVA_HOME;如果ssh端口不是默认的22则设置ssh端口
1 | export JAVA_HOME=/root/app/jdk1.8.0_241 |
如果控制台出现错误提示:Hadoop: connect to host localhost port 22: Connection refused when running start-dfs.sh
那么可能的原因是ssh端口不是默认的22。需要在hadoop安装目录
/etc/hadoop/hadoop-env.sh中添加export HADOOP_SSH_OPTS="-p 26885"
,其中-p后面的参数是当前ssh使用的端口号
配置core-site.xml
,端口改为8020,配置hadoop.tmp.dir
临时文件目录,因为默认为Linux临时目录每次重启都会清空
1 | <configuration> |
上面的配置中,需要通过JavaAPI远程操作则ip不能配置为localhost,需要公网ip。
配置hdfs-site.xml
1 | <configuration> |
2.5. 启动HDFS
格式化文件系统(仅仅第一次需要执行格式化)
1 | bin/hdfs namenode -format |
启动hdfs
1 | sbin/start-dfs.sh |
验证是否启动成功
1 | jps |
如果有以下java进程,说明启动成功
1 | root@brave-post-2:~/app/hadoop-2.6.0-cdh5.7.0# jps |
- 也可以通过浏览器访问 http://localhost:50070(本地服务器),http://ip:50070/(远程服务器)
- 如果浏览器打不开 HADOOP WEB 页面,请配置防火墙开放 50070 端口。Ubuntu可以使用
ufw
命令配置防火墙。jps
命令是JDK 1.5之后自带的查看Java进程的指令。
2.6. 停止HDFS
1 | root@brave-post-2:~/app/hadoop-2.6.0-cdh5.7.0# sbin/stop-dfs.sh |
3. HDFS SHELL 常用命令
3.1. 将Hadoop bin目录添加到环境变量
1 | vi ~/.bash_profile #设置系统环境变量 |
vi 编辑器添加以下内容
1 | export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.7.0 |
生效环境变量
1 | root@brave-post-2:~/app/hadoop-2.6.0-cdh5.7.0# vi ~/.bash_profile |
终端键入hdfs
,若有输出hdfs命令的用法提示则环境变量配置成功。
3.2. HDFS SHELL 命令用法
1 | root@brave-post-2:~/app/hadoop-2.6.0-cdh5.7.0# hdfs |
3.3. ls
、put
命令
- 查看目录列表
ls
- 将本地文件保存到HDFS中
put
1 | root@brave-post-2:~# mkdir ~/data |
3.4. 查看文件内容 text
、cat
1 | root@brave-post-2:~/data# hadoop fs -text /hello.txt |
3.5. mkdir、rmdir、get、copyFromLocal、rm
- 创建目录
mkdir
1 | root@brave-post-2:~/data# hadoop fs -mkdir /testdir |
- 递归创建目录
-p
参数
1 | root@brave-post-2:~/data# hadoop fs -mkdir /a/b |
- 递归列出所有目录和文件
-R
参数
1 | root@brave-post-2:~/data# hadoop fs -ls -R / |
- 从本地拷贝
copyFromLocal
1 | root@brave-post-2:~/data# hadoop fs -copyFromLocal hello.txt /a/b/h.txt |
- 从HDFS获取文件
get
1 | root@brave-post-2:~/data# ls |
- 删除文件
rm
1 | root@brave-post-2:~/data# hadoop fs -rm /hello.txt |
- 从本地
put
文件至HDFS
1 | root@brave-post-2:~/data# hadoop fs -put hello.txt / |
- 文件大小以GB、MB为单位显示而不是直接显示字节数
-h
参数
1 | root@brave-post-2:~/data# hadoop fs -ls -R -h / |
- 删除文件夹
rmdir
1 | root@brave-post-2:~/data# hadoop fs -mkdir -p /a/b/c |
3.6. HDFS Web 管理页面
URL:http://23.105.206.170:50070/explorer.html#/
- 浏览HDFS文件系统目录,查看文件信息
- 查看block信息
4. 参考文档
- https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
- https://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0/hadoop-project-dist/hadoop-common/SingleCluster.html
- https://www.youtube.com/watch?v=k3Bb0fVVTZk&list=PLhXu26RzZZTzveyPX8XgTBKf3tjxjA1tW&index=3