本文为自己总结的hadoop-cdh5集群安装(简易版),适合新手首次玩集群使用。

 

本文附带安装包、配置文件等都跟文中配置相同,如有需要请自行修改。

 

本文中介绍的集群均配置在虚拟机中,Linux版本为:CentOS7

 

本文hadoop配置集群为4台:

 

    192.168.5.128   hadoop0   主

    192.168.5.129   hadoop1

    192.168.5.130   hadoop2

192.168.5.131   hadoop3

 

本文zookeeper配置端口为:42182

 

本文hadoop集群均配置在root用户下。

 

 

 

 

 

 

 

 

 

 

 

1环境准备

1.1安装包

    hbase-1.0.0-cdh5.4.8.tar.gz

zookeeper-3.4.5-cdh5.4.8.tar.gz

hadoop-2.3.0-cdh5.1.0.zip

jdk-7u80-linux-x64.gz

1.2卸载自带jdk

查看系统自带的已经安装的java

#rpm -qa | grep java

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

卸载自带java

#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

1.3安装jdk

进入/usr目录

解压jdk

#vim /etc/profile

 

export JAVA_HOME=/usr/jdk1.7.0_80

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

Export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

 

#source /etc/profile

1.4编辑hosts文件

#vi /etc/hosts

192.168.5.128   hadoop0

192.168.5.129   hadoop1

192.168.5.130   hadoop2

192.168.5.131   hadoop3

1.5关闭selinux安全验证和iptables

centOS7   关闭防火墙: systemctl stop firewalld.service

          关闭开机启动:systemctl disable firewalld.service

 

1.6集群间设置ssh无密码访问

在所有节点生成秘钥:

 

# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

# chmod 700 ~/.ssh/

# chmod 600 ~/.ssh/authorized_keys

合并所有的authorized_keys文件,并同步到所有服务器节点上。

2安装Zookeeper

本文zookeeper安装路径:/app/data/zookeeper

2.1 解压Zookeeper tar包

#tar -xzf zookeeper-3.4.5-cdh5.4.8.tar.gz

 

2.2 设置Zookeeper环境变量

root用户:$vi /etc/profile 或

cdh5用户:$vi ~/.bashrc  

以上两个任选一种,增加以下环境变量:

export ZOOKEEPER_HOME=/app/data/zookeeper/zookeeper-3.4.5-cdh5.4.8

export PATH=$PATH:$ZOOKEEPER_HOME/bin

生效修改:$source /etc/profile  或  $source ~/.bashrc

 

本文配置root用户

2.3 修改Zookeeper的配置文件

2.3.1  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.

dataDir=/app/data/zookeeper

# the port at which the clients will connect

clientPort=42182

server.0=hadoop0:42888:43888

server.1=hadoop1:42888:43888

server.2=hadoop2:42888:43888

server.3=hadoop3:42888:43888

 

【注:】 上面配置中,server.X 为所有Zookeeper 节点列表。当服务器启动时,服务器会在数据目录dataDir 中寻找文件 myid ,所以要在每台服务器节点预先创建数据目录,并且在数据目录下创建myid文件,并将X值写入到文件中。本文dataDir 路径为:/app/data/zookeeper

2.4 启动zookeeper

2.4.1启动

zkServer.sh start         在所有机器启动

2.4.2停止

zkServer.sh stop     在所有机器停止

3安装hadoop

本文hadoop安装路径:/app/data/hadoop

3.1解压压缩包

unzip  hadoop-2.3.0-cdh5.1.0.zip

3.2设置hadoop环境变量

root用户:$vi /etc/profile 或

cdh5用户:$vi ~/.bashrc     

以上两个任选一种,增加以下环境变量:

 

export HADOOP_DEV_HOME=/app/data/hadoop/hadoop-2.3.0-cdh5.1.0

export PATH=$PATH:$HADOOP_DEV_HOME/bin

export PATH=$PATH:$HADOOP_DEV_HOME/sbin

export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}

export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}

export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}

export YARN_HOME=${HADOOP_DEV_HOME}

export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

 

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

生效修改:$source /etc/profile  或  $source ~/.bashrc

3.3修改hadoop配置文件

3.3.1  hadoop-env.sh

找到如下配置修改:

export JAVA_HOME=/usr/jdk1.7.0_80

3.3.2  core-site.xml

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop0:9000</value>

</property>

<property>

<name>hadoop.native.lib</name>

<value>true</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/app/data/hadoop/hadoop-2.3.0-cdh5.1.0/worktmp</value>

</property>

3.3.3  hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

3.3.4  mapred-site.xml

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 

3.3.5  yarn-site.xml

   <property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop0</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

3.3.6  slaves

hadoop1

hadoop2

hadoop3

3.4 启动hadoop

首次启动需要先格式化(在namenode上执行)

hdfs namenode -format

启动hadoop有两种方式:

l 手动一台一台地启动(单台启动,运维常用)

在相应服务器上启动 hdfs 的相关进程 :

启动 namenode 进程—— hadoop-daemon.sh start namenode

启动 datanode 进程 —— hadoop-daemon.sh start datanode

然后,验证 hdfs 的服务是否能正常提供:

bin/hdfs dfsadmin -report 查看 hdfs 集群的统计信息

停止

关闭 namenode 进程—— hadoop-daemon.sh stop namenode

关闭 datanode 进程 —— hadoop-daemon.sh stop datanode

l Shell 脚本批量启动方式:

在任意一台服务器上执行命令:

启动 hdfs 服务:start-dfs.sh

启动 yarn 服务:start-yarn.sh

或者:直接启动 hdfs+yarn 服务:start-all.sh

停止

stop-dfs.sh

stop-yarn.sh

Stop-all.sh

 

4 安装HBase

4.1解压HBase tar包

tar  -xzf  hbase-1.0.0-cdh5.4.8.tar.gz

4.2 设置HBase环境变量

root用户:$vi /etc/profile 或

cdh5用户:$vi ~/.bashrc 

以上两个任选一种,增加以下环境变量:

export HBASE_HOME=/app/data/hbase/hbase-1.0.0-cdh5.4.8

export PATH=$PATH:$HBASE_HOME/bin

生效修改:$source /etc/profile  或  $source ~/.bashrc

4.3 修改HBase的配置文件

 

4.3.1  hbase-env.sh

export JAVA_HOME=/usr/jdk1.7.0_80

export HBASE_HEAPSIZE=2000

export HBASE_MANAGES_ZK=true

4.3.2  hbase-site.xml

<property>  

  <name>hbase.rootdir</name>  

    <!-- <value>hdfs://ecmserver:49000/hbase</value> -->

    <value>hdfs://hadoop0:9000/hbase</value>

</property>  

<property>

<name>hbase.cluster.distributed</name>  

<value>true</value>  

</property>

<property>  

<name>hbase.zookeeper.quorum</name>

  <value>hadoop0,hadoop1,hadoop2,hadoop3</value>  

</property>   

<property>

      <name>hbase.zookeeper.property.clientPort</name>  

      <value>42182</value>  

</property>

4.3.3  regionservers

regionServer 相当于 Hadoop 中的 Slave 机器。

conf下如果没有则创建regionservers文件

Hadoop1

Hadoop2

Hadoop3

4.4 启动HBase

start-hbase.sh

 

stop-hbase.sh

 

说明:hbase一样可以单台启动,这里不做详细介绍。参考hadoop启动。

 

 

---
更多文章关注公众号

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐