IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop-hdfs学习使用 -> 正文阅读

[大数据]Hadoop-hdfs学习使用

教程

Hadoop是一个开源的分布式计算和存储框架,由apache基金会开发维护。Hadoop使用Java开发,其核心部分包括hdfs和mapreduce

历史

Google的三大论文gfs、mapreduce、bigtable。gfs是一个在计算机集群中运行的分布式文件系统,hdfs是其实现版,mapreduce是一个分布式计算方式

作用

Hadoop在某种程度上将多机组成了一台计算机,hdfs就相当于硬盘,mapreduce就相当于cpu

运行环境

先买了一个阿里云的服务器ecs,默认是用root登录的,我们可以创建一个新的账号

sudo useradd usrname
sudo passwd usrname

会报错
会有报错Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
这时我们找到 /etc/ssh/sshd_config
设置 PasswordAuthentication yes
就可以了
就可以登录了。

似乎这个hdfs强烈推荐用docker,也装一下吧
参考这里
https://www.runoob.com/docker/centos-docker-install.html

docker部署

docker pull centos:8
docker run -d centos:8 /usr/sbin/init
docker ps
docker exec f38f83175fca echo "Hello docker"

有点抽象,在给docker装jdk的过程中,遇到了

Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream                                                                                                       668  B/s | 150  B     00:00    
Errors during downloading metadata for repository 'appstream':
  - Status code: 404 for https://mirrors.ustc.edu.cn/centos/8/AppStream/x86_64/os/repodata/repomd.xml (IP: 202.141.176.110)
Error: Failed to download metadata for repo 'appstream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

无奈只能把hadoop装在docker外的裸机上

yum install -y java-1.8.0-openjdk-devel openssh-clients openssh-server

hadoop安装

下载3.2.4版本,有点子慢,要三个小时才能下载玩

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
tar zxvf hadoop-3.2.4.tar.gz
sudo mv hadoop-3.2.4 /usr/local/hadoop
echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/bashrc # 写入rc如zshrc
echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/bashrc 
echo "export JAVA_HOME=/usr" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh # 以root执行
echo "export HADOOP_HOME=/usr/local/hadoop" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
hadoop version

在这里插入图片描述

配置与使用

之前提到过的 Hadoop 三种模式:单机模式、伪集群模式和集群模式。

单机模式:Hadoop 仅作为库存在,可以在单计算机上执行 MapReduce 任务,仅用于开发者搭建学习和试验环境。

伪集群模式:此模式 Hadoop 将以守护进程的形式在单机运行,一般用于开发者搭建学习和试验环境。

集群模式:此模式是 Hadoop 的生产环境模式,也就是说这才是 Hadoop 真正使用的模式,用于提供生产级服务。

配置与启动

确认一下Hadoop存在

hadoop version

将本机添加到ssh信任列表
参考
https://www.cnblogs.com/lavender-pansy/p/14483479.html

cat id_rsa.pub >> authorized_keys
# 将公钥追加到authorized_keys文件中去
chmod 600 authorized_keys
# 将authorized_keys文件权限更改为600
# 至此设置免密操作完毕

查看本机IP地址,取第一个结果

ip addr | grep 172

这里我们修改两个文件:core-site.xml 和 hdfs-site.xml

在 core-site.xml 中,我们在 标签下添加属性:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://<你的IP>:9000</value>
</property>

在 hdfs-site.xml 中的 标签下添加属性:

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

执行

hdfs namenode -format
start-dfs.sh

这里要注意,这两个指令都是可以在任意路径执行的
可以看到在sbin下有这个脚本,说明设置HOME就能够让os找到脚本的位置
在这里插入图片描述
启动分三个步骤,分别启动 NameNode、DataNode 和 Secondary NameNode。

我们可以运行 jps 来查看 Java 进程:

jps

注意

  1. $HADOOP_HOME/etc/hadoop/core-site.xml 中IP要选择带172开头的私网IP,否则本机使用会有问题
  2. 注意设置本机ssh信任,设置过后ssh localhost不需要填写密码。否则start脚本会报错。

使用

?  ~ hadoop fs -mkdir /hello
?  ~ ls
download  workspace
?  ~ touch hello.txt
?  ~ vim hello.txt           
?  ~ ls
download  hello.txt  workspace
?  ~ hadoop fs -put hello.txt /hello/
?  ~ cd workspace                    
?  workspace ls
hello.cpp
?  workspace hadoop fs -get /hello/hello.txt 
?  workspace ls
hello.cpp  hello.txt
?  workspace cat hello.txt                            
hello hdfs

关于api的使用见下一篇文章

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:49:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:32:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码