hadoop完全分步式搭建
实验环境介绍
4台机器,规划如下:
计算机名 | IP地址 | 角色 |
---|---|---|
master | 192.168.138.200 | NameNode,SecondaryNameNode,ResourceManager |
slave | 192.168.138.201 | DataNode,NodeManager |
ha1 | 192.168.138.202 | DataNode,NodeManager |
ha2 | 192.168.138.203 | DataNode,NodeManager |
第一步:配置/etc/hosts文件
cat /etc/hosts
192.168.138.200 master
192.168.138.201 slave
192.168.138.202 ha1
192.168.138.203 ha2
由于4台主机hosts文件相同,这里使用saltstack等工具将文件分发到其他3台机器上。
salt '*' cp.get_file salt://files/hosts /etc/hosts
第二步:安装java-1.8.0-openjdk和java-1.8.0-openjdk-devel
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
其它机器使用saltstack批量安装:
cat /srv/salt/base/top.sls
base:
'L@ha1,ha2,slave':
- add_pkgs
[root@master base]# cat add_pkgs.sls
add_java_1.8:
pkg.installed:
- pkgs: ['java-1.8.0-openjdk','java-1.8.0-openjdk-devel']
salt '*' state.highstate saltenv=base test=False
检查一下是否安装成功
java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
以上信息表示安装成功。
第三步:下载hadoop二进制包
下载地址:https://hadoop.apache.org/releases.html
选择一个适合的版本下载,本文选择的是2.7.5的二进制版本,二进制包无需编译可直接运行。
解压包到/usr/local/hadoop
tar xvf hadoop-2.7.5.tar.gz -C /usr/local/
mv /usr/local/hadoop-2.7.5 /usr/local/hadoop
第四步:配置master到其它主机包括自己的SSH免密免yes登录
ssh-keygen -b 2048 -t rsa -N ''
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ha1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ha2
编辑/etc/ssh/ssh-config修改或新增如下2行
Host *
GSSAPIAuthentication no
StrictHostKeyChecking no
测试一下:
[root@master ~]# ssh master
Last login: Mon Jan 29 10:55:36 2018 from master
[root@master ~]# logout
Connection to master closed.
[root@master ~]# ssh slave
Last login: Mon Jan 29 10:55:43 2018 from master
[root@slave ~]# logout
Connection to slave closed.
[root@master ~]# ssh ha1
Last login: Mon Jan 29 10:56:24 2018 from slave
[root@ha1 ~]# logout
Connection to ha1 closed.
[root@master ~]# ssh ha2
Last login: Sun Jan 28 18:28:59 2018 from master
[root@ha2 ~]# logout
Connection to ha2 closed.
[root@master ~]#
这里需要注意的一点是:有时候配置好登录仍然会提示输入密码的问题,主要原因在于用户家目录不能带有w权限,把w权限去掉就可以了。
第五步:配置/usr/local/hadoop/etc/hadoop/hadoop-env.sh
这是hadoop环境变量脚本,其中需要配置的是:
export JAVA_HOME="" #这行信息需要配置JAVA1.8的库环境路径
export HADOOP_CONF_DIR="" #这行配置hadoop配置文件路径
JAVA_HOME查找方法:
[root@master base]# which java
/usr/bin/java
[root@master base]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 Jan 22 20:21 /usr/bin/java -> /etc/alternatives/java
[root@master base]# readlink /etc/alternatives/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java
这样就得出JAVA_HOME的路径为:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre
HADOOP_CONF_DIR配置文件路径直接填写:/usr/local/hadoop/etc/hadoop即可。
所以//usr/local/hadoop/etc/hadoop/hadoop-env.sh需要修改的两行如下:
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre"
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"
第六步:配置/usr/local/hadoop/etc/hadoop/core-site.xml
cat //usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
在所有机器上创建/var/hadoop文件夹
salt '*' cmd.run "mkdir -p /var/hadoop"
第七步:配置/usr/local/hadoop/etc/hadoop/hdfs-site.xml
cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
第八步:把/usr/local/hadoop/etc/hadoop文件夹同步到所有机器
salt '*' cp.get_dir salt://files/hadoop/ /usr/local/hadoop/etc/
第九步:在namenode上执行格式化操作
/usr/local/hadoop/bin/hdfs namenode -format
在没有报错的情况启动集群
/usr/local/hadoop/sbin/start-dfs.sh
第十步:验证
在所有机器上执行 jps
salt '*' cmd.run "jps"
[root@master ~]# jps
93353 SecondaryNameNode
123000 Jps
95210 ResourceManager
94332 NameNode
[root@master ~]# salt '*' cmd.run "jps"
ha1:
10292 Jps
9484 NodeManager
9279 DataNode
slave:
22323 DataNode
23369 Jps
22522 NodeManager
ha2:
8594 Jps
7715 NodeManager
7512 DataNode
能看到节点信息说明搭建成功。
hadoop完全分步式搭建的更多相关文章
- mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储
摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...
- 基于Zookeeper的分步式队列系统集成案例
基于Zookeeper的分步式队列系统集成案例 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, ...
- 转】Mahout分步式程序开发 聚类Kmeans
原博文出自于: http://blog.fens.me/hadoop-mahout-kmeans/ 感谢! Mahout分步式程序开发 聚类Kmeans Hadoop家族系列文章,主要介绍Hadoop ...
- 转】Mahout分步式程序开发 基于物品的协同过滤ItemCF
原博文出自于: http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/ 感谢! Posted: Oct 14, 2013 Tags: Hadoopite ...
- Mahout分步式程序开发 聚类Kmeans(转)
Posted: Oct 14, 2013 Tags: clusterHadoopkmeansMahoutR聚类 Comments: 13 Comments Mahout分步式程序开发 聚类Kmeans ...
- Mahout分步式程序开发 基于物品的协同过滤ItemCF
http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...
- hadoop+spark集群搭建入门
忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...
- hadoop集群环境搭建之zookeeper集群的安装部署
关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...
- hadoop集群环境搭建之安装配置hadoop集群
在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/ (如果没有这个目录 ...
随机推荐
- TensorFlow 官方文档中文版 --技术文档
1.文档预览 2.文档下载 TensorFlow官方文档中文版-v1.2.pdf 提取码:pt7p
- PI接口开发之调java WS接口
java提供的WSDL:http://XXX.XXX.XXX.XX/XXXXXXXcrm/ws/financialStatementsService?wsdl 登陆PI,下载Enterprise Se ...
- input框输入完回车即可查询事件
简单有效的方法,随笔记录一下在html设置id <input id="search_sim" type="text" class="form-c ...
- CAD{绘制坡道)(绘制楼梯)5.26
“楼梯其他”“坡道”编辑坡道的各项数据, 三维图中坡道反了.在平面图中镜像,“MI"镜像坡道.给坡道一个箭头引注, 绘制楼梯:”楼梯其他“”双跑楼梯“编辑参数,绘制楼梯,双击楼梯,改变成首层 ...
- 网络编程-day1
一. *** C/S架构:客户端(client)/服务端(server)架构, B/S架构:浏览器(browser) / 服务端(server)架构 软件cs架构:浏览器,qq,微信,陌陌等等 硬件c ...
- Aop理解 ioc理解
AOP 把 [核心代码]和[非核心代码]分离 提高开发的效率 java设计模式: https://www.cnblogs.com/malihe/p/6891920.html N+1就是: 1:一条查询 ...
- Django进阶之CSRF
简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功能有 ...
- main 团队项目厨娘:用例图、类图、时序图
团队:main 项目:厨娘 个人用例图
- LeetCode 81 搜索旋转排序数组II
题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是否存在于 ...
- JAVA数据库操作回滚小结
一:总结的原因 在最近的工作中,遇到了一个一对多关系多表数据传输,传送成功状态绑定在主数据表上,因为代码不健壮问题造成了主表传送状态更新失败,而子表数据就被重复插入.又由于数据传输频率很高,我们的测试 ...