赞
踩
上传一下包
解压
tar -zxvf zookeeper-3.4.9.tar.gz -C ../servers/
cd zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
mkdir /export/servers/zookeeper-3.4.9/zkdatas
echo 1 > myid
scp -r /export/servers/zookeeper-3.4.9/ node2:/export/servers/
scp -r /export/servers/zookeeper-3.4.9/ node3:/export/servers/
检查一下
把另外两台的myid改成2和3
三台机子都要修改
cd /export/servers/zookeeper-3.4.9/conf
#这行粘贴过去,路径替换 /export/servers/zookeeper-3.4.9/zkdatas
## 三台都要操作
cd /export/servers/zookeeper-3.4.9/
bin/zkServer.sh start
启动成功!
查看状态
bin/zkServer.sh status
总算成功了!!!
启动一个就行了
bin/zkCli.sh -server node1:2181
##或者
bin/zkCli.sh
集群规划
服务器IP | 192.168.202.201 | 192.168.202.202 | 192.168.202.203 |
---|---|---|---|
主机名 | node1 | node2 | node3 |
NameNode | 是 | 否 | 否 |
SecondaryNameNode | 是 | 否 | 否 |
dataNode | 是 | 是 | 是 |
ResourceManager | 是 | 否 | 否 |
NodeManager | 是 | 是 | 是 |
官网链接
这里没用官网的,因为官方给的没有提供带C程序访问的接口,所以我们在使用本地库(本地库可以用来压缩,一级支持C程序等等)的时候会出现问题,需要重新编译。
编译后的包
解压命令
cd /export/softwares
tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
bin/hadoop checknative
# 检查一下支持的本地库
官方给的是不支持这个snappy的
这里直接用vim很不方便,win的话就用notepad++,Mac的话就用ultraEdit
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim core-site.xml
<configuration> <!--指定集群的文件系统类型:分布式文件系统--> <property> <name>fs.default.name</name> <value>hdfs://node1:8020</value> </property> <!--指定临时文件存储目录--> <property> <name>hadoop.tmp.dir</name> <value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatas</value> </property> <!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --> <property> <name>fs.trash.interval</name> <value>10080</value> </property> </configuration>
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim hdfs-site.xml
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>node1:50090</value> </property> <!-- 指定namenode的访问地址和端口 --> <property> <name>dfs.namenode.http-address</name> <value>node1:50070</value> </property> <!-- 指定namenode的元数据的存放位置 --> <property> <name>dfs.namenode.name.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value> </property> <!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <!-- 指定namenode的日志文件的存放目录 --> <property> <name>dfs.datanode.data.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value> </property> <property> <name>dfs.namenode.edits.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value> </property> <!-- 文件切片的副本个数 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!--设置HDFS的文件权限--> <property> <name>dfs.permissions</name> <value>false</value> </property> <!--一个文件切片的大小 --> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> </configuration>
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
发现没有这个文件,只有一个后缀加了.template的文件,复制一份重命名一下就可以了
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim mapred-site.xml
<configuration> <!-- 开启MapReduce小任务模式 --> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <!-- 设置历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> </property> <!--设置网页访问历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> </property> </configuration>
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim yarn-site.xml
<configuration> <!-- 配置yarn主节点的位置 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 开启日志聚合功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置聚合日志在HDFS上的保存时间,单位秒 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <!-- yarn集群的内存分配方案 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>20480</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> </configuration>
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim mapred-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/etc/hadoop
vim slaves
node1
node2
node3
第一台机器执行以下命令
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/edits
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/name
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits
安装包的分发
第一台机器执行以下命令
cd /export/servers/
scp -r hadoop-2.7.5 node2:$PWD
scp -r hadoop-2.7.5 node3:$PWD
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
vim /etc/profile
export HADOOP_HOME=/export/servers/hadoop-2.7.5
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。
注意: 首次启动 HDFS 时,必须对其进行格式化操作。 本质上是一些清理和
准备工作,因为此时的 HDFS 在物理上还是不存在的。
hdfs namenode -format 或者 hadoop namenode –format
准备启动
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
查看hdfs:node:50070
查看yarn集群node1:8088
查看历史完成的任务node1:19888
这里我们选用hive的版本是2.1.1
下载地址为:
官网
下载之后,将我们的安装包上传到第三台机器的/export/softwares目录下面去
将我们的hive的安装包上传到第三台服务器的/export/softwares路径下,然后进行解压
cd /export/softwares/
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C ../servers/
修改hive-env.sh(把模版文件拷贝一份)
cd /export/servers/apache-hive-2.1.1-bin/conf
cp hive-env.sh.template hive-env.sh
HADOOP_HOME=/export/servers/hadoop-2.7.5
export HIVE_CONF_DIR=/export/servers/apache-hive-2.1.1-bin/conf
修改hive-site.xml(没有就新建)
cd /export/servers/apache-hive-2.1.1-bin/conf
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--mysql用户名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!--mysql密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>0102</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>node3</value> </property> </configuration>
hive使用mysql作为元数据存储,必然需要连接mysql数据库,所以我们添加一个mysql的连接驱动包到hive的安装目录下,然后就可以准备启动hive了
maven库
将我们准备好的mysql-connector-java-5.1.38.jar 这个jar包直接上传到
/export/servers/apache-hive-2.1.1-bin/lib
这个目录下即可
至此,hive的安装部署已经完成,接下来我们来看下hive的三种交互方式
node3服务器执行以下命令配置hive的环境变量
sudo vim /etc/profile
export HIVE_HOME=/export/servers/apache-hive-2.1.1-bin
export PATH=:$HIVE_HOME/bin:$PATH
source /etc/profile
cd /export/servers/apache-hive-2.1.1-bin/
bin/hive
创建一个数据库
create database if not exists mytest;
tar -xvzf hbase-2.1.0-bin.tar.gz -C ../servers/
cd /export/server/hbase-2.1.0/conf
vim hbase-env.sh
## 显示行 在vim里面敲
:set nu
# 第28行
export JAVA_HOME=/export/servers/jdk1.8.0_141
export HBASE_MANAGES_ZK=false
vim hbase-site.xml
<configuration> <!-- HBase数据在HDFS中的存放的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://node1:8020/hbase</value> </property> <!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- ZooKeeper的地址 --> <property> <name>hbase.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> <!-- ZooKeeper快照的存储位置 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/export/servers/zookeeper-3.4.9/zkdatas</value> </property> <!-- V2.1版本,在分布式情况下, 设置为false --> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>
# 配置Hbase环境变量
vim /etc/profile
export HBASE_HOME=/export/servers/hbase-2.1.0
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
#加载环境变量
source /etc/profile
# 输入这个命令,输一半按tab健能联想出来就设置成功了
start-hbase.sh
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/
vim regionservers
node1
node2
node3
cd /export/servers
scp -r hbase-2.1.0/ node2:$PWD
scp -r hbase-2.1.0/ node3:$PWD
scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc
# 在node2和node3加载环境变量
source /etc/profile
#同理输入下面这个,能联想出来就是成功的
hbase
这里弄了一个一键启动zk的脚本,同理一键停止的脚本只需要把start改成stop就可以了。
ZK_HOME=/export/servers/zookeeper-3.4.9 cat /export/onekey/slave | while read line do { echo $line ssh $line "source /etc/profile;nohup ${ZK_HOME}/bin/zkServer.sh start >/dev/nul* 2>&1 &" }& wait done ZK_HOME=/export/servers/zookeeper-3.4.9 cat /export/onekey/slave | while read line do { echo $line ssh $line "source /etc/profile;nohup ${ZK_HOME}/bin/zkServer.sh stop >/dev/nul* 2>&1 &" }& wait done
## 启动ZK
./start-zk.sh
## 启动hadoop
start-dfs.sh
## 启动hbase
start-hbase.sh
# 启动hbase shell客户端
hbase shell
# 输入status
status
可视化页面:node1:16010
大家可以从官网上下载与HBase版本对应的Phoenix版本。对应到HBase 2.1,应该使用版本「5.0.0-HBase-2.0」。
官网地址
1.上传安装包到Linux系统,并解压
cd /export/software
rz -E
tar -xvzf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C ../servers/
2.将phoenix的所有jar包添加到所有HBase RegionServer和Master的复制到HBase的lib目录
# 拷贝jar包到hbase lib目录
cp /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/phoenix-*.jar /export/servers/hbase-2.1.0/lib/
# 进入到hbase lib 目录
cd /export/servers/hbase-2.1.0/lib/
# 分发jar包到每个HBase 节点
scp phoenix-*.jar node2:$PWD
scp phoenix-*.jar node3:$PWD
3.修改配置文件
cd /export/servers/hbase-2.1.0/conf/
vim hbase-site.xml
将以下配置添加到 hbase-site.xml 后边
<!-- 支持HBase命名空间映射 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<!-- 支持索引预写日志编码 -->
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
# 2. 将hbase-site.xml分发到每个节点
scp hbase-site.xml node2:$PWD
scp hbase-site.xml node3:$PWD
4.将配置后的hbase-site.xml拷贝到phoenix的bin目录
cp /export/servers/hbase-2.1.0/conf/hbase-site.xml /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/bin/
5.重新启动HBase
stop-hbase.sh
start-hbase.sh
6.启动Phoenix客户端,连接Phoenix Server
注意:第一次启动Phoenix连接HBase会稍微慢一点。
cd /export/servers/apache-phoenix-5.0.0-HBase-2.0-bin/
bin/sqlline.py node1:2181
# 输入!table查看Phoenix中的表
!table
7.查看HBase的Web UI,可以看到Phoenix在default命名空间下创建了一些表,而且该系统表加载了大量的协处理器。
8.测试
-- 1. 创建表
create table if not exists ORDER_DTL(
id varchar primary key,
C1.status varchar,
C1.money double,
C1.pay_way integer,
C1.user_id varchar,
C1.operation_time varchar,
C1.category varchar
);
-- 2. 删除表
drop table if exists ORDER_DTL;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。