马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
你遇到的大部门ubuntu中配置hadoop的题目这里都有办理方法!!!(近10000字)
概要
在Docker虚拟 容器环境下,进行Hadoop-3.2.2分布式集群环境的 配置与安装,完成基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的 配置。
1.主要步骤
- 安装配置启动Docker虚拟容器
- 配置主机名
- 配置主动时钟同步
- 配置hosts列表
- 配置免密码登录
- 安装JDK(在三台节点分别操作此步骤)
- 安装部署Hadoop集群
2、实验环境
虚拟机数量:3
体系版本:Centos Stream/Ubuntu 20.4(18.4)
Hadoop版本:Apache Hadoop 3.2.2(3.2.1)
3、相干技能
认识Linux操作体系
Hadoop原理
4、知识点
常见Linux下令的使用
linux体系基础配置
配置JDK
配置Hadoop的相干参数
掌握Hadoop操作指令
在安装Docker之前安装一些须要的依赖包:
- sudo apt install apt-transport-https ca-certificates curl software-properties-common
复制代码 添加 Docker 的官方 GPG 密钥
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
复制代码 添加 Docker 的 APT 源
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
复制代码 更新 APT 包索引
安装 Docker CE
- sudo apt install docker-ce
复制代码 安装完成后,您可以通过运行以下下令来验证 Docker 是否成功安装:
- sudo systemctl status docker
复制代码
下载Docker compose
- sudo apt update
- sudo apt install docker-composedocker-compose version
复制代码 创建Docker-compose.yml
将以下内容放入yml:
在docker镜像地点中有已无法进入的地点,需要换源,具体看:完美办理Docker pull时报错:https://registry-1.docker.io/v2/-CSDN博客
启动Docker虚拟容器
- sudo docker-compose -f docker-compose.yml up
复制代码
打开三个新的 终端窗口,分别登录master、slave01和slave02节点( 按下ctrl + d可以从各节点退出)
- sudo docker exec -it masternode /bin/bash
- sudo docker exec -it slave01node /bin/bash
- sudo docker exec -it slave02node /bin/bash
复制代码
使用vim编辑masternode主机名
docker容器中没有vim包需要下载:
- apt-get update
- apt-get install -y vim
复制代码 同理将slave01和slave02也改好
使用Linux下令crontab配置定时使命进行主动时钟同步(分别进入三个节点)
- apt install -y cron
- crontab -e
复制代码 按”i ”键,进入INSERT模式;输入下面的内容(星号之间和前后都有空格)
- 0 1 * * * ntpdate cn.pool.ntp.org
复制代码 按Esc键退出INSERT模式,按下“shift+:”键,输入wq生存修改并退出
手动同步时间,直接在Terminal运行下面的下令
- apt install -y ntpdate
- ntpdate cn.pool.ntp.org
复制代码
分别在三个节点配置hosts列表
在各虚拟机中运行ifconfig下令,得到当前节点的ip地点
- apt install -y net-tools
- ifconfig
复制代码 分别得到三个结点的ip地点
编辑主机名列表文件
将下面三行添加到/etc/hosts文件中,生存退出
- #master节点对应IP地址是10.10.0.11,slave01对应的IP是10.10.0.12,slave02对应的IP是10.10.0.13
- 10.10.0.11 master
- 10.10.0.12 slave01
- 10.10.0.13 slave02
复制代码
Ping主机名,按“Ctrl+C”停止下令
- ping master
- ping slave01
- ping slave02
复制代码
三个虚拟节点的免密码登录配置
先在master节点上进行配置,生成rsa的SSH公钥
- apt install -y openssh-client
- ssh-keygen -t rsa
复制代码
生成的密钥在用户根目录中的.ssh子目录中,进入.ssh目录,查看目录文件
将id_rsa.pub 文件追加到authorized_keys文件中
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
复制代码修改authorized_keys文件的权限,下令如下:
- chmod 600 ~/.ssh/authorized_keys
复制代码 将专用密钥添加到 ssh-agent 的高速缓存中
- ssh-agent bash
- ssh-add ~/.ssh/id_rsa
复制代码
将authorized_keys文件复制到slave01、slave02节点root用户的根目录,下令( 在宿主机终端下执行)如下:
- sudo docker cp masternode:/root/.ssh/authorized_keys .
- sudo docker cp authorized_keys slave01node:/root/.ssh/
- sudo docker cp authorized_keys slave02node:/root/.ssh/
复制代码
打开主机和三个节点的防火墙
验证免密登陆
退出slave01远程登录
通过apt-get安装JDK
- apt-get install openjdk-8-jdk
复制代码 使用vim修改“.bashrc”
复制粘贴以下内容添加到到上面vim打开的文件中:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$JAVA_HOME/bin  PATH
使环境变量见效,查看Java版本
- source ~/.bashrc
- java -version
复制代码
安装部署Hadoop集群
说明:每个节点上的Hadoop配置基本相同,在master节点操作,然后复制到slave01、slave02两个节点。
hadoop用Ubuntu自带的火狐浏览器下载,镜像地点:
- https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/
复制代码
将/目录下的hadoop-3.4.1.tar.gz压缩包解压到/hadoop-3.4.1目录下:
- sudo tar -zxf /home/Downloads/hadoop-3.4.1.tar.gz -C /usr/local
复制代码 -zxf背面的是刚才下载的压缩包路径,如果没安装输入法打不了中文的可以直接找到刚才下载的那个压缩包点复制然后粘贴到下令行就是路径了
配置hadoop-env.sh文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/hadoop-env.sh
复制代码在hadoop-env.sh文件中添加JAVA环境变量:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
配置yarn-env.sh文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-env.sh
复制代码在yarn-env.sh文件中添加JAVA环境变量
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
配置core-site.xml 文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/core-site.xml
复制代码
复制粘贴以下内容,添加到上面vim打开的core-site.xml 文件中:
- <?xml version="1.0" encoding="UTF-8"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <!-- Put site-specific property overrides in this file. -->
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://master:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/hadoop</value>
- </property>
- </configuration>
复制代码 配置hdfs-site.xml 文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/hdfs-site.xml
复制代码 复制粘贴以下内容,添加到到上面vim打开的hdfs-site.xml 文件中:
- <?xml version="1.0" encoding="UTF-8"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <!-- Put site-specific property overrides in this file. -->
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>2</value>
- </property>
- </configuration>
复制代码 配置yarn-site.xml 文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-site.xml
复制代码 复制粘贴以下内容,添加到到上面vim打开的yarn-site.xml 文件中:
- <?xml version="1.0"?>
- <configuration>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.resourcemanager.address</name>
- <value>master:18040</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address</name>
- <value>master:18030</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address</name>
- <value>master:18025</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address</name>
- <value>master:18141</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address</name>
- <value>master:18088</value>
- </property>
- </configuration>
复制代码 配置mapred-site.xml 文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/mapred-site.xml
复制代码 复制粘贴以下内容,添加到到上面vim打开的mapred-site.xml 文件中:
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- </configuration>
复制代码 配置workers 文件
- vi /usr/local/hadoop-3.4.1/etc/hadoop/workers
复制代码复制粘贴以下内容,添加到到上面vim打开的workers文件中:
将配置好的hadoop-3.4.1文件夹复制到从节点
- scp -r /usr/local/hadoop-3.4.1/ root@master:/
- scp -r /usr/local/hadoop-3.4.1/ root@slave01:/
- scp -r /usr/local/hadoop-3.4.1/ root@slave02:/
复制代码 如果输入密码错误:需要在从节点用 passwd root
下令设置密码
如果显示无法连接错误:
安装 OpenSSH 服务端
- apt update && apt install -y openssh-server
复制代码 启动 SSH 服务
配置 SSH
添加:
- PermitRootLogin yes # 允许 root 登录(仅测试环境)
- PasswordAuthentication yes
复制代码 重启ssh服务:
效果如下:
配置Hadoop环境变量(在三台节点分别操作此步骤)
在.bashrc末尾添加如下内容:
- ##HADOOP
- export HADOOP_HOME=/hadoop-3.4.1
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
复制代码
使环境变量见效
格式化Hadoop文件目录(在master上执行)
说明:格式化后首次执行此下令,提示输入y/n时,输入y。
启动Hadoop集群(在master上执行):
查看Hadoop进程是否启动,在master的终端执行jps下令,出现下图效果
浏览器地点栏中输入http://127.0.0.1:9870/,查抄namenode 和datanode 是否正常,如下图所示:
在浏览器地点栏中输入http://127.0.0.1:18088/,查抄Yarn是否正常,如下图所示:
运行PI实例查抄集群是否成功,成功如下图所示:
- hadoop jar /hadoop-3.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar pi 10 10
复制代码
其他细节事项:
首先打开VMware虚拟机,进入Ubuntu操作体系,进入终端:
然后在终端切换到root用户:
设置 root 用户的密码:
输入密码后切换到root模式:
在Linux安装软件时需要用到yum下令,也可以是apt-get下令,以下介绍如何在ubtuntu中安装配置yum
接下来是安装build-essential步伐包和yum:
- apt-get install build-essential
- apt-get install yum
复制代码 在安装yum后可能会遇到以下报错:
E: Unable to locate package yum
这时间需要手动下载yum:
- sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
复制代码 2.更换源
- sudo vim /etc/apt/sources.list
复制代码 如果这个时间报错无法发现vim
- sudo apt-get update
- sudo apt-get install vim
复制代码 按照上述方式下载vim
3.vim编辑
接下来会进入到sources.list的内容里进行编辑
- 点击insert进入编辑模式
- 将下面网站文本复制粘贴并覆盖,粘贴的下令是 shift + insert。记得选择相应的Linux版本,此处为Ubuntu 20.04
在第一行添加镜像源如下:
- deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
复制代码 4.更新源
5.安装yum
然后如果有以下提示:
The following packages have unmet dependencies:
按照提示逐一安装依赖:
- sudo apt-get install python-sqlitecachec
- sudo apt-get install python-pycurl
- sudo apt-get install python-urlgrabber
复制代码 再次安装yum:
安装yum成功:
末了将自己配置的repo文件用yum-config-manager进行yum软件源添加:
- yum-config-manager --add-repo /etc/yum.repo.d/my.repo
复制代码 通过使用yum repolist下令查看时,由于刚下载yum,显示库的软件信息为0
这时需要配置yum源
参考这篇博主的文章:
# ubuntu 体系使用 yum下令报错 There are no enabled repos.Run “yum repolist all“ to see the repos you have..._there are no enabled repos. run "yum repolist all"-CSDN博客
好了之后就可以安装了
- yum upgrade
- yum install net-tools
复制代码 设置root密码
在docker容器内,初始化root密码,用于下一步的登录。
|