千家信息网

Hadoop集群怎么搭建及如何进行Python操作

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这期内容当中小编将会给大家带来有关Hadoop集群怎么搭建及如何进行Python操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。最近项目中在做千亿大数据存储检索需
千家信息网最后更新 2025年02月22日Hadoop集群怎么搭建及如何进行Python操作

这期内容当中小编将会给大家带来有关Hadoop集群怎么搭建及如何进行Python操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

最近项目中在做千亿大数据存储检索需求,要把10T的文本数据进行解析处理存入数据库进行实时检索,文件的存储成为一个首要处理的问题,使用了多种存储方式,都不是很满足要求,最后使用 HDFS 分布式文件存储系统发现效率、管理等各方面都挺不错,就研究了一下搭建使用方式,特此记录文档

环境

修改主机名

# 按照上面环境配置修改每个机器的hostname vi /etc/hostname  # 使用hostname命令使其生效,就不用重启了 hostname xxxx

修改hosts文件

vi /etc/hosts  192.168.143.130 master 192.168.143.131 slave1 192.168.143.132 slave2 192.168.143.133 slave3 192.168.143.134 slave4

配置免密登录

ssh-keygen -t rsa  ssh-copy-id -i ~/.ssh/id_rsa.pub master ssh-copy-id -i ~/.ssh/id_rsa.pub slave1 ssh-copy-id -i ~/.ssh/id_rsa.pub slave2 ssh-copy-id -i ~/.ssh/id_rsa.pub slave3 ssh-copy-id -i ~/.ssh/id_rsa.pub slave4

安装JDK(每台机器)

apt-get install -y openjdk-8-jre-headless openjdk-8-jdk

配置环境变量

在/etc/profile文件最后添加如下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar export HADOOP_HOME=/usr/hadoop-3.3.0/ export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

使环境变量生效

source /etc/profile

创建目录(每天机器)

创建目录的时候要注意,先通过df -h命令查看本机上的磁盘空间,确定好数据存储的磁盘,然后创建以下三个目录,在下面的配置文件hdfs-site.xml中修改对应的目录配置即可

mkdir -p /home/hadoop/dfs/name mkdir -p /home/hadoop/dfs/data mkdir -p /home/hadoop/temp

安装配置Hadoop

下载Hadoop安装包

http://archive.apache.org/dist/hadoop/core/stable/hadoop-3.3.0.tar.gz

# 解压后拷贝到/usr目录下 tar -xzvf hadoop-3.3.0.tar.gz mv hadoop-3.3.0 /usr

配置Hadoop

配置文件在

/usr/hadoop-3.3.0/etc/hadoop目录下

hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root

core-site.xml

        fs.defaultFS     hdfs://master:9000           hadoop.http.staticuser.user     root           dfs.permissions.enabled     false    

hdfs-site.xml配置多个文件存储目录,使用逗号隔开即可

        dfs.namenode.name.dir     /home/hadoop/dfs/name           dfs.dataname.data.dir     /home/hadoop/dfs/data,/usr1/hadoop/dfs/data           dfs.replication     2    

mapred-site.xml

        mapreduce.framework.name     yarn    

yarn-site.xml

        yarn.resourcemanager.hostname     master           yarn.resourcemanager.webapp.address     master:8088           yarn.nodemanager.aux-services     mapreduce_shuffle    

workers

这里配置的就是DataNode的存储机器,不建议用master作为存储,如果存满了集群就不能用了

slave1 slave2 slave3 slave4

将master上的/usr/hadoop-3.3.9拷贝到其他机器即可

scp /usr/hadoop-3.3.0 slave1:/usr scp /usr/hadoop-3.3.0 slave2:/usr scp /usr/hadoop-3.3.0 slave3:/usr scp /usr/hadoop-3.3.0 slave4:/usr

格式化HDFS目录(在master机器)

hdfs namenode-format

启动Hadoop

在master机器上执行就可以了,执行完以后可以使用jps命令在所有机器上查看进程状态

cd /usr/hadoop-3.3.0/sbin ./start-all.sh

查看进程状态

在master和slave上分别执行jps命令

查看是否成功

在浏览器上打开下面的网页,看能否正常访问

# Hadoop集群信息 http://192.168.143.130:8088/cluster  # HDFS地址 http://192.168.143.130:9870/dfshealth.html  # DataNode地址 http://192.168.143.130:9864/datanode.html  # NodeManager地址 http://192.168.143.130:8042/node  # SecondaryNameNode http://192.168.143.130:9868/status.html

测试文件上传(master)

hdfs dfs -mkdir /test hdfs dfs -put start-dfs.sh /test

HDFS操作命令

创建文件夹

hdfs dfs -mkdir /myTask

创建多层文件

hdfs dfs -mkdir -p /myTask/input

上传文件

hdfs dfs -put /opt/wordcount.txt /myTask

查看总目录下的文件和文件夹

hdfs dfs -ls /

查看myTask目录下的wordcount.txt文件内容

hdfs dfs -cat /myTask/wordcount.txt

删除文件或文件夹

hdfs dfs -rm -r /myTask/wordcount.txt

下载文件到本地

hdfs dfs -get /myTask/wordcount.txt /opt

Python操作hdfs

python操作hdfs时,如果要进行上传下载文件,必须在执行代码的机器上配置hosts文件,原因是hdfs的namenode和datanode注册后是以hostname进行记录的,如果不配置直接进行上传下载操作,那么将会采用hostname进行操作,因此需要在本机上配置hdfs集群机器IP和hostname的对应配置。例如我在本机上进行操作,必须配置如下:

C:\Windows\System32\drivers\etc\hosts  192.168.143.130 master 192.168.143.131 slave1 192.168.143.132 slave2 192.168.143.133 slave3 192.168.143.134 slave4

安装库

pip install hdfs

操作

连接

from hdfs.client import Client client = Client("http://192.168.143.130:9870")

创建目录

client.makedirs(hdfs_path)

删除文件

client.delete(hdfs_path)

上传文件

client.download(hdfs_path, local_path)

获取目录下文件列表

client.list(hdfs_path)

HDFS 文件存储集群的优点是:配置要求低、易于扩展、效率比较高、非常适合大批量文件存储,而且可以提供 web 管理页面,提供非常好的第三方库。在进行 web 开发时,作为文件和图片存储库也是非常好的选择。

上述就是小编为大家分享的Hadoop集群怎么搭建及如何进行Python操作了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

文件 配置 目录 存储 机器 集群 命令 内容 数据 环境 地址 文件夹 本机 上传下载 变量 就是 拷贝 效率 方式 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 ce 网游找不到数据库 网络安全设备监控平台 北京网络技术公司 丰台区 软件开发总结不足之处怎么写 数据库删除所有姓于的员工信息 网络技术最早出现在什么时候 集商网络技术有限公司怎么样 敏哥化身天使玩服务器 数据库管理系统决定dbms 数据库一致性问题解决方法 网络安全问题手抄报二年级 网络技术及应用基础知识 为全文数据库的是 飞行单机数据库 电气软件开发公司 cache数据库审计 数据库按字段生成列表 蓝芽网络技术 湖北 有限公司 谈谈对网络安全的看法 顺义区信息化网络技术服务怎么样 新时达as320变频器服务器 马云的网络安全总监 北仑安卓软件开发项目管理 临洮建设的5g数据库项目 qsl数据库怎么改mdf 软件开发时结构化设计原则 疾风之刃服务器互通 SCI数据库技术工作 怎么修改sql语句数据库名称 服务器更换主板需要重新装系统吗
0