1.下载包
- hadoop 2.7.2
- hbase 1.2.5
- hive 1.2.2
- kylin-2.4.0-bin-hbase1x
第一部分hadoop安装
2.创建Hadoop账号并修改权限
- [root@Master:/root]#useradd -m hadoop -s /bin/bash
- [root@Master:/root]#passwd hadoop
- 添加新建用户管理员权限
[root@Master:/root]#vim /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
root ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD: ALL
3.安装jdk,配置hadoop,hive,hbase,环境变量
安装java 略
配置环境变量
#### java ###
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
#### hadoop ###
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
#### hive ###
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
#### hbase ###
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
#### kylin ###
export KYLIN_HOME=/usr/local/kylin
export PATH=$PATH:$ KYLIN_HOME/bin
export hive_dependency=/usr/local/hive/conf:/usr/local/hive/lib/*
4.安装hadoop
$ sudo tar -zxf ~/hadoop-2.6.5.tar.gz -C /usr/local # 解压到/usr/local中
$ cd /usr/local/
$ sudo mv ./hadoop-2.7.2/ ./hadoop # 将文件夹名改为hadoop
$ sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限
5.便于不混乱修改hostname,hosts(非必须)
[root@Master:/root]#cat /etc/hostname
Master
[root@Slave1:/root]#cat /etc/hostname
Slave1
[root@Slave2:/root]#cat /etc/hostname
Slave2
[root@Master:/root]#cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.1 Master
192.168.1.2 Slave1
192.168.1.3 Slave2
6.SSH无秘钥登入
SSH无密码登陆节点,这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。
1. 首先生成 Master 节点的公匙,在 Master 节点的cd ./终端中执行
[hadoop@Master:/hadoop]$cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
[hadoop@Master:/hadoop]$ rm ./id_rsa* # 删除之前生成的公匙(如果有)
[hadoop@Master:/hadoop]$ ssh-keygen -t rsa # 一直按回车就可以
让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:
[hadoop@Master:/hadoop]$cat ./id_rsa.pub >> ./authorized_keys
完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行exit返回原来的终端)。
接着在 Master 节点将上公匙传输到 Slave1 节点:
[hadoop@Master:/.ssh]$ scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
[hadoop@Master:/.ssh]$ scp ~/.ssh/id_rsa.pub hadoop@Slave2:/home/hadoop/
2. 接着在 Slave1,Slave2 节点上,将 ssh 公匙加入授权:
[hadoop@Slave1:/hadoop]$ mkdir ~/.ssh# 如果不存在该文件夹需先创建,若已存在则忽略
[hadoop@Slave1:/hadoop]$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
7.修改配置文件
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value> <!-- 两个从节点这里是2 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/var/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/var/hadoop/tmp/dfs/data</value>
</property>
</configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/tmp/hadoop-yarn/staging</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/tmp/hadoop/nodemanager</value>
<description>列表用逗号分隔</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/tmp/hadoop/nodemanager/logs</value>
<description>列表用逗号分隔</description>
</property>
</configuration>
8.配置好后,将 Master 上的 /usr/local/hadoop 文件夹复制到各个节点上。
<hadoop@Master:/usr/local/hadoop/bin>$ cd /usr/local
<hadoop@Master:/usr/local/hadoop/bin>$ scp ./hadoop Slave1:/usr/local
9.在 Slave1-N 节点上执行:
<hadoop@Master:/usr/local/hadoop/bin>$ sudo chown -R hadop /usr/local/hadoop
10.在 Slave1-N 节点上执行:
<hadoop@Master:/usr/local/hadoop/bin>$ hdfs namenode -format # 首次运行需要执行初始化,之后不需要
11.验证安装成功否
启动:
start-all.sh
停止:
stop-all.sh
./jps 查看进程
29137 Jps
25205 SecondaryNameNode
24985 NameNode
25387 ResourceManager
浏览器访问
http://Master:50070
第二部分hive安装
开始与hadoop相同,解压,重命名,更改权限,设置环境变量
12.hive修改配置文件
新建文件hive-site.xml
<hadoop@Master:/usr/local/hive/conf>$cat hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.1:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
13.创建hive database
连接数据库,create database hive;
14.上传 mysql-connector-java-5.1.30.jar
上传对应的mysql connector到hive的lib文件夹下。
15.初始化 schema
在mysql的hive schema中
[hadoop@Master bin]# pwd
/usr/local/hive/bin
[hadoop@Master bin]# schematool -dbType mysql -initSchema
16.验证是否安装成功
[root@localhost hive]# hive
成功进入hive界面,hive配置完成
第四部分hbase安装
开始与hadoop相同,解压,重命名,更改权限,设置环境变量
17.配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name> <!-- hbase存放数据目录 -->
<value>hdfs://master:9000/opt/hbase/hbase_db</value>
<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
</property>
<property>
<name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> <!-- list of zookooper -->
<value>Master,Slave1,Slave2</value>
</property>
<property><!--zookooper配置、日志等的存储位置 -->
<name>hbase.zookeeper.property.dataDir</name>
<valuevim>/usr/local/hbase/zookeeper</value>
</property>
</configuration>
18.修改 hbase/conf/hbase-env.sh文件
因为使用系统自带的hbase自带的zookeeper,需要打开如下配置
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true
19.配置regionservers
编辑regionservers去掉默认的localhost
<hadoop@Master:/usr/local/hbase/conf>$cat regionservers
Slave1
Slave2
20.远程复制
[hadoop@Master bin]#scp -r /usr/local/hbase Slave1:/opt/hbase-1.2.6
[hadoop@Master bin]#scp -r /usr/local/hbase Slave1:/opt/hbase-1.2.6
21.启动与停止Hbase
1. 在Hadoop已经启动成功的基础上,输入start-hbase.sh,过几秒钟便启动完成
输入jps命令查看进程是否启动成功,若 master上出现HMaster、HQuormPeer
slave上出现HRegionServer、HQuorumPeer,就是启动成功了。
2. 输入hbase shell 命令 进入hbase命令模式
输入status命令可以看到如下内容,1个master,2 servers,3机器全部成功启动。
3. 接下来配置本地hosts,(前边配置过的无需再配置了)
在浏览器中输入http://Master:16010就可以在界面上看到hbase的配置了
当要停止hbase时输入stop-hbase.sh,过几秒后hbase就会被停止了。
第三部分 Kylin
开始与hadoop相同,解压,重命名,更改权限,设置环境变量
22.检查环境
bin/check-env.sh
23.启动hadoop historyserver
hadoop/sbin/mr-jobhistory-daemon.shstart historyserver
[hadoop@Master sbin]#mr-jobhistory-daemon.sh start historyserver
jps查看线程
29137 Jps
21363 HQuorumPeer
27572 RunJar
25205 SecondaryNameNode
26085 jobhistoryserver
24985 NameNode
25387 ResourceManager
21487 HMaster
24.修改配置文件(其它配置用默认)
Serve1
## Kylin server mode, valid value [all, query, job]
kylin.server.mode=job(这里如果配置成all可能存在错误,只有一台能query)
## List of web servers in use, this enables one web server instance to sync up with other servers.
kylin.server.cluster-servers=99.48.1.1:7070,99.48.1.2:7070,99.48.1.3:7070
Serve2
## Kylin server mode, valid value [all, query, job]
kylin.server.mode=query
## List of web servers in use, this enables one web server instance to sync up with other servers.
kylin.server.cluster-servers=99.48.1.1:7070,99.48.1.2:7070,99.48.1.3:7070
Serve3
## Kylin server mode, valid value [all, query, job]
kylin.server.mode=query
## List of web servers in use, this enables one web server instance to sync up with other servers.
kylin.server.cluster-servers=99.48.1.1:7070,99.48.1.2:7070,99.48.1.3:7070
all
kylin.web.dashboard-enabled=true
25.启动kylin
bin/kylin.sh start
bin/kylin.sh stop
注:访问时候使用 ip:7070;ADMIN/KYLIN
26.数据准备
使用kylin给的demo。执行bin里面的
[hadoop@Master bin]# ./sample.sh
重启kylin
参考文档:
https://www.cnblogs.com/xzjf/p/7231519.html
https://blog.csdn.net/sy_bz/article/details/52399049
https://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html#_label3_0
https://www.cnblogs.com/dxxblog/p/8193967.html