这是我参与更文挑战的第24天,活动详情查看: 更文挑战
?
最近接触到hadoop,想要最快速搭建一个hadoop集群,于是我就开始进入到官网,发现它是支持docker部署的,便有了本文。
安装依赖
docker依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码
添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
安装docker-ce
yum -y install docker
复制代码
启动docker服务
systemctl start docker
复制代码
查询是否安装成功
docker version
systemctl status docker
复制代码
安装docker-compose依赖
安装依赖
yum -y install epel-release
yum -y install python-pip
复制代码
安装docker-compose
yum install docker-compose
docker-compose version
复制代码
正式开装hadoop集群
新建docker-compose的yml文件
vim docker-compose.yml
复制代码
内容如下
version: "2"
services:
namenode:
image: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8
container_name: namenode
volumes:
- hadoop_namenode:/hadoop/dfs/name
environment:
- CLUSTER_NAME=test
env_file:
- ./hadoop.env
ports:
- "9999:50070"
resourcemanager:
image: bde2020/hadoop-resourcemanager:1.1.0-hadoop2.7.1-java8
container_name: resourcemanager
depends_on:
- namenode
- datanode1
- datanode2
env_file:
- ./hadoop.env
ports:
- "8088:8088"
historyserver:
image: bde2020/hadoop-historyserver:1.1.0-hadoop2.7.1-java8
container_name: historyserver
depends_on:
- namenode
- datanode1
- datanode2
volumes:
- hadoop_historyserver:/hadoop/yarn/timeline
env_file:
- ./hadoop.env
ports:
- "8188:8188"
nodemanager1:
image: bde2020/hadoop-nodemanager:1.1.0-hadoop2.7.1-java8
container_name: nodemanager1
depends_on:
- namenode
- datanode1
- datanode2
env_file:
- ./hadoop.env
ports:
- "8042:8042"
datanode1:
image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8
container_name: datanode1
depends_on:
- namenode
volumes:
- hadoop_datanode1:/hadoop/dfs/data
env_file:
- ./hadoop.env
datanode2:
image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8
container_name: datanode2
depends_on:
- namenode
volumes:
- hadoop_datanode2:/hadoop/dfs/data
env_file:
- ./hadoop.env
datanode3:
image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8
container_name: datanode3
depends_on:
- namenode
volumes:
- hadoop_datanode3:/hadoop/dfs/data
env_file:
- ./hadoop.env
volumes:
hadoop_namenode:
hadoop_datanode1:
hadoop_datanode2:
hadoop_datanode3:
hadoop_historyserver:
复制代码
可以简单看到,我下了一个hadoop_namenode,3个hadoop_datanode和一个hadoop_historyserver
在当前目录下,创建一个配置文件
vi hadoop.env
复制代码
内容如下
CORE_CONF_fs_defaultFS=hdfs://namenode:8020
CORE_CONF_hadoop_http_staticuser_user=root
CORE_CONF_hadoop_proxyuser_hue_hosts=*
CORE_CONF_hadoop_proxyuser_hue_groups=*
HDFS_CONF_dfs_webhdfs_enabled=true
HDFS_CONF_dfs_permissions_enabled=false
YARN_CONF_yarn_log___aggregation___enable=true
YARN_CONF_yarn_resourcemanager_recovery_enabled=true
YARN_CONF_yarn_resourcemanager_store_class=org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore
YARN_CONF_yarn_resourcemanager_fs_state___store_uri=/rmstate
YARN_CONF_yarn_nodemanager_remote___app___log___dir=/app-logs
YARN_CONF_yarn_log_server_url=http://historyserver:8188/applicationhistory/logs/
YARN_CONF_yarn_timeline___service_enabled=true
YARN_CONF_yarn_timeline___service_generic___application___history_enabled=true
YARN_CONF_yarn_resourcemanager_system___metrics___publisher_enabled=true
YARN_CONF_yarn_resourcemanager_hostname=resourcemanager
YARN_CONF_yarn_timeline___service_hostname=historyserver
YARN_CONF_yarn_resourcemanager_address=resourcemanager:8032
YARN_CONF_yarn_resourcemanager_scheduler_address=resourcemanager:8030
YARN_CONF_yarn_resourcemanager_resource___tracker_address=resourcemanager:8031
复制代码
注意我们是安装hadoop2.X的版本,与1.X的最大区别是,2.X版MapReduce中资源调度的任务解耦合出来交 Yarn 来管理。
最后一步
docker-compose up -d
复制代码
我们到界面看一下,可以看到都安装好了。
输入网址: ip:8088 (8088需要开放才能访问哦,本地关闭防火墙,阿里云服务器开放8088,9999端口)
我们看看资源管理器
我们看看节点信息:
在容器里操作hdfs文件
hadoop fs -mkdir /hdfs #在根目录下创建hdfs文件夹
hadoop fs -ls / #列出跟目录下的文件列表
hadoop fs -mkdir -p /hdfs/d1/d2 级联创建目录
hadoop fs -ls -R / 级联列出目录
echo "hello hdfs" >>local.txt 上传本地文件到HDFS
hadoop fs -put local.txt /hdfs/d1/d2
hadoop fs -cat /hdfs/d1/d2/local.txt 查看HDFS中文件的内容
hadoop fs -get /hdfs/d1/d2/local.txt 下载hdfs上文件的内容
hadoop fs -rm /hdfs/d1/d2/local.txt
hadoop fs -ls /hdfs 删除hdfs中目录
hadoop fs -chown admin /hdfs/d1 #修改文件所属用户为admin 修改文件所属的用户
hadoop fs -ls /hdfs
hadoop fs -chgrp admin /hdfs/d1 修改文件的用户组
查看所有命令方式:
hadoop fs
复制代码
基础基本上就讲到这里,下一篇文章我会深入讲解读写、灾备恢复、mapreduce等。
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞? 求关注❤️ 求分享? 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END