本文针对没有JDK和Hadoop的情况下的安装,如果已经配置好了JDK环境和Hadoop环境的可以跳过对应的章节进行观看
本文使用安装包的版本
- JDK:1.8
- Hadoop:hadoop-2.6.0-cdh5.7.0
- HBase:hbase-1.2.6
- zookeeper:zookeeper-3.4.9
- phoenix:phoenix-4.13.1-HBase-1.2
获取链接:点击这里
提取码:60zi
文件上传到服务器使用lrzsz比较方便,参考文章
JDK安装
前置要求:查看本地有无OpenJDK,如果有需要先卸载了
输入 rpm -qa|grep jdk
查看当前安装了的
然后依次输入 yum -y remove 查询到的文件名
删除已有的文件
正式安装:
- 将安装包解压到压缩目录,本文的安装目录为
~/app/
解压命令 tar -zxvf jdk-8u171-linux-x64.tar.gz
- 获取jdk的安装目录:pwd->
/home/hadoop/app/jdk1.8.0_171
- 修改环境变量
vim ~/.bash_profile
将如下内容进行修改:
修改内容
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
修改为
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
export PATH
- 更新配置
source ~/.bash_profile
经过以上4步就安装完成了,查看JDK安装是否成功
输入: java -version
,如下显示安装成功
SSH免密登录配置
输入 ssh-keygen -t rsa
,然后一路回车
输入 cd ~/.ssh
进入ssh目录
输入 cat id_rsa.pub >> authorized_keys
将公钥写入authorized_keys文件
查看文件如下
修改authorized_keys权限:chmod 600 authorized_keys
然后再去访问只需要输入一次密码之后就不需要了
Hadoop安装
- 将安装包解压到压缩目录,本文的安装目录为
~/app/
解压命令 tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz
2. 配置JAVA_HOME
- 进入hadoop配置文件目录
- 修改hadoop-env.sh文件
vim hadoop-env.sh
找到export JAVA_HOME,将JAVA_HOME改为之前配置的那个JAVA_HOME
- 配置HADOOP_HOME
- 获取hadoop安装目录
pwd->/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
- 配置HADOOP_HOME, 输入
vim ~/.bash_profile
将hadoop的安装目录配置进去
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
- 更新配置
source ~/.bash_profile
然后HADOOP_HOME就配置好了
- 配置core-site.xml :
vim core-site.xml
在里面添加上如下内容,其中hadoop001
为你本机的名字映射
可以使用命令cat /etc/hosts
查看
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:8020</value>
</property>
5. 配置hdfs-site.xml :vim hdfs-site.xml
- 因为使用伪分布式,所以配置副本系数为1
在下面添加如下代码
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
- 设置临时文件存放目录
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
6. 修改slaves
将slaves设置成本机
7. 启动测试
- 格式化hdfs:
hdfs namenode -format
如图显示则格式化成功
- 启动hadoop
切换到 sbin目录下
输入./start-dfs.sh
启动集群,
启动完成后输入jps
查看启动进程
显示如图4个进程表示启动和配置都成功了
HBase安装
- 解压压缩包到~/app/目录下
tar -zxvf hbase-1.2.6-bin.tar.gz
- 找到hbase配置文件目录
- 复制hadoop的
hdfs-site.xml
和core-site.xml
到当前目录下
执行复制命令
cp ~/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/hdfs-site.xml ./
cp ~/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/core-site.xml .
-
配置hbase-env.sh
- 将JAVA_HOME配置成我们自己的JAVA_HOME
- 注释掉这两行
- 将JAVA_HOME配置成我们自己的JAVA_HOME
-
配置hbase.site.xml
添加如下内容,
hbase.rootdir
表示hbase文件在hdfs上的存储路径
hbase.zookeeper.property.dataDir
是hbase自带的zookeeper的datadir
hbase.cluster.distributed
表示是否以集群方式启动
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop001:8020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/app/tmp/zookeeper</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
3. 启动hbase
到达bin目录下
执行./start-hbase.sh
启动完成后使用jps
查看进程,发现如下指向的三个进程都启动了,就启动成功了
4. 测试使用hbse的shell
bin目录下执行 ./hbase shell
执行结束后如下图
现在,就可以使用shell命令行操作我们的hbase了
输入list
,查看当前拥有的表
配置自己的zookeeper
前面的配置都是使用的HBase自带的zookeeper,现在我们配置一个自己的zookeeper
- 停止掉hbase和hadoop
jps查看保证已经完全退出了
- 进入zookeeper下的conf目录
- 键入
cp zoo_sample.cfg zoo.cfg
,将配置文件模板复制一份 - 键入
vim zoo.cfg
对zookeeper进行配置
添加一行数据server.1=localhost:2888:3888
5. 创建目录mkdir /tmp/zookeeper
6. 修改新创建目录下的一个文件vi /tmp/zookeeper/myid
因为上面我们配置的server.1,所以文件内只需要输入1
7. 启动zookeeper
进入zookeeper的bin目录
输入 ./zkServer.sh start
启动zookeeper
如图显示则启动成功
8. 对hadoop进行格式化,删除我们之前配置的/home/hadoop/app/tmp
下的文件
输入hdfs namenode -format
- 修改hbase下的配置文件
hbase-env.sh
将默认的export HBASE_MANAGES_ZK=true
给为false
不使用hbase自带的zookeeper,而使用我们自己的
10,. 修改hbase-site.xml
,添加两个属性
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop001</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
配置完成依次重新启动就可以了
hbase的优化配置,同样是在hbase-site.xml
中添加三个属性
其中menstore256M,hregion大小为100G,禁止自动的major和conpact
<property>
<name>hbase.hregion.menstore.flush.size</name>
<value>268435456</value>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>107374182400</value>
</property>
<property>
<name>hbase.hregion.majorcompaction</name>
<value>0</value>
</property>
配置phoenix
实现SQL语句控制hbase
后面空了写