文档章节

HADOOP集群部署

胡佐治
 胡佐治
发布于 2017/02/12 10:38
字数 1660
阅读 535
收藏 0

hadoop集群部署指导

#基础环境&软件

软件版本

* jdk-1.8u111-x64.tar.gz
* hbase-1.1.8.tar.gz
* apache-hive-1.1.1.tar.gz
* hadoop-2.6.5.tar.gz
* zookeeper-3.4.6.tar.gz

环境

  • OS CentOS release 6.6.x64
  • 服务器3台
server1:
hostname:bigdata1.localdomain 
ip:169.24.2.100


server2:
hostname:bigdata2.localdomain
ip:169.24.2.102

server3:
hostname:bigdata3.localdomain
ip:169.24.2.103

修改hosts

使用root用户登录每台服务器后执行下面的命令

echo 169.24.2.100 bigdata1.localdomain bigdata1 
echo 169.24.2.102 bigdata2.localdomain bigdata2
echo 169.24.2.103 bigdata3.localdomain bigdata3

新增hadoop用户

使用root用户登录每台服务器后执行下面的命令

useradd hadoop 
passwd hadoop #设置hadoop的密码

创建hadoop的部署目录并赋予hadoop权限

mkdir /hadoop_install 
chown -R hadoop:hadoop /hadoop_install

增加无密码登录

使用hadoop登录到bigdata1 执行下面的指令

ssh-keygen -t rsa #不要输入密码,避免在远程执行指令时要求输入密码

chmod 700 .ssh/authorized_keys 

将id_rsa.pub的文件分发到其他两台服务器上

ssh hadoop@bigdata2 "cat>>~/.ssh/authorized_keys"<~/.ssh/id_rsa.pub #本次是需要输入远程密码的

ssh hadoop@bigdata2 uname #验证是否需要输入密码

其他两台服务器上做同样的操作

时间同步

这一点十分重要,一定要保证服务器的时间是同步的,否则hbase启动会失败

配置基本软件

软件均部署在/hadoop_install目录下,请保证系统盘提供了足够大的空间

分别将软件

  • jdk-1.8u111-x64.tar.gz
  • hbase-1.1.8.tar.gz
  • apache-hive-1.1.1.tar.gz
  • hadoop-2.6.5.tar.gz

解压到/hadoop_install目录下,注意权限

chown -R hadoop:hadoop /hadoop_install 

### 配置hadoop

创建数据目录

mkdir -p /hadoop
chown hadoop:hadoop /hadoop 

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://169.24.2.100:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>4096</value>
        </property>

</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>
            <name>dfs.replication</name>
            <value>2</value>
    </property>
    <property>
        <name>dfs.datanode.max.xcievers</name>
        <value>4096</value>
    </property>
    <property>
            <name>dfs.nameservices</name>
            <value>hadoop-cluster1</value>
    </property>
    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>169.24.2.100:50090</value>
    </property>
    <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/hadoop/hdfs/data/</value>
    </property>
</configuration>

yarn-site.xml

<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>

<!-- Site specific YARN configuration properties -->

 <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>169.24.2.100</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>169.24.2.100:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>169.24.2.100:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>169.24.2.100:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>169.24.2.100:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>169.24.2.100:8088</value>
        </property>
        <!-- Site specific YARN configuration properties -->
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
        </property>
        <property>
                <name>mapreduce.jobtracker.http.address</name>
                <value>169.24.2.100:50030</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>169.24.2.100:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>169.24.2.100:19888</value>
        </property>
        <property>
                <name>mapred.job.tracker</name>
                <value>http://169.24.2.100:9001</value>
        </property>
</configuration>

配置hbase

创建目录/hadoop/hbase

mkdir /hadoop/hbase  

配置zookeeper

zoo.cfg

文件如果不存在可以自行创建(zoo.cfg)

内容如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# the port at which the clients will connect
clientPort=2181
dataDir=/hadoop/zookeeper

server.3=169.24.2.103:2888:3888
server.2=169.24.2.102:2888:3888
server.1=169.24.2.100:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

注意事项:

  • 需要在每台机器上的dataDir对应的目录下手动创建myid文件,文件的内容与server.x一致 比如server.1=169.24.2.100 则需要在169.24.2.100上创建myid文件且写入1,其他的类推

配置好后在每台机器上运行

zkServer.sh start 

配置HIVE

在每一个集群节点都需要同样的配置

  • hive-site.xml配置如下
<property>
    <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://169.24.2.40:3306/metastore_db?characterEncoding=UTF-8</value>
    <description/>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    <description/>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
        <value>dev</value>
    <description/>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
        <value>1qaz2wsx</value>
    <description/>
  </property>
  <property>
    <name>hive.metastore.uris</name>
        <value>thrift://169.24.2.100:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>

启动顺序

  • 分别在3台服务器上启动zookeeper
	zkServer.sh start 
  • 启动hadoop(仅在169.24.2.100上执行)
	start-dfs.sh 
	start-yarn.sh
	mr-jobhistory-daemon.sh start historyserver
  • 启动hbase(仅在169.24.2.100上执行)
    start-hbase.sh 
  • 启动hive元数据(仅在169.24.2.100上执行)
     nohup hive --service metastore -p 9083 & 

停止顺序

  • 停止 hbase
    stop-hbase.sh 
  • 停止hive的metastore
    netstat -tunlp|grep 9083|awk '{print $7}'|awk -F '/' '{print $1}'|xargs kill -9
  • 停止 hadoop
	mr-jobhistory-daemon.sh stop historyserver
	stop-yarn.sh 
	stop-dfs.sh 
  • 停止 zookeeper

分别到zookeeper集群的服务器上执行

zkServer.sh stop 

踩过的坑

  • hbase master is initializing.

本机引起的原因是多机器的时间不同步导致

  • Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

kylin在hadoop集群上运行build动作时提示以上错误,原因是yarn-site.xml中的yarn.application.classpath没有进行配置,处理方法如下

hadoop classpath  # 找classpath

修改 $HADOOP_HOME/etc/hadoop/yarn-site.xml

请根据实际情况进行修改

 <property>
                        <name>yarn.application.classpath</name>
                        <value>/hadoop_install/hadoop-2.6.5/etc/hadoop:/hadoop_install/hadoop-2.6.5/share/hadoop/common/lib/*:/hadoop_install/hadoop-2.6.5/share/hadoop/common/*:/hadoop_install/hadoop-2.6.5/share/hadoop/hdfs:/hadoop_install/hadoop-2.6.5/share/hadoop/hdfs/lib/*:/hadoop_install/hadoop-2.6.5/share/hadoop/hdfs/*:/hadoop_install/hadoop-2.6.5/share/hadoop/yarn/lib/*:/hadoop_install/hadoop-2.6.5/share/hadoop/yarn/*:/hadoop_install/hadoop-2.6.5/share/hadoop/mapreduce/lib/*:/hadoop_install/hadoop-2.6.5/share/hadoop/mapreduce/*:/hadoop_install/hadoop-2.6.5/contrib/capacity-scheduler/*.jar
                        </value>
                </property>

© 著作权归作者所有

胡佐治
粉丝 10
博文 32
码字总数 22828
作品 0
上海
后端工程师
私信 提问
加载中

评论(12)

abcwt112
abcwt112
大佬能给个QQ号码吗...有些kylin问题想请教,谢谢
呼啦_小呆
呼啦_小呆

引用来自“胡佐治”的评论

引用来自“呼啦_小呆”的评论

引用来自“胡佐治”的评论

引用来自“呼啦_小呆”的评论

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?

引用来自“胡佐治”的评论

如果有错误信息可以贴出来,一起分析分析
嗷 我的意思是 您把 resourcemanager nodemanager 都重启了 就好了吗?

回复@呼啦_小呆 : 博客里面有停止顺序的,我重启是将整个集群停止后重新启动。不光是resourcemanger node 和 nodemanager,当然你可以试一试。我当时是测试环境可以随便搞
刚才我看了一下 hadoop的源码,上面的办法可以解决 ,还有个办法是在kylin_job_conf.xml 增加一个mapreduce.application.classpath配置,这两个的作用都是在生成MRAPP的时候添加环境变量,所以我用后面的办法解决了,这样就不用修改集群了

回复@呼啦_小呆 : 你的这种方式不是不是不需要重启集群?
是的 因为是kylin提交MR 参数配置在提交mr的conf里面就好了
胡佐治
胡佐治 博主

引用来自“呼啦_小呆”的评论

引用来自“胡佐治”的评论

引用来自“呼啦_小呆”的评论

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?

引用来自“胡佐治”的评论

如果有错误信息可以贴出来,一起分析分析
嗷 我的意思是 您把 resourcemanager nodemanager 都重启了 就好了吗?

回复@呼啦_小呆 : 博客里面有停止顺序的,我重启是将整个集群停止后重新启动。不光是resourcemanger node 和 nodemanager,当然你可以试一试。我当时是测试环境可以随便搞
刚才我看了一下 hadoop的源码,上面的办法可以解决 ,还有个办法是在kylin_job_conf.xml 增加一个mapreduce.application.classpath配置,这两个的作用都是在生成MRAPP的时候添加环境变量,所以我用后面的办法解决了,这样就不用修改集群了

回复@呼啦_小呆 : 你的这种方式不是不是不需要重启集群?
呼啦_小呆
呼啦_小呆

引用来自“胡佐治”的评论

引用来自“呼啦_小呆”的评论

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?

引用来自“胡佐治”的评论

如果有错误信息可以贴出来,一起分析分析
嗷 我的意思是 您把 resourcemanager nodemanager 都重启了 就好了吗?

回复@呼啦_小呆 : 博客里面有停止顺序的,我重启是将整个集群停止后重新启动。不光是resourcemanger node 和 nodemanager,当然你可以试一试。我当时是测试环境可以随便搞
刚才我看了一下 hadoop的源码,上面的办法可以解决 ,还有个办法是在kylin_job_conf.xml 增加一个mapreduce.application.classpath配置,这两个的作用都是在生成MRAPP的时候添加环境变量,所以我用后面的办法解决了,这样就不用修改集群了
胡佐治
胡佐治 博主

引用来自“呼啦_小呆”的评论

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?

引用来自“胡佐治”的评论

如果有错误信息可以贴出来,一起分析分析
嗷 我的意思是 您把 resourcemanager nodemanager 都重启了 就好了吗?

回复@呼啦_小呆 : 博客里面有停止顺序的,我重启是将整个集群停止后重新启动。不光是resourcemanger node 和 nodemanager,当然你可以试一试。我当时是测试环境可以随便搞
呼啦_小呆
呼啦_小呆

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?

引用来自“胡佐治”的评论

如果有错误信息可以贴出来,一起分析分析
嗷 我的意思是 您把 resourcemanager nodemanager 都重启了 就好了吗?
胡佐治
胡佐治 博主

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?
如果有错误信息可以贴出来,一起分析分析
胡佐治
胡佐治 博主

引用来自“呼啦_小呆”的评论

rm nodemaner 都重启了?然后就OK啦?
rm nodemaner?什么操作?
呼啦_小呆
呼啦_小呆
rm nodemaner 都重启了?然后就OK啦?
呼啦_小呆
呼啦_小呆
rm nodemaner 都重启了?然后就OK啦?
部署Spark2.2集群(on Yarn模式)

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/86795338 机器规划 本次实战用到了三台CentOS7的机器,身份信息如下所示: 要注意的地方: ...

博陵精骑
02/09
0
0
(9)Hadoop 2.6.1 集群部署——未配置HA

1. 引言 在前面的博客中,我曾经介绍了的伪分布配置,但是在实际工作中最常见的是集群部署,在本篇博客中就主要介绍一下的集群部署(未配置),在本篇博客中使用五台新安装的机器,从零部署。...

LoveCarpenter
2017/12/14
0
0
Hadoop集群(第2期)_机器信息分布表

1、分布式环境搭建   采用4台安装Linux环境的机器来构建一个小规模的分布式集群。 图1 集群的架构   其中有一台机器是Master节点,即名称节点,另外三台是Slaver节点,即数据节点。这四台...

一念三千
2015/07/13
30
1
Hadoop集群(第2期)_机器信息分布表

1、分布式环境搭建   采用4台安装Linux环境的机器来构建一个小规模的分布式集群。 图1 集群的架构   其中有一台机器是Master节点,即名称节点,另外三台是Slaver节点,即数据节点。这四台...

Carl_
2015/06/25
15
0
Hadoop (CDH4发行版)集群部署

前言 折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。 为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署完...

snakelxc
2013/07/10
6.7K
19

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
633
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
34
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
19
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
63
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
63
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部