hadoop集群搭建简要记录
2019/03/09 21:46
准备4台服务器或者虚拟机【centos7】,分别设置好静态ip【之所以设置静态ip主要就是为了省心!!!】
【
centos7下面配置静态IP 参考地址: https://www.linuxidc.com/Linux/2017-10/147449.htm
cd /etc/sysconfig/network-scripts
ls
这里说一下需要修改的位置:
#修改
BOOTPROTO=static #这里讲dhcp换成ststic
ONBOOT=yes #将no换成yes
#新增
IPADDR=192.168.10.100 #静态IP
GATEWAY=192.168.10.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
保存退出后,重启网络服务:
# service network restart
Restarting network (via systemctl):
】
master 192.168.10.100
slave1 192.168.10.101
slave2 192.168.10.102
slave 3 192.168.10.103
主机名分别是 node node1 node2 node3【后面会提到如何进行修改配置】
这里只以master服务器为例。【至于slave机器,可以考虑用虚拟机克隆去生成,简单方便】
安装jdk和hadoop,就是解压。
然后vim /etc/profile 去配置java和hadoop的环境变量。如下:
# jdk1.8 环境变量 2019/03/09 18:19 export JAVA_HOME=/usr/local/jdk1.8 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # hadoop环境变量 2019/03/09 18:19 export HADOOP_HOME=/usr/local/hadoop2.2.0 export HADOOP_LOG_DIR=/usr/local/hadoop2.2.0/logs export YARN_LOG_DIR=$HADOOP_LOG_DIR export PATH=.:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
可以使用命令 hadoop 查看是否成功,参考类似 java -version的功能。
为hadoop的相应文件位置准备文件目录。比如临时生成文件的存储目录、日志信息存储位置、真正数据存储位置、文件系统元数据存储位置、集群数据位置。可以自定义创建对应的文件目录。注意:这些文件目录的路径后面配置要用到。
接下来修改hadoop的相关配置文件:
切换路径到hadoop主目录下的etc下的hadoop路径下:
hadoop-env.sh yarn-env.sh mapred-env.sh 这三个文件里面,添加对jdk的引用,否则在启动hdfs的时候,会报异常:找不到java环境。
添加:export JAVA_HOME=/usr/local/jdk1.8 【 注意 和 /etc/profile 里面配置的java环境变量写法一致,使用绝对路径,最好直接拷贝过来】
vim slaves文件,里面添加slave节点的主机名。主机名的改法后面会说,
配置:core-site.xml【注意里面的路径参数结合自己的实际进行修改。相关路径就是上面让自定义创建的那些目录路径】
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node:9000/</value> <description>设定namenode的主机名和端口</description> </property> <property> <name>hadoop.temp.dir</name> <value>/usr/local/hadoop2.2.0/tmp/hadoop-${user.name}</value> <description>存储临时文件的目录</description> </property> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> </configuration>
配置:hdfs-site.xml【注意里面的路径参数结合自己的实际进行修改。相关路径就是上面让自定义创建的那些目录路径】
<configuration> <property> <name>dfs.namenode.http-address</name> <value>node:50070</value> <description>NameNode地址和端口</description> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>node1:50090</value> <description>SecondNameNode 地址和端口</description> </property> <property> <name>dfs.replication</name> <value>3</value> <description>设定HDFS存储文件的副本个数,默认为3</description> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///usr/local/hadoop2.2.0/hdfs/name</value> <description>namenode 用来 持续存储命名空间和交换日志的本地系统路径</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/hadoop2.2.0/hdfs/data</value> <description>DataNode在本地存储文件的目录列表</description> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///usr/local/hadoop2.2.0/hdfs/namesecondary</value> <description>设置secondarynamenode存储临时镜像的本地文件系统路径,如果这是一个用逗号分割的文件列表,则镜像将会冗余复制到所有目录</description> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> <description>是否允许网页浏览hdfs文件</description> </property> <property> <name>dfs.stream-buffer-size</name> <value>131072</value> <description> 默认4kb,作为hadoop的缓冲区,用于hadoop读取hdfs的文件和写hdfs的文件,好友map的输出都用到了这个缓冲区容量,对于现在硬件,可以设置为128kb(131072),甚至是1mb(太大的话map和reduce的内存溢出) </description> </property> </configuration>
配置:yarn-site.xml【注意里面的路径参数结合自己的实际进行修改。相关路径就是上面让自定义创建的那些目录路径】
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>node</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>node:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>node:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>node:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>node:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>node:8088</value> </property> </configuration>
接下来修改主机名:【centos7】
查看主机名以及相关设置
hostnamectl status --static 静态的
hostnamectl status --transient 瞬态的
hostnamectl status --pretty 灵活的
同时修改三种主机名:
sudo hostnamectl set-hostname <主机名,eg:node/node1/。。。>
绑定主机名和ip
vim /etc/hosts
添加:
192.168.10.100 node
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
guanbi关闭防火墙:
systemctl stop firewalld.service
防止防火墙开机自启动:
systemctl disable firewalld.service
关于各个节点之间使用ssh进行免密通信的设置:很简单,这里不再赘述,网上很多,也很简单。
注意其他slave节点也要进行同样的配置。
最后:
HDFS
启动 start-dfs.sh
hadoop资源管理器 Yarn
启动 start-yarn.sh
JobHistory 历史任务管理器
启动 mr-jobhistory-daemon.sh start historyserver
关闭 同上,start改为stop
最新文章
- BZOJ3069: [Pa2011]Hard Choice 艰难的选择
- django常见小问题收集(转)
- 将Excel数据导入数据库
- 使用swfobject.js时样式及传参的问题
- Mishka and Interesting sum Codeforces Round #365 (树状数组)
- 导入TDP数据包备份
- OpenGL中的投影使用
- Android-------设置TextView同时显示图片和文本,并控制图片大小
- ext panel 它们的定义图像刷新
- RxSwift 之官方文档
- iOS开发——Localizable.strings
- AngularJS学习笔记3
- Django auth认证
- C# 批量新增的两种方法。
- Project D | Digital life
- 五句话搞定JavaScript作用域(ES5)
- Java 中的泛型
- Form数据迁移
- [HEOI2016] 序列
- 【three.js练习程序】旋转、缩放场景