内容简介:所有的节点均创建一个名为修改注意:如果是ubuntu18.04桌面版直接修改
软件 | 版本 | 下载地址 |
---|---|---|
linux | Ubuntu Server 18.04.2 LTS | www.ubuntu.com/download/se… |
hadoop | hadoop-2.7.1 | archive.apache.org/dist/hadoop… |
java | jdk-8u211-linux-x64 | www.oracle.com/technetwork… |
1.2 节点安排
名称 | ip | hostname |
---|---|---|
主节点 | 192.168.233.200 | Master |
子节点1 | 192.168.233.201 | Slave01 |
子节点2 | 192.168.233.202 | Slave02 |
2 创建hadoop用户
所有的节点均创建一个名为 hadoop
的用户,并添加管理员权限。 注意:这里这是单纯为了方便管理,创建的用户名,也可以使用其他用户名,或者使用系统之前的用户,主要有管理员权限即可
$ sudo useradd -m hadoop -s /bin/bash #创建用户 $ sudo passwd hadoop #修改密码 $ sudo adduser hadoop sudo #添加管理员权限 复制代码
3 配置网络环境
3.1 修改主机名
修改 /etc/hostname
文件,每个节点都要修改。
- 主节点修改为:Master
- 从节点分别修改为:Slave01,Slave02,...
注意:如果是ubuntu18.04桌面版直接修改 /etc/hostname
文件即可,ubuntu18.04服务器版还需要修改 /etc/cloud/cloud.cfg
文件 ,修改如下:
# This will cause the set+update hostname module to not operate (if true) preserve_hostname: true #这里是将false改成true 复制代码
3.2 添加IP与主机名的映射关系
在 /etc/hosts
文件里添加如下内容(每个节点都要修改,根据实际情况修改ip)
192.168.233.200 Master 192.168.233.201 Slave01 192.168.233.202 Slave02 复制代码
检查各个节点是否能相互ping通。
3.3 设置SSH无密码登录节点
让Master能够通过SSH无密码登录各个Slave节点
如果修改过主机名,需要重新生成的新的公钥。
在Master上执行如下命令:
$ cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost $ rm ./id_rsa* # 删除之前生成的公匙(如果已经存在) $ ssh-keygen -t rsa # 执行该命令后,遇到提示信息,一直按回车就可以 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 复制代码
接着将Master中的id_rsa.pub文件复制到各个Slave节点中
$ scp ~/.ssh/id_rsa.pub hadoop@Slave01:/home/hadoop/ $ scp ~/.ssh/id_rsa.pub hadoop@Slave02:/home/hadoop/ 复制代码
在各个Slave节点中执行如下命令:
$ mkdir ~/.ssh # 如果不存在该文件夹需先创建 $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys $ rm ~/id_rsa.pub # 用完以后就可以删掉 复制代码
在Master中验证是否可以无密码登录,各个Slave节点。
如:
$ ssh Slave01 #如果成功登录,则配置完成 $ ssh Slave02 #如果成功登录,则配置完成 复制代码
4 安装 java 环境
每个节点都要安装,步骤相同为了方便操作每个节点,默认在 /usr/local/
下新建一个名为 bigdata
的文件夹,存放所有的大数据相关的软件。
$ sudo mkdir /usr/local/bigdata $ sudo chown -R hadoop:hadoop /usr/local/bigdata/ 复制代码
4.1 解压
$ sudo mkdir /usr/local/bigdata/java $ sudo tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/bigdata/java/ 复制代码
4.2 添加环境变量
在 ~/.bashrc
文件中添加如下内容,并执行 $ source ~/.bashrc
命令使其生效
#java export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_211 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 复制代码
5 解压hadoop
下载 hadoop-2.7.1.tar.gz
文件,并解压到 /usr/local/bigdata/
文件夹下
$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/bigdata 复制代码
6 修改hadoop配置文件
需要修改6个文件,文件位于 /usr/local/bigdata/hadoop-2.7.1/etc/hadoop/
下
6.1 slave 文件
将文件中原来的 localhost
删除,添加内容:
Slave01 Slave02 复制代码
6.2 core-site.xml 文件
内容修改为:
<configuration> <!-- 指定HADOOP所使用的文件系统schema(URI)--> <property> <name>fs.defaultFS</name> <value>hdfs://Master:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp</value> <description>Abase for other temporary directories.</description> </property> </configuration> 复制代码
6.3 hdfs-site.xml文件
Hadoop的分布式文件系统HDFS一般采用冗余存储,一份文件通常保存3份副本,所以dfs.replication的值还是设置为3。 具体内容如下:
<configuration> <property> <!-- 指定SecondaryNamenode所在地址 --> <name>dfs.namenode.secondary.http-address</name> <value>Master:50090</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp/dfs/data</value> </property> </configuration> 复制代码
6.4 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> </configuration> 复制代码
6.5 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> 复制代码
6.6 hadoop-env.sh 文件
修改如下内容:
export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_211 # 可以不用 export HADOOP_HOME=/usr/local/hadoop-2.7.1 复制代码
7 设置hadoop环境变量
每个节点都要设置
在 ~/.bashrc
文件中添加如下内容,并 $ source ~/.bashrc
使其生效
export PATH=$PATH:/usr/local/bigdata/hadoop-2.7.1/bin:/usr/local/bigdata/hadoop-2.7.1/sbin 复制代码
8 slave节点配置
slave节点只需将master节点上 /usr/local/
下的 bigdata
文件夹和 ~/.bashrc
文件,放到slave节点即可
注意切换到对应机器执行 $ source ~/.bashrc
使环境变量生效。
后续的软件均可使用此方式配置。
在master节点:
$ sudo rm -r /usr/local/bigdata/hadoop-2.7.1/tmp # 删除 Hadoop 临时文件,如果之前有启动过 $ sudo rm -r /usr/local/bigdata/hadoop-2.7.1/logs/* # 删除日志文件,如果之前有启动过 $ tar -zcvf ~/bigdata.tar.gz /usr/local/bigdata/ # 先压缩再复制 $ scp ~/bigdata.tar.gz Slave01:/home/hadoop $ scp ~/bigdata.tar.gz Slave02:/home/hadoop $ scp ~/bashrc Slave01:/home/hadoop $ scp ~/bashrc Slave02:/home/hadoop 复制代码
在各个slave节点上
$ sudo mkdir /usr/local/bigdata $ sudo chown -R hadoop:hadoop /usr/local/bigdata $ tar -zxvf ~/bigdata.tar.gz -C /usr/local/bigdata $ sudo source ~/.bashrc 复制代码
9 启动Hadoop集群
在Master上执行首次运行需要,执行
$ hdfs namenode -format 复制代码
格式化名称节点,然后就可以启动hadoop了。
启动hadoop:
$ start-dfs.sh $ start-yarn.sh $ mr-jobhistory-daemon.sh start historyserver 复制代码
使用jps查看启动的各个节点,缺少任何进程,都表示出错。
$ jps 3585 JobHistoryServer 2938 NameNode 3148 SecondaryNameNode 3308 ResourceManager 3629 Jps 复制代码
浏览器查看: http://192.168.233.200:50070/
查看相关信息: $ hdfs dfsadmin -report
关闭hadoop:
$ stop-yarn.sh $ stop-dfs.sh $ mr-jobhistory-daemon.sh stop historyserver 复制代码
如果有问题,重复如下命令:
$ stop-dfs.sh # 关闭 $ rm -r /usr/local/bigdata/hadoop-2.7.1/tmp # 删除 tmp 文件,注意这会删除 HDFS中原有的所有数据 $ hdfs namenode -format # 重新格式化名称节点 $ start-dfs.sh # 重启 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何解决分布式集群会话?
- elasticsearch(三)---分布式集群
- 集群、分布式、微服务的区别
- 分布式集群如何实现高效的数据分布
- 分布式集群环境下调用链路追踪
- 浅析 Redis 分布式集群倾斜问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Building Web Reputation Systems
Randy Farmer、Bryce Glass / Yahoo Press / 2010 / GBP 31.99
What do Amazon's product reviews, eBay's feedback score system, Slashdot's Karma System, and Xbox Live's Achievements have in common? They're all examples of successful reputation systems that enable ......一起来看看 《Building Web Reputation Systems》 这本书的介绍吧!