`
gujialiangsz
  • 浏览: 2201 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hadoop生态系统安装

阅读更多

# Hadoop 集群环境安装手册

 

[TOC]

 

 

 

## 一、JDK安装

 

### 1.1 JDK1.8下载

 

​到oracle官网下载[jdk-8u101-linux-x64.tar.gz](http://download.oracle.com/otn-pub/java/jdk/8u101-b14/jdk-8u101-linux-x64.tar.gz?AuthParam=1483251511_04673c3489fc71bc4768a7cc206b3ae4)

 

​先查找并卸载自带openJDK

 

```shell

rpm -qa |grep openjdk

yum -y remove *openjdk*

```

 

​解压[jdk-8u101-linux-x64.tar.gz](http://download.oracle.com/otn-pub/java/jdk/8u101-b14/jdk-8u101-linux-x64.tar.gz?AuthParam=1483251511_04673c3489fc71bc4768a7cc206b3ae4)到安装目录,如果没有特别说明,全文中安装目录都是指/data0/soft/

 

```shell

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

```

 

​验证是否安装成功

 

```shell

java -version

```

 

 

 

## 二、Zookeeper安装

 

### 2.1 Zookeeper下载准备

 

​去Zookeeper官网或者用wget下载安装包[zookeeper-3.4.9.tar.gz](http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz)

 

### 2.2 Zookeeper安装配置

 

​把[zookeeper-3.4.9.tar.gz](http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz)移动到安装目录并解压

 

```shell

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,配置文件如下

 

```shell

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.*的主机名

 

```shell

vi /etc/hosts

#写入集群主机名映射关系

10.20.26.30    dmp1

10.20.26.31    dmp2

10.20.26.32    dmp3

```

 

​在dataDir下新增文件myid,填写值为server.*对应的编号

 

```shell

echo '1'>/data0/soft/zookeeper/myid

```

 

​添加Zookeeper环境变量

 

```shell

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

 

```shell

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系统配置

 

```shell

#### 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关闭防火墙####

 

~~~shell

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,改为:

 

~~~properties

vm.overcommit_memory=1

vm.swappiness=0

#*# 1

net.core.somaxconn=32768

~~~

 

​关闭THP:

 

~~~shell

#*# 2

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

~~~

 

 

 

  #### 3.2.5新增用户 ####

 

​新增用户hadoop,并将hadoop添加到hadoop组

 

~~~shell

useradd hadoop

useradd hadoop

usermod -a -G hadoop hadoop

passwd hadoop Paic1234

~~~

 

​将每个节点的数据磁盘路径权限设为775,这里假设每个磁盘挂载目录为data0,data1..data*

 

~~~shell

chmod -R 775 /data0

chmod -R 775 /data1

~~~

 

#### 3.2.6添加节点间hadoop用户免密登陆####

 

在dmp1上用hadoop用户执行

 

```shell

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

 

~~~shell

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是节点端口<value>sshfence(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上执行:

 

```shell

start-dfs.sh

start-yarn.sh

```

 

​停止,在dmp1上执行:

 

```shell

stop-dfs.sh

stop-yarn.sh

```

 

访问

 

[http://dmp1:50070](http://dmp1:50070)

[http://dmp2:50070](http://dmp2:50070)

 

可以查看hadoop集群状态,其中一个为active,一个为standby

 

##四、Hive安装

 

### 4.1Mysql安装

 

​这里hive使用mysql作元数据存储,mysql安装过程略。

 

​安装完以后创建hive元数据的schema

 

~~~mysql

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,执行:

 

```mysql

create database hive default charset latin1;//database名称与url一致

```

 

 

 

​在hive的bin下面执行:./schematool -initSchema -dbType mysql 

 

#### 4.3.6添加metastore启动脚本

 

​vi start-metastore.sh

 

~~~shell

#/bin/sh

if [ -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

 

~~~shell

#/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目录

 

```properties

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中相关应用的根目录修改为实际安装目录

 

~~~properties

hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0

hive.home=/data0/soft/hive2.1.1

pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig

//spark.home=不存在的组件不用配置

azkaban.home=/data0/soft/azkaban

~~~

 

​修改private.properties,参照上面修改应用对应目录

 

```properties

hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0

hive.home=/data0/soft/hive2.1.1

jobtype.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,按上面修改应用对应根目录,然后修改类路径

 

~~~properties

hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0

hive.home=/data0/soft/hive2.1.1

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

 

~~~properties

default.timezone.id=Asia/Shanghai

database.type=mysql

mysql.port=3306

mysql.host=10.1.2.xxx

mysql.database=azkaban

mysql.user=user

mysql.password=pass

mysql.numconnections=50

azkaban.webserver.url=http://10.1.2.xxx:8081

azkaban.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库

 

```mysql

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环境变量

 

```properties

export SCALA_HOME=/usr/scala

export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0

export HIVE_HOME=/data0/soft/hive2.1.1

export 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

 

```properties

export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6

export SCALA_HOME=/usr/scala

export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0

export HIVE_HOME=/data0/soft/hive2.1.1

export 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 添加

 

~~~properties

export SPARK_MASTER_IP=dmp1

export SPARK_WORKER_MEMORY=10g

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

~~~

 

​修改slaves文件,添加节点名称

 

~~~properties

dmp2

dmp3

dmp4

dmp5

dmp6

~~~

 

​将hive conf下面的hive-site.xml文件拷贝到spark conf下面(完成sparksql和hive元数据共享)

 

### 7.3启动并验证

 

​进入spark sbin目录(防止与hadoop命令冲突),启动start-all.sh

 

~~~shell

./start-all.sh

~~~

 

​然后使用spark-shell进入scala操作界面来做spark操作。

 

 

 

 

 

## 8. Hbase 安装

 

### 8.1 Hbase下载

 

​到官网下载Hbase1.2.6版本

 

### 8.2 安装配置

 

​将Hbase1.2.6安装包解压到/data0/soft目录下

 

​配置环境变量

 

~~~properties

export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6

export SCALA_HOME=/usr/scala

export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0

export HIVE_HOME=/data0/soft/hive2.1.1

export HBASE_HOME=/data0/soft/hbase-1.2.6

export 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

 

~~~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

 

~~~sh

export JAVA_HOME=/data0/soft/java

export HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoop

export HBASE_HEAPSIZE=4096

export 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/logs

export HBASE_MANAGES_ZK=true

~~~

 

​修改regionserver hbase-env.sh

 

~~~sh

export JAVA_HOME=/data0/soft/java

export HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoop

export HBASE_HEAPSIZE=8192

export 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/logs

export HBASE_MANAGES_ZK=true

~~~

 

​在conf下面添加backup-masters文件

 

~~~properties

master2

~~~

 

​在conf下面添加regionservers文件

 

~~~properties

dmp3

dmp4

dmp5

dmp6

~~~

 

### 8.3 启动与关闭

 

访问master1:16010可以看到hbase集群状态

 

~~~shell

#启动和停止hbase相关主要服务

start-hbase.sh

stop-hbase.sh

#启动thrift服务

hbase-daemon.sh start thrift -p 9090

#启动rest服务

hbase-daemon.sh start rest -p 8180

~~~

 

 

 

 

 

分享到:
评论

相关推荐

    海量数据处理-Hadoop生态系统和成功案例

    ### 海量数据处理-Hadoop生态系统和成功案例 #### Hadoop生态系统概述 Hadoop是一个能够对大量数据进行分布式处理的软件框架,它为用户提供了高效、可靠、可伸缩的基础设施。Hadoop的核心组成部分包括HDFS(Hadoop...

    hadoop生态系统搭建

    标题《hadoop生态系统搭建》所涉及的知识点主要包括Hadoop集群的搭建、基于Hive的离线分析平台配置、基于Storm的实时数据分析架构搭建,以及SolrCloud和HBase在搜索架构中的应用和整合。 首先,Hadoop生态系统的...

    HADOOP生态系统.docx

    Hadoop生态系统是大数据处理的核心组成部分,它包含了多个组件,如HDFS(Hadoop Distributed File System)、Spark、Hive、Elasticsearch和Kafka,这些工具共同构建了一个高效、可扩展的数据处理平台。 HDFS是...

    Hadoop生态系统及其版本演化.doc

    课程内容将逐步讲解Hadoop生态系统,包括概述、版本演化、安装部署,以及通过分布式日志分析系统的实战案例,帮助学员理解和掌握Hadoop在实际场景中的应用。课程资料会在GitHub上持续更新,以便学员跟踪学习。 总之...

    《Hadoop生态系统》.pdf

    《Hadoop生态系统》

    大数据与Hadoop生态系统

    简单介绍hadoop生态系统、spark、scala

    hadoop生态系统介绍

    详细介绍了hadoop生态圈,包括 基础介绍 HDFS, HDFS 2 MapReduce, YARN 以下简要介绍 Pig Hive Hbase, HOYA Mahout 其它

    《Hadoop生态系统》_陈新.pdf

    Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。 Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。

    Hadoop生态系统学习

    ### Hadoop生态系统学习 #### Hadoop概述 Hadoop是由Apache基金会开发的一款开源分布式计算框架,旨在简化大规模数据的处理过程。作为一个分布式系统的基础架构,Hadoop不仅能够支持海量数据的存储,还能高效地进行...

    Apache Hadoop和Hadoop生态系统.pdf

    Hadoop生态系统的不断发展和扩展,引入了许多其他项目,如YARN(用于资源管理和调度)、Tez(优化MapReduce执行效率)、Spark(提供内存计算,加速处理速度)等,进一步完善了大数据处理的基础设施。这些项目相互...

    第1周 Hadoop生态系统以及版本演化

    ### 第1周 Hadoop生态系统及版本演化 #### 日志系统 **日志系统**是互联网企业不可或缺的一部分,它主要用于收集用户的交互数据,并基于这些数据进行分析以提升用户体验、优化产品功能或提供更精准的个性化服务。...

    基于Hadoop生态系统的大数据解决方案综述

    然后从商业产品和Hadoop生态系统两个方面来探讨如何面对大数据,重点分析了Hadoop生态系统是如何解决的:分别用HDFS、HBase和OpenTSDB解决存储问题,用Hadoop MapReduce(Hive)和HadoopDB解决分析问题,用Sqoop和Ganglia...

    Hadoop生态系统图1

    Hadoop生态系统图1

    Hadoop生态系统:探索除HDFS和MapReduce之外的有用工具

    本文将详细介绍Hadoop生态系统中的一些有用工具及其应用。 Hadoop生态系统中的工具远不止HDFS和MapReduce,还包括了Hive、Pig、HBase、Spark、Storm、Kafka、Flume、Oozie、Zookeeper、Mahout、Flink、Cassandra、...

    Hadoop生态系统基本介绍(60张幻灯片,包含大量图).pptx

    ### Hadoop生态系统基本介绍 #### 一、Hadoop发展历程及各组件概述 ##### 1.1 课程简介 - **课程目标**:本课程旨在帮助学员理解Hadoop的发展历程及其在大数据处理领域的地位,并深入探讨Hadoop生态系统的各个...

    卢亿雷-Hadoop生态系统分析

    Hadoop生态系统是由Apache软件基金会开发的一个开源框架,用于存储和处理大数据。该生态系统是由多个组件构成的,每个组件都有其独特的功能和用途,共同为大数据的存储、处理、分析提供了一个全面的解决方案。以下是...

    Hadoop生态系统概览

    ### Hadoop生态系统概览 #### 一、Hadoop的历史与起源 Hadoop项目诞生于2004年,由Doug Cutting和Mike Cafarella在雅虎公司内部开发。该项目的灵感来源于Google发表的两篇著名论文:《Google File System》和...

    Hadoop生态系统及其版本演化.zip

    Hadoop生态系统以其分布式、容错性和可扩展性著称,为各种规模的企业提供了处理大数据的强大工具。这个压缩包文件“Hadoop生态系统及其版本演化.zip”显然包含了关于Hadoop发展历程和其生态系统内各组件的详细信息,...

Global site tag (gtag.js) - Google Analytics