Skip to main content
 Web开发网 » 操作系统 » linux系统

Hadoop集群搭建及Python操作

2021年10月14日7560百度已收录

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

Hadoop集群搭建及Python操作  Hadoop 第1张

环境IP

hostname

角色

192.168.143.130

master

NameNode、ResourceManager

192.168.143.131

slave1

DataNode、NodeManager

192.168.143.132

slave2

DataNode、NodeManager

192.168.143.133

slave3

DataNode、NodeManager

192.168.143.134

slave4

DataNode、NodeManager

修改主机名# 按照上面环境配置修改每个机器的hostnamevi /etc/hostname# 使用hostname命令使其生效,就不用重启了hostname xxxx修改hosts文件vi /etc/hosts192.168.143.130 master192.168.143.131 slave1192.168.143.132 slave2192.168.143.133 slave3192.168.143.134 slave4配置免密登录ssh-keygen -t rsassh-copy-id -i ~/.ssh/id_rsa.pub masterssh-copy-id -i ~/.ssh/id_rsa.pub slave1ssh-copy-id -i ~/.ssh/id_rsa.pub slave2ssh-copy-id -i ~/.ssh/id_rsa.pub slave3ssh-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-amd64export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jarexport HADOOP_HOME=/usr/hadoop-3.3.0/export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/binexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport 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/namemkdir -p /home/hadoop/dfs/datamkdir -p /home/hadoop/temp安装配置Hadoop下载Hadoop安装包

# 解压后拷贝到/usr目录下tar -xzvf hadoop-3.3.0.tar.gzmv hadoop-3.3.0 /usr配置Hadoop配置文件在/usr/hadoop-3.3.0/etc/hadoop目录下

hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=rootcore-site.xml<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.作为存储,如果存满了集群就不能用了

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

scp /usr/hadoop-3.3.0 slave1:/usrscp /usr/hadoop-3.3.0 slave2:/usrscp /usr/hadoop-3.3.0 slave3:/usrscp /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集群信息的对应配置。例如我在本机上进行操作,必须配置如下:

C:\Windows\System32\drivers\etc\hosts192.168.143.130 master192.168.143.131 slave1192.168.143.132 slave2192.168.143.133 slave3192.168.143.134 slave4安装库pip install hdfs操作连接from hdfs.client import Clientclient = Client(" 开发时,作为文件和图片存储库也是非常好的选择。

评论列表暂无评论
发表评论
微信