Hadoop基本生态平台搭建
Posted 猩吧嗑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop基本生态平台搭建相关的知识,希望对你有一定的参考价值。
目录
Hadoop 集群环境安装手册
8.1 Hbase下载
8.2 安装配置
8.3 启动与关闭
7.1 Spark下载
7.2安装配置
7.3启动并验证
6.1 Scala下载
6.2配置
5.1下载准备
5.2安装配置
5.3启动和停止Azkaban
4.1mysql安装
4.2Hive下载准备
4.3Hive配置
4.4启动hive客户端
3.1 Hadoop下载准备
3.2Hadoop集群规划
3.2系统配置
3.3Hadoop配置
3.4启动Hadoop集群
2.1 Zookeeper下载准备
2.2 Zookeeper安装配置
1.1 JDK1.8下载
一、JDK安装
二、Zookeeper安装
三、Hadoop安装
四、Hive安装
5.Azkaban安装
6.Scala安装
7. Spark安装
8. Hbase 安装
Hadoop 集群环境安装手册
一、JDK安装
1.1 JDK1.8下载
到oracle官网下载jdk-8u101-linux-x64.tar.gz
先查找并卸载自带openJDK
rpm -qa |grep openjdk
yum -y remove *openjdk*
解压jdk-8u101-linux-x64.tar.gz到安装目录,如果没有特别说明,全文中安装目录都是指/data0/soft/
remove jdk-8u101-linux-x64.tar.gz /data0/soft/
cd /data0/soft
tar zxvf jdk-8u101-linux-x64.tar.gz
mv jdk-8u101-linux-x64.tar.gz java
配置JAVA_HOME
echo '## java configuration ' >> /etc/profile
echo 'export JAVA_HOME=/data0/soft/java' >> /etc/profile
echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
验证是否安装成功
java -version
二、Zookeeper安装
2.1 Zookeeper下载准备
去Zookeeper官网或者用wget下载安装包zookeeper-3.4.9.tar.gz
2.2 Zookeeper安装配置
把zookeeper-3.4.9.tar.gz移动到安装目录并解压
mv zookeeper-3.4.9.tar.gz /data0/soft/
cd /data0/soft
tar zxvf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 zookeeper
编辑并保存zoo.cfg,配置文件如下
vi /data0/soft/zookeeper/conf/zoo.cfg#重新写入以下配置tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data0/soft/zookeeper
clientPort=2181
server.1=dmp1:2888:3999
server.2=dmp2:2888:3999
server.3=dmp3:2888:3999
编辑hosts文件,对应server.*的主机名
vi /etc/hosts#写入集群主机名映射关系10.20.26.30 dmp1
10.20.26.31 dmp2
10.20.26.32 dmp3
在dataDir下新增文件myid,填写值为server.*对应的编号
echo '1'>/data0/soft/zookeeper/myid
添加Zookeeper环境变量
echo '## zk configuration ' >> /etc/profile
echo 'export ZOOKEEPER_HOME=/data0/soft/zookeeper' >> /etc/profile
echo 'export PATH=$ZOOKEEPER_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
启动Zookeeper并查看状态,可以看到节点是leader还是follower
zkServer.sh start
zkServer.sh status
三、Hadoop安装
3.1 Hadoop下载准备
这里用下载的hadoop-2.6.0-cdh5.5.0.tar.gz(!注:其中的配置文件是已经配置过的,只需要改成对应集群的名称及目录路径即可)
如果只有一块磁盘,该文档中的data0、data1都指data目录
3.2Hadoop集群规划
hostname | ip | 安装组件 |
---|---|---|
dmp1 | Namenode/ResourceManager/journalNode/zkfc/jobhistoryServer /timeLineServer/proxyServer/metastore/hiveSerer2 | |
dmp2 | namenode/ResourceManager/journalNode/zkfc | |
dmp3 | DataNode/NodeManager/journalNode | |
dmp4 | DataNode/NodeManager | |
dmp5 | DataNode/NodeManager | |
dmp6 | DataNode/NodeManager | |
... | DataNode/NodeManager |
3.2系统配置
#### 3.2.1修改hosts文件####dmp1xx.xx.xx.xx
dmp2xx.xx.xx.xx
...
修改所有节点的hosts文件,添加ip和集群列表中对应hostname
3.2.2修改hostname
修改所有节点的/etc/sysconfig/network文件,修改对应的hostname,重启生效
3.2.3关闭防火墙
service iptables off
//如果局域网内端口不设防火墙则不需要关闭
3.2.4修改linux参数
修改所有节点文件:/etc/selinux/config,修改SELINUX=disabled
修改所有节点文件打开数量:/etc/security/limits.conf,增加一行内容 : * - nofile 1024000
修改所有节点最大进程数:/etc/security/limits.d/90-nproc.conf,增加一行:* - nproc 262144
修改所有节点内存配置:/etc/sysctl.conf,改为:
vm.overcommit_memory=1
vm.swappiness=0#*# 1net.core.somaxconn=32768
关闭THP:
#*# 2echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
#### 3.2.5新增用户 ####
新增用户hadoop,并将hadoop添加到hadoop组
useradd hadoop
useradd hadoop
usermod -a -G hadoop hadoop
passwd hadoop Paic1234
将每个节点的数据磁盘路径权限设为775,这里假设每个磁盘挂载目录为data0,data1..data*
chmod -R 775 /data0
chmod -R 775 /data1
3.2.6添加节点间hadoop用户免密登陆
在dmp1上用hadoop用户执行
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
//在每一个从节点执行 ssh-copy-id -i dmp1,将公钥发送到主节点
//将公钥文件发送到各节点
for i in {2..6};do scp ~/.ssh/authorized_keys hadoop@dmp$i:~/.ssh/;done;
//配置known_hosts验证关闭
vi /etc/ssh/ssh_config
StrictHostKeyChecking no
3.2.7解压安装hadoop
将安装包hadoop-2.6.0-cdh5.5.0.tar.gz解压到/data0/soft,注意,如果安装包根目录native目录为空则需要去下载编译native文件。
设置环境变量到~/.bashrc
export HADOOP_HOME=/data0/soft/hadoop
export HIVE_HOME=/data0/soft/hive
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
3.2.8创建工作目录
为每个节点创建用户工作目录:/data0/hadoop/
创建hdfs工作目录:/data0/hadoop/dfs、/data0/hadoop/dfs/logs、/data0/hadoop/dfs/pid
创建hive工作目录:/data0/hadoop/hive、/data0/hadoop/hive/logs
3.3Hadoop配置
3.3.1修改core-site.xml
name | value | 描述 |
---|---|---|
fs.defaultFS | hdfs://dmp | 这里的值指的是默认的HDFS路径。 |
hadoop.tmp.dir | /data0/hadoop/tmp | 这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录 |
ha.zookeeper.quorum | dmp1:2181,dmp2:2181,dmp3:2181 | 这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点 |
fs.trash.interval | 2880 | 设置回收站保存时间 |
hadoop.proxyuser.dmp.hosts | * | 指定有访问权限的地址 |
hadoop.proxyuser.dmp.group | * | 指定有访问权限的用户组 |
3.3.2修改hdfs-site.xml
name | value | 描述 |
---|---|---|
dfs.replication | 3 | 指定DataNode存储block的副本数量 |
dfs.namenode.name.dir | file:///data0/hdfs/name | 指定namenode元数据信息存储位置 |
dfs.datanode.data.dir | file:///data0/hdfs/data,file:///data1/hdfs/data,file:///data2/hdfs/data,.. | 指定datanode元数据信息存储位置, 设置成所有的磁盘; 测试环境中如果是只有一个盘就只写一个盘 |
dfs.nameservices | dmp | Hdfs的集群名称,自己定 |
dfs.ha.namenodes.dmp | dmp1,dmp2 | 指定NameService是dmp时的namenode有哪些,这里的值也是逻辑名称,名字随便起,相互不重复即可 |
dfs.namenode.rpc-address.dmp.dmp1 | dmp1:9000 | 指定rm1的RPC地址 |
dfs.namenode.http-address | 0.0.0.0:50070 | 指定http地址 |
dfs.namenode.rpc-address.dmp.dmp2 | dmp2:9000 | 指定rm2的RPC地址 |
dfs.journalnode.http-address | 0.0.0.0:8480 | 指定journalnode http |
dfs.namenode.shared.edits.dir | qjournal://dmp1;dmp2;dmp3/dmp | 指定dmp的两个NameNode共享edits文件目录时,使用的JournalNode集群信息 |
dfs.ha.automatic-failover.enabled | true | 即当NameNode出故障时,是否自动切换到另一台NameNode |
dfs.client.failover.proxy.provider.dmp | org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider | 指定NameNode出故障时,哪个实现类负责执行故障切换 |
dfs.journalnode.edits.dir | /data0/hdfs/journal | 指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径 |
dfs.ha.fencing.methods | sshfence | (说明:如果节点的22端口改了,请标明改成什么端口, hadoop2是用户名, 36102是节点端口 |
dfs.ha.fencing.ssh.private-key-files | /home/hadoop/.ssh/id_rsa | 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 |
dfs.permissions | false | 是否开启hdfs访问权限验证 |
3.3.3修改文件yarn-site.xml
key | value | desc |
---|---|---|
yarn.resourcemanager.ha.enabled | true | 打开resourcemanager ha模式 |
yarn.resourcemanager.cluster-id | yarn-ha-cluster | 设置resourcemanager ha的集群名称,进程启动后这个名称可以在zookeeper中查看 |
yarn.resourcemanager.ha.rm-ids | rm1,rm2 | 设置resourcemanager的id,可以与主机同名, 本例子与主机同名 |
yarn.resourcemanager.hostname.rm1 | dmp1 | 指定rm1对应哪一台主机 |
yarn.resourcemanager.hostname.rm2 | dmp2 | 指定rm2对应哪一台主机 |
yarn.resourcemanager.zk-address | dmp1:2181,dmp2:2181,dmp3:2181 | 设置zkurl |
yarn.nodemanager.aux-services | mapreduce_shuffle | 用什么方式进行数据传递 |
yarn.log-aggregation-enable | true | |
yarn.log.server.url | http://dmp1:19888/jobhistory/logs/ | 设置jobhistory的地址。 在这个地址有 |
yarn.resourcemanager.scheduler.class | org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler | 设置调 度器,不设就用默认。默认也可以 |
yarn.resourcemanager.scheduler.monitor.enable | true | 支持资源抢占 |
yarn.nodemanager.local-dirs | file:///data0/dfs/nm-local-dir,file:///data1/dfs/nm-local-dir,.. | |
yarn.nodemanager.resource.memory-mb | 20480 | nodeManager可分配的内存大小,设置成比总内存略小。120g的机器设置成110g |
yarn.nodemanager.resource.cpu-vcores | 32 | 设置nodemanager节点内存大小,CPU个数 |
yarn.timeline-service.enabled | true | 打开timeline服务 |
yarn.log-aggregation.retain-seconds | 86400 | 日志保留时间,默认不删除 |
3.3.4修改mapred-site.xml
key | value | desc |
---|---|---|
mapreduce.framework.name | yarn | 打开resourcemanager ha模式 |
mapreduce.jobhistory.address | dmp1:10020 | 设置jobhistory地址 |
mapreduce.jobhistory.webapp.address | dmp1:19888 | 设置ui jobhistory地址 |
mapreduce.reduce.input.buffer.percent | 0.8 | mr buffer占最大内存比率 |
3.3.5修改slaves文件
将datanode的hostname按行写入slaves文件
3.3.6修改yarn-env.sh文件
YARN_LOG_DIR=/data0/hadoop/dfs/logs
YARN_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.7修改hadoop-env.sh 文件
export HADOOP_LOG_DIR=/data0/hadoop/dfs/log
export HADOOP_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.8修改mapred-env.sh
export HADOOP_LOG_DIR=/data0/hadoop/dfs/log
export HADOOP_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.9hadoop安装目录分发
将配置好的hadoop目录用scp分发到所有节点上
每个节点配置相同
3.4启动Hadoop集群
3.4.1启动journalNode
在dmp1、dmp2上执行:hadoop-daemon.sh start journalnode
3.4.2格式化zk
在dmp1上执行:hdfs zkfc -formatZK
3.4.3格式化namenode
在dmp1上执行
hdfs namenode -format
hadoop-daemon.sh start namenode
在dmp2上执行
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode
3.4.4启动hdfs
在dmp1上执行:start-dfs.sh
在dmp1上执行:start-yarn.sh
3.4.5启动其他服务
在dmp1上执行:
mr-jobhistory-daemon.sh start historyserver
yarn-daemon.sh start proxyserver
yarn-daemon.sh start timelineserver
3.4.6Hadoop启动与停止
初始化完以后的常规启动和停止
启动,在dmp1上执行:
start-dfs.sh
start-yarn.sh
停止,在dmp1上执行:
stop-dfs.sh
stop-yarn.sh
访问
http://dmp1:50070
http://dmp2:50070
可以查看hadoop集群状态,其中一个为active,一个为standby
四、Hive安装
4.1Mysql安装
这里hive使用mysql作元数据存储,mysql安装过程略。
安装完以后创建hive元数据的schema
create database hive default charset latin1;
4.2Hive下载准备
这里使用hive2.1.1版本进行安装。(!注:其中的配置文件是已经配置过的,已包含mysql驱动包,只需要改成对应集群的名称及目录路径即可)
4.3Hive配置
4.3.1解压Hive
将hive2.1.1.tar.gz解压到/data0/soft
4.3.2修改环境变量
在hadoop安装过程中已配置
4.3.3修改hive-size.xml
cp hive-default.xml.template hive-site.xml
修改javax.jdo.option.ConnectionURL的值为mysql连接url
修改javax.jdo.option.ConnectionDriverName为mysql用户名
修改javax.jdo.option.ConnectionPassword的值为mysql密码
修改hive.metastore.schema.verification的值为false
4.3.4修改日志文件
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
4.3.5初始化元数据
登陆mysql,执行:
create database hive default charset latin1;//database名称与url一致
在hive的bin下面执行:./schematool -initSchema -dbType mysql
4.3.6添加metastore启动脚本
vi start-metastore.sh
#/bin/shif [ -z "${HIVE_HOME}" ]; then
export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
echo $HIVE_HOME
nohup $HIVE_HOME/bin/hive --service metastore > $HIVE_HOME/logs/metastore.log 2>&1 &
echo $$
chmod u+x start-metastore.sh
./start-metastore.sh
4.3.7添加hiveserver2启动脚本
vi start-hiveserver2.sh
#/bin/sh
if [ -z "${HIVE_HOME}" ]; then
export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
echo $HIVE_HOME
nohup $HIVE_HOME/bin/hive --service hiveserver2 > $HIVE_HOME/logs/hiveserver2.log 2>&1 &
echo $$
chmod u+x start-hiveserver2.sh
./start-hiveserver2.sh
4.4启动hive客户端
执行命令:hive
即可以操作hive sql
5.Azkaban安装
5.1下载准备
下载并编译Azkaban3.10.0,这里直接使用已编译和配置的安装包Azkaban3.10.0.tar.gz
5.2安装配置
将Azkaban3.10.0.tar.gz解压到/data0/soft目录下
进入/data0/soft/azkaban/plugins/jobtypes/hive/
将plugin.properties和private.properties中hive.aux.jars.path修改为hive lib目录
hive.aux.jars.path=/data0/soft/hive2.1.1/lib
进入/data0/soft/azkaban/plugins/jobtypes/spark/
将private.properties中jobtype.classpath注释掉
进入/data0/soft/azkaban/plugins/jobtypes,将common.properties中相关应用的根目录修改为实际安装目录
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig//spark.home=不存在的组件不用配置azkaban.home=/data0/soft/azkaban
修改private.properties,参照上面修改应用对应目录
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1jobtype.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*
修改commonprivate.properties,按上面修改应用对应根目录,然后修改类路径
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig
//spark.home=不存在的组件不用配置
azkaban.home=/data0/soft/azkaban
jobtype.global.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*
hadoop.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*
修改/data0/soft/azkaban/conf/azkaban.properties
default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306mysql.host=10.1.2.xxx
mysql.database=azkaban
mysql.user=user
mysql.password=pass
mysql.numconnections=50azkaban.webserver.url=http://10.1.2.xxx:8081azkaban.name=DMP
azkaban.label=DMP Scheduling Center
修改/data0/soft/azkaban/bin/azkaban-solo-start.sh,加入java环境变量
export PATH=/usr/java/jdk1.8.0_101/bin:$PATH
拷贝commons-configuration-1.6.jar和hadoop-common-2.6.0-cdh5.5.0.jar两个jar包到/data0/soft/azkaban/lib目录下(这里已经打包在里边了)
5.3启动和停止Azkaban
5.3.1启动Azkaban
首先在mysql中创建azkaban库
create database azkaban;
在根目录下启动Azkaban(必须),bin/azkaban-solo-start.sh
5.3.2停止Azkaban
在根目录下关闭Azkaban,bin/azkaban-solo-shutdown.sh
6.Scala安装
6.1 Scala下载
到scala官网下载spark所需版本的安装包,scala-2.11.8.tgz。
6.2配置
将scala解压到/user
在hadoop用户下添加Scala环境变量
export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
配置生效后,输入scala,可以显示scala的版本信息,则表示配置成功。
7. Spark安装
7.1 Spark下载
对应scala2.11.8的版本,下载spark-2.1.0-bin-hadoop2.6.tgz
7.2安装配置
将安装包解压到/data0/soft/下。
hadoop用户配置环境变量到bashrc
export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
修改根目录conf下spark-env.sh 添加
export SPARK_MASTER_IP=dmp1export SPARK_WORKER_MEMORY=10gexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
修改slaves文件,添加节点名称
dmp2dmp3
dmp4
dmp5
dmp6
将hive conf下面的hive-site.xml文件拷贝到spark conf下面(完成sparksql和hive元数据共享)
7.3启动并验证
进入spark sbin目录(防止与hadoop命令冲突),启动start-all.sh
./start-all.sh
然后使用spark-shell进入scala操作界面来做spark操作。
8. Hbase 安装
8.1 Hbase下载
到官网下载Hbase1.2.6版本
8.2 安装配置
将Hbase1.2.6安装包解压到/data0/soft目录下
配置环境变量
export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export HBASE_HOME=/data0/soft/hbase-1.2.6export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$HBASE_HOME:$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
修改所有hbase根目录下conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://dmp/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>dmp4:2182,dmp5:2182,dmp6:2182</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/data0/dfs/hbase/tmp/</value>
</property>
<property>
<name>hbase.local.dir</name>
<value>/data0/dfs/hbase/local/</value>
</property>
<property>
<name>hbase.master</name>
<value>30.16.94.72:60000/</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>300000</value>
</property>
<!--zookeeper存储数据位置-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data0/dfs/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.tickTime</name>
<value>6000</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>8388608</value>
</property>
<property>
<name>hbase.thrift.support.proxyuser</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.http</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.framed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.type</name>
<value>TThreadPoolServer</value>
</property>
<!--这里设置Master并发最大线程数-->
<property>
<name>hbase.regionserver.handler.count</name>
<value>300</value>
</property>
<property>
<name>hbase.table.sanity.checks</name>
<value>false</value>
</property>
<!--ZooKeeper 会话超时.HBase把这个值传递改zk集群,向他推荐一个会话的最大超时时间-->
<property>
<!--every 30s,the master will check regionser is working -->
<name>zookeeper.session.timeout</name>
<value>1200000</value>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>32212254720</value>
</property>
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<value>50</value>
</property></configuration>
修改master hbase-evn.sh
export JAVA_HOME=/data0/soft/javaexport HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoopexport HBASE_HEAPSIZE=4096export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"export HBASE_MASTER_OPTS="-Xmx3g $HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"export HBASE_REGIONSERVER_OPTS="-Xmx4g -XX:+ParallelRefProcEnabled -XX:-ResizePLAB -XX:ParallelGCThreads=15 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"export HBASE_LOG_DIR=/data0/dfs/hbase/logsexport HBASE_MANAGES_ZK=true
修改regionserver hbase-env.sh
export JAVA_HOME=/data0/soft/javaexport HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoopexport HBASE_HEAPSIZE=8192export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"export HBASE_REGIONSERVER_OPTS="-Xmx32g -Xms32g -Xmn1g -Xss256k -XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"export HBASE_LOG_DIR=/data0/dfs/hbase/logsexport HBASE_MANAGES_ZK=true
在conf下面添加backup-masters文件
master2
在conf下面添加regionservers文件
dmp3dmp4
dmp5
dmp6
8.3 启动与关闭
访问master1:16010可以看到hbase集群状态
#启动和停止hbase相关主要服务start-hbase.sh
stop-hbase.sh#启动thrift服务hbase-daemon.sh start thrift -p 9090#启动rest服务hbase-daemon.sh start rest -p 8180
以上是关于Hadoop基本生态平台搭建的主要内容,如果未能解决你的问题,请参考以下文章