文章目录
ubuntu从0安装HBase和HBase所依赖的环境的安装配置
- 简单说三步走
- java环境的安装和配置
- hadoop安装和配置
- hbase安装和配置
我的搭建环境
-
ubuntu:18 软件源阿里云
-
java:openjdk version “1.8.0_252”
-
Hadoop:hadoop-2.7.7
-
Hbase:hbase-1.4.13
由于后面需要安装openssh-server所以我在这里将软件源修改为国内的更新源
sudo vi /etc/apt/sources.list
- 阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
- 清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
- 保存后执行命令 apt-get update &apt-get upgrade
apt-get dist-upgrade
apt-get update
apt-get full-upgrade
- 删除以下载的包
apt-get clean
- 重新启动
reboot
一、ubuntu安装SSH
-
安装Hadoop在Linux环境下之前,需要建立和使用Linux SSH(安全Shell)。按照下面设立Linux环境提供的步骤。
SSH设置和密钥生成
SSH设置需要在集群上执行不同的操作,如启动,停止和分布式守护shell操作。进行身份验证不同的Hadoop用户,需要一种用于Hadoop的用户提供的公钥/私钥对,并用不同的用户共享。
- 为什么要安装SSH?
因为在Hadoop启动以后,namenode是通过SSH来启动和停止各个节点上的各种守护进程的
- 复制公钥从id_rsa.pub为authorized_keys,并提供所有者,读写权限到authorized_keys文件。
# ssh-keygen -t rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 0600 ~/.ssh/authorized_keys
- 验证ssh
ssh localhost
一开始安装会出现错误
- 原因:
Ubuntu默认并没有安装ssh服务,如果通过ssh链接Ubuntu,需要自己手动安装openssh-server - 解决方案:安装SSH
sudo apt-get install openssh-server
二、java环境的安装和配置
- 安装java环境的命令
sudo apt install openjdk-8-jre-headless
sudo apt install openjdk-8-jdk-headless
- 输入java 和 javac 检查是否安装成功
- 配置环境变量
vi /etc/profile //打开配置文件
// shift+g跳到配置文件的最后一行,o(在当前行的下一行打开编辑模式)将以下命令写入配置文件中
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
export PATH=${JAVA_HOME}/bin:$PATH
- 执行 source /etc/profile 全局设置立刻生效
- 此时可以通过
echo $JAVA_HOME
来验证结果 - 重启检验java -version看到版本后即可
三、hadoop安装和配置
- 下载hadoop
cd /usr/local
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
hadoop国内镜像离线下载地址:北京信息学院镜像http://mirror.bit.edu.cn/apache/hadoop/common/
tar xzf hadoop-2.7.7.tar.gz
mkdir hadoop
mv hadoop-2.7.7/* hadoop/
-
安装 Hadoop
在这里安装模拟分布式模式的Hadoop。 -
设置 Hadoop 环境变量
打开Hadoop 的环境变量文件 sudo vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
source ~/.bashrc 应用
2. Hadoop配置
根据需要Hadoop将配置文件中的内容作修改。
cd $HADOOP_HOME/etc/hadoop
为了使用Java开发Hadoop程序,必须用java在系统中的位置来替换 hadoop-env.sh文件中的 java环境变量JAVA_HOME的值
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
配置Hadoop
- core-site.xml用于Hadoop实例的端口号,分配给文件系统,存储器限制用于存储数据存储器和读/写缓冲器的大小的信息。
- vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- yarn-site.xml此文件用于配置成yarn在Hadoop中
- vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- hdfs-site.xml用于复制数据的值,NameNode的路径,本地文件系统,要存储Hadoop基础架构的Datanode路径的信息。
- vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name >
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
</property>
</configuration>
- mapred-site.xml指定MapReduce框架以使用。默认情况下Hadoop包含yarn-site.xml模板。首先,它需要从mapred-site.xml复制模板到mapred-site.xml文件,使用下面的命令来。
cp mapred-site.xml.template mapred-site.xml
- vi mapred-site.xm
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 验证Hadoop
- 第1步 - 名称节点设置
设置名称节点使用“hdfs namenode -format”命令如下
cd ~
hdfs namenode -format
可能会报权限或者文件目录找不到的错误
查看报错信息是因为文件下载下来后没有相关的权限,或者我们之前配置的文件路径有误,一定要填写自己的文件路径
相应的就解决方案sudo chmod赋予相关的权限即可
或者mkdir -p 创建与报错信息相关的目录
- 第2步 - 验证Hadoop DFS
下面的命令用来启动DFS。执行这个命令将启动Hadoop文件系统。
start-dfs.sh
- 第3步 - 验证Yarn脚本
下面的命令用来启动yarn脚本。执行此命令将启动yarn守护进程。
start-yarn.sh
- 第4步 - 访问Hadoop上的浏览器
访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。
http://localhost:50070
- 第5步 - 验证集群中的所有应用程序
访问群集的所有应用程序的默认端口号为8088。使用以下URL访问该服务
http://localhost:8088/
四、hbase安装和配置
-
下载HBase
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.13/hbase-1.4.13-bin.tar.gz 离线下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/
-
解压:tar -zxvf hbase-1.4.13-bin.tar.gz 移动到自己的目录:sudo mv hbase-1.4.9 /usr/local
-
进入conf目录,在 hbase-env.sh后面添加如下内容,注意这里的JAVA_HOME填自己的jdk路径
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 **注意这里的JAVA_HOME填自己的jdk路径** export HBASE_MANAGES_ZK=false
-
修改HBase的主配置文件hbsae-site.xml:在单实例HBase运行环境下,主要是修改指定HBase和ZooKeeper的写数据目录
<configuration>
//Here you have to set the path where you want HBase to store its files.
//HBase数据保存目录
<property>
<name>hbase.rootdir</name>
<value>file:/home/hadoop/HBase/HFiles</value>
</property>
//Here you have to set the path where you want HBase to store its built
in zookeeper files.
//Zookeeper的数据保存目录
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
- 添加到环境变量
sudo vi ~/.bashrc
export HBASE_HOME=/usr/local/hbase-1.4.13//填写自己的路径
export HBASE_CONF_DIR=$HBASE_HOME/conf
export HBASE_CLASS_PATH=$HBASE_CONF_DIR
export PATH=$PATH:$HBASE_HOME/bin
使用source ~/.bashrc命令语句使修改的 .bashrc文件立即生效
- 验证
-
使用hbase version 命令测试是否修改.bashrc文件成功,如能显示HBase正确的版本则说明修改成功。
-
可以通过使用 HBase 的 bin 文件夹中提供 start-hbase.sh 脚本启动HBase
-
停止HBase:stop-hbase.sh
-
可以通过使用./hbase shell打开hbase的客户端进行操作
-
测试hbase 基础操作
# 创建表 create 'student', 'score' # list: 列出HBase的所有表 # 查看表结构 describe 'student' # 删除数据 # 用drop命令可以删除表。在删除一个表之前必须先将其禁用。 disable 'student' drop 'student' # 添加数据 put 'student', 'zhangsan', 'score:english', '69' put 'student', 'zhangsan', 'score:Math', '86' put 'student', 'zhangsan', 'score:Computer', '69' put 'student', 'lisi', 'score:english', '55' put 'student', 'lisi', 'score:Math', '100' put 'student', 'lisi', 'score:Computer', '77' # 查询数据 scan 'student' get 'student', 'zhangsan', 'score:Computer' # 修改数据 put 'student', 'lisi', 'score:Math', '95' # 删除数据 delete 'student', 'lisi', 'score:Math' # 删除表的所有单元格 deleteall 'student', 'lisi' # count命令计算表的行数量 count 'student'
对比一下MySQL的表