安装ubuntu虚拟机
镜像地址:https://mirrors.nju.edu.cn/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso
如果使用docker
docker pull ubuntu:18.04
备份起始源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
打开源列表 (gedit命令是打开ubuntu的编辑器,如果是docker的话,需要换成vi命令)
sudo gedit /etc/apt/sources.list
在文件最前面添加以下内容
# 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
刷新列表
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential
直接下载openJdk
sudo apt-get update sudo apt-get install openjdk-8-jdk
验证java
java -version
安装ssh
sudo apt-get install ssh
生成ssh密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
获取本机ssh访问权限
ssh-copy-id localhost
按下回车后会有确认是否加入hostList的询问,输入 “yes” 再按回车
然后需要你输入本机密码
测试ssh访问
ssh localhost
安装rsync
sudo apt-get install rsync
下载hadoop压缩包
cd ~ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
解压到这里
hadoop@ubuntu:~$ tar –zxvf hadoop-3.2.2.tar.gz
检查是否解压成功
hadoop@ubuntu:~$ ls Desktop Downloads hadoop-3.2.2 Music Public Videos Documents examples.desktop hadoop-3.2.2.tar.gz Pictures Templates
是否有hadoop-3.2.2的文件夹?
配置JAVA_HOME环境变量
gedit ~/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
在编辑器中找到 “# export JAVA_HOME=”
把这一行改为 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64,保存退出即可
PS:上面这个地址的获得方法是输入以下命令,然后看输出
update-alternatives --config java
首先先说一点,这里的配置,往往一空格,一个标点符号或者大小写的错误都会导致最终运行失败,所以输入之前一定要检查!!
core-site.xml
打开编辑器
gedit ~/hadoop-3.2.2/etc/hadoop/core-site.xml
插入配置,注释内容不用加
<configuration> # 配置 <property> # 某个属性 <name>fs.defaultFS</name> # 属性的名字是这个 <value>hdfs://localhost:9000</value> # 属性的值是这个,这个值是hdfs的路径 </property> # 属性的闭合标签,一定要有,斜线不要忘 </configuration>
hdfs-site.xml
gedit ~/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
写入如下内容
<configuration> <property> <name>dfs.replication</name> # 数据的备份个数 <value>1</value> # 备份数为一个 </property> </configuration>
格式化NameNode并启动
格式化
~/hadoop-3.2.2/bin/hdfs namenode -format
启动NameNode
~/hadoop-3.2.2/sbin/start-dfs.sh
查看集群状态
hadoop@ubuntu:~$ jps 10960 NameNode 11529 Jps 11115 DataNode 11372 SecondaryNameNode
浏览NameNode的web接口
直接在虚拟机的浏览器里打开 http://localhost:9870
执行一些hdfs操作(之后会经常用到,熟记)
hdfs是一个文件系统,操作和电脑的文件浏览器差不多,有创建文件夹、移动文件等操作
创建hdfs目录
~/hadoop-3.2.2/bin/hdfs dfs -mkdir /user # -mkdir path 是创建目录 ~/hadoop-3.2.2/bin/hdfs dfs -mkdir /user/input
拷贝输入文件到hdfs上
~/hadoop-3.2.2/bin/hdfs dfs -put ~/hadoop-3.2.2/etc/hadoop/*.xml /user/input # -put a b是将本地的a放在hdfs的b上
这个操作是将-put后面的 etc/hadoop/目录下所有后缀为xml的文件复制到hdfs文件系统的/user/hadoop目录下
查看一下hdfs的文件
hadoop@ubuntu:~$ ~/hadoop-3.2.2/bin/hdfs dfs -ls /user/input # -ls a是列出目录a下所有文件 Found 9 items -rw-r--r-- 1 hadoop supergroup 9213 2021-10-26 06:54 /user/hadoop/capacity-scheduler.xml -rw-r--r-- 1 hadoop supergroup 867 2021-10-26 06:54 /user/hadoop/core-site.xml -rw-r--r-- 1 hadoop supergroup 11392 2021-10-26 06:54 /user/hadoop/hadoop-policy.xml -rw-r--r-- 1 hadoop supergroup 849 2021-10-26 06:54 /user/hadoop/hdfs-site.xml -rw-r--r-- 1 hadoop supergroup 620 2021-10-26 06:54 /user/hadoop/httpfs-site.xml -rw-r--r-- 1 hadoop supergroup 3518 2021-10-26 06:54 /user/hadoop/kms-acls.xml -rw-r--r-- 1 hadoop supergroup 682 2021-10-26 06:54 /user/hadoop/kms-site.xml -rw-r--r-- 1 hadoop supergroup 758 2021-10-26 06:54 /user/hadoop/mapred-site.xml -rw-r--r-- 1 hadoop supergroup 690 2021-10-26 06:54 /user/hadoop/yarn-site.xml
运行MapReduce
运行hadoop自带的示例
~/hadoop-3.2.2/bin/hadoop jar ~/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep /user/input /user/output 'dfs[a-z.]+'
分析以下其中的内容:
查看运行结果:
先将hdfs上的结果获取到本地
~/hadoop-3.2.2/bin/hdfs dfs -get /user/output ~/output
读取结果
cat ~/output/* # cat是显示文本的命令
最后关闭hadoop集群,修改配置之前要先关闭集群
~/hadoop-3.2.3/sbin/stop-dfs.sh