本教程讲解Hadoop-3.3.0在Ubuntu体系下集群的搭建。
在正式开始之前,须要自己先安装好一台假造机。下面给各人整理了过程中须要用到的资源包,可以自行获取:
- 链接:https://pan.baidu.com/s/1TWErk6DAyV99WId1af2kqg?pwd=wcop
- 提取码:wcop
- --来自百度网盘超级会员V4的分享
复制代码 创建hadoop用户
1.打开终端,输入命令,创建新用户
- sudo useradd -m hadoop -s /bin/bash
复制代码 2.为hadoop用户设置暗码
3.为了我们背面操作方便,这里可以给予hadoop用户添加管理员权限
最后,在右上角齿轮注销当前用户,登录上我们刚刚创建的hadoop用户。
更新apt
1.更改下载服务器
体系默认的软件源一样平常都是在外网,偶然候不一定能下载乐成,以是可以更改下软件源。进入体系设置(齿轮图标) --> 软件与更新
选择其他站点,再选择国内的软件源。
再点击右下角的选择服务器,输入暗码授权。
根据弹窗信息,点击重新载入,等待加载。
2.打开终端,输入命令:
更新apt,后续我们须要通过它来安装软件。
3.安装vim,输入命令:
遇到下面提示时,直接输入y即可。
之后回车,等待安装即可。
安装SSH
1.输入命令,安装SSH
- sudo apt-get install openssh-server
复制代码 2. 安装乐成后,执行下面命令登录到本机
当有以下提示时,输入yes。然后再输入暗码即可登录到本机。
但是如许我们每次登录都是须要暗码的,以是我们接下来对ssh举行配置,使能无暗码登录。
配置SSH免密登录
1.执行命令exit退出SSH,回到我们原来的窗口
2.使用ssh-keygen生成密钥,并将密钥加到授权中
- cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
- ssh-keygen -t rsa # 会有提示,都按回车就可以
- cat ./id_rsa.pub >> ./authorized_keys # 加入授权
复制代码 3.再次使用ssh localhost即可无暗码登陆到本机
Xshell、Xftp连接
1.xshell、xftp直接在官网下载即可,个人版的免费使用
2.执行命令ifconfig查看当前假造机的ip
3.连接xshell、xftp(以xshell为例)
然后输入用户名、暗码即可连接乐成
安装Java环境
(1)第一种方式
- 1. cd /usr/lib
- 2. sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
- 3. cd ~ #进入hadoop用户的主目录
- 4. cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u371-linux-x64.tar.gz上传到该目录下
- 5. sudo tar -zxvf ./jdk-8u371-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
复制代码 接下来配置环境变量,执行命令
在开头加入以下内容
- export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_371
- export JRE_HOME=${JAVA_HOME}/jre
- export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
- export PATH=${JAVA_HOME}/bin:$PATH
复制代码 生存并退出,然后执行以下命令,是配置立马收效。
最后执行命令查看是否配置乐成,出现下面环境即为配置乐成
- hadoop@ubuntu:~$ java -version
- java version "1.8.0_371"
- Java(TM) SE Runtime Environment (build 1.8.0_371-b12)
- Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
复制代码 (2)第二种方式
1.在没有安装jdk的环境下,我们执行命令java -version,会有提示
2.根据提示执行命令
- sudo apt install openjdk-8-jre-headless
复制代码 3.配置环境变量,执行命令:vim ~/.bashrc,在文件开头加入以下内容
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-i386
- export PATH=$JAVA_HOME/bin:$PATH
复制代码 生存退出
4.执行命令source ~/.bashrc使配置即刻收效
5.执行命令java -version查看是否配置乐成
我们举行到这里,在正式安装Hadoop之前的一些根本配置已经完成,我们可以在关机状态(一定要在关机状态下)拍摄一个快照。
Slave1的配置
1.我们通过上面的快照克隆出一个新的假造机,作为我们的从节点Slave1.
2.克隆出的Slave1和之前的假造机如出一辙,但是我们还须要重新配置SSH,然后再按照上面先容的方法对xshell、xftp举行连接。
Hadoop的安装
1.首先我们先通过网盘下载hadoop-3.3.0的压缩包,然后通过xftp将压缩包传给我们的假造机,要记好我们上传到假造机的位置,我的是在 /home/hadoop/下载/ 路径下。
2.解压到 /usr/local/ 路径下,输入命令
- sudo tar -zxf hadoop-3.3.0-aarch64.tar.gz -C /usr/local
复制代码
然后我们再修改一下文件名,权限
- cd /usr/local/
- sudo mv ./hadoop-3.3.0/ ./hadoop # 将文件夹名改为hadoop
- sudo chown -R hadoop ./hadoop # 修改文件权限
复制代码 3. Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,乐成则会表现 Hadoop 版本信息:
- cd /usr/local/hadoop
- ./bin/hadoop version
复制代码
集群的搭建
1.网络配置
1.改变假造机的主机名,我们将主节点设为Master,从节点设为Slave1,使用下面命令
修改完成后,重新启动假造机,打开终端,主机名已经改变
2.然后,在Master节点中执行如下命令打开并修改Master节点中的“/etc/hosts”文件:
可以在hosts文件中增长如下两条IP和主机名映射关系:
- 192.168.222.151 Master
- 192.168.222.152 Slave1
复制代码 在Slave1节点下的hosts文件下添加上面映射关系,ip根据自己假造机环境举行修改。然后再重新启动各假造机,打开终端,在各结点下输入命令:测试是否相互ping得通,如果ping不通,背面就无法顺遂配置乐成:
- ping Master -c 3
- ping Slave1 -c 3
复制代码
2.SSH免密登录各节点
必须要让Master节点可以SSH无暗码登录到各个Slave节点上。首先,生成Master节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次,因为前面我们对主机名举行了修改。详细命令如下:
- cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
- rm ./id_rsa* # 删除之前生成的公匙(如果已经存在)
- ssh-keygen -t rsa # 执行该命令后,遇到提示信息,一直按回车就可以
复制代码 为了让Master节点能够无暗码SSH登录本机,须要在Master节点上执行如下命令:
- cat ./id_rsa.pub >> ./authorized_keys
复制代码 完成后可以执行命令“ssh Master”来验证一下,可能会遇到提示信息,只要输入yes即可,测试乐成后,请执行“exit”命令返回原来的终端。接下来,在Master节点将上公匙传输到Slave1节点:
- scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
复制代码 上面的命令中,scp是secure copy的简写,用于在 Linux下举行远程拷贝文件,类似于cp命令,不过,cp只能在本机中拷贝。执行scp时会要求输入Slave1上hadoop用户的暗码,输入完成后会提示传输完毕,如下图所示。
接着在Slave1节点上,将SSH公匙加入授权:
- mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在,则忽略本命令
- cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
- rm ~/id_rsa.pub # 用完以后就可以删掉
复制代码 如许,在Master节点上就可以无暗码SSH登录到各个Slave节点了,可在Master节点上执行如下命令举行检验:
3.配置PATH变量
在Master节点下,首先执行命令“vim ~/.bashrc”,也就是使用vim编辑器打开“~/.bashrc”文件,然后,在该文件最上面的位置加入下面一行内容:
- export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
复制代码生存后执行命令“source ~/.bashrc”,使配置收效。
4.配置集群环境
在配置集群/分布式模式时,须要修改“/usr/local/hadoop/etc/hadoop”目次下的配置文件,这里仅设置正常启动所必须的设置项,包括workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5个文件
(1)修改workers
在举行分布式配置时,可以保留localhost,让Master节点同时充当名称节点和数据节点,或者也可以删掉localhost这行,让Master节点仅作为名称节点使用。
本教程让Master节点仅作为名称节点使用,因此将workers文件中原来的localhost删除,只添加如下一行内容:
(2)修改core-site.xml
请把core-site.xml文件修改为如下内容:
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://Master:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/usr/local/hadoop/tmp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- </configuration>
复制代码 (3)修改hdfs-site.xml
对于Hadoop的分布式文件体系HDFS而言,一样平常都是接纳冗余存储,冗余因子通常为3,也就是说,一份数据生存三份副本。但是,本教程只有一个Slave节点作为数据节点,即集群中只有一个数据节点,数据只能生存一份,以是 ,dfs.replication的值照旧设置为 1。hdfs-site.xml详细内容如下:
- <configuration>
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>Master:50090</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/usr/local/hadoop/tmp/dfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/usr/local/hadoop/tmp/dfs/data</value>
- </property>
- </configuration>
复制代码 (4)修改mapred-site.xml
把mapred-site.xml文件配置成如下内容:
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>Master:10020</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>Master:19888</value>
- </property>
- <property>
- <name>yarn.app.mapreduce.am.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
- </property>
- <property>
- <name>mapreduce.map.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
- </property>
- <property>
- <name>mapreduce.reduce.env</name>
- <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
- </property>
- </configuration>
复制代码 (5)修改yarn-site.xml
请把yarn-site.xml文件配置成如下内容:
- <configuration>
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>Master</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
复制代码 上述5个文件全部配置完成以后,须要把Master节点上的“/usr/local/hadoop”文件夹复制到各个节点上。详细来说,须要首先在Master节点上执行如下命令:
- cd /usr/local
- sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
- sudo rm -r ./hadoop/logs/* # 删除日志文件
- tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先压缩再复制
- cd ~
- scp ./hadoop.master.tar.gz Slave1:/home/hadoop
复制代码然后在Slave1节点上执行如下命令:
- sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在)
- sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
- sudo chown -R hadoop /usr/local/hadoop
复制代码 首次启动Hadoop集群时,须要先在Master节点执行名称节点的格式化(只须要执行这一次,背面再启动Hadoop时,不要再次格式化名称节点),命令如下:
如今就可以启动Hadoop了,启动须要在Master节点上举行,执行如下命令:
- start-dfs.sh
- start-yarn.sh
- mr-jobhistory-daemon.sh start historyserver
复制代码 通过命令jps可以查看各个节点所启动的进程。如果已经正确启动,则在Master节点上可以看到NameNode、ResourceManager、SecondrryNameNode和JobHistoryServer进程,如下图所示。
在Slave节点可以看到DataNode和NodeManager进程,如下图所示。
缺少任一进程都体现出错。另外还须要在Master节点上通过命令“hdfs dfsadmin -report”查看数据节点是否正常启动,如果屏幕信息中的“Live datanodes”不为 0 ,则阐明集群启动乐成。由于本教程只有1个Slave节点充当数据节点,因此,数据节点启动乐成以后,会表现如下图所示信息。
也可以在Linux体系的浏览器中输入地址“http://master:9870/”,通过 Web 页面看到查看名称节点和数据节点的状态。如果不乐成,可以通过启动日志排查缘故起因。
特殊须要注意的是,本教程只实现了一个从节点,如果你有更多的从节点,那么对应它们的操作都是一样的。
参考文献
林子雨编著-大数据软件安装和编程实践指南_厦门大学数据库实行室 (xmu.edu.cn)
等等
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |