hadoop基础配置及伪分布实现
2021/10/26 23:12:58
本文主要是介绍hadoop基础配置及伪分布实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
hadoop基础配置及伪分布实现
目录
文章目录
- hadoop基础配置及伪分布实现
- 目录
- 一、基础环境准备
- 操作系统准备
- 换源
- 安装java
- 安装其他软件
- 二、单机hadoop安装与配置
- hadoop的安装
- hadoop配置 -- 单机伪分布式
- 三、Hadoop的运行
- 启动hadoop和运行任务
一、基础环境准备
-
操作系统准备
-
安装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
-
-
-
安装java
-
直接下载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安装与配置
-
hadoop的安装
-
下载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
-
-
-
hadoop配置 – 单机伪分布式
首先先说一点,这里的配置,往往一空格,一个标点符号或者大小写的错误都会导致最终运行失败,所以输入之前一定要检查!!
-
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>
-
-
三、Hadoop的运行
-
启动hadoop和运行任务
-
格式化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.]+'
分析以下其中的内容:
- ~/hadoop-3.2.2/bin/hadoop: 调用hadoop程序
- jar:执行这个程序的jar指令,就是告诉程序,要运行jar包
- ~/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar:要执行的jar包的地址
- grep:grep是这个jar包里的指令,就类似于上面的jar和hadoop的关系(在之后自己写的hadoop程序中指定了主类,可以不填这个分支指令)
- /user/input:是输入地址
- /user/output:是输出地址,两个地址都是hdfs上的地址,需要注意的是 /user/output目录不能事先存在
- '‘dfs[a-z.]+’:是grep指令的参数。grep做的事情是筛选文本,这个参数就是告诉grep按这种模式筛选文本。
-
查看运行结果:
-
先将hdfs上的结果获取到本地
~/hadoop-3.2.2/bin/hdfs dfs -get /user/output ~/output
-
读取结果
cat ~/output/* # cat是显示文本的命令
-
-
-
最后关闭hadoop集群,修改配置之前要先关闭集群
~/hadoop-3.2.3/sbin/stop-dfs.sh
-
这篇关于hadoop基础配置及伪分布实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-05-13Windows下hadoop环境搭建之NameNode启动报错
- 2023-04-14hadoop伪分布式集群的安装(不是单机版)
- 2022-12-05Hadoop生态系统—数据仓库Hive的安装
- 2022-11-02Win10搭建Hadoop环境
- 2022-10-19Hadoop生态系统(数据仓库Hive的安装)
- 2022-10-03Hadoop、storm和Spark Streaming简单介绍
- 2022-10-03胖虎的Hadoop笔记——Hadoop的伪分布式部署
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-09Ubuntu下安装伪分布式HADOOP遇到的一些问题