Hadoop/hbase单机测试环境搭建记录

Hadoop/hbase单机测试环境搭建记录

  1. 基础设施

操作系统

CentOS Linux release 7.5.1804 (Core) (vmware虚拟机)

硬件

1核cpu 2G内存 20G硬盘

Hadoop版本

Hadoop2.6.5

Hbase

Hbase-1.2.8

Java

jdk"1.8.0_151"

 

  1. 安装顺序
  1. 配置linux免密登录 用于hadoop及hbase启动免认证
  2. 配置hostname   # vi /etc/hosts 修改本机ip 主机名 重启网络或重启系统
  3. 安装java
  4. 安装hadoop
  5. 安装配置Hbase

 

  1. 免密登录配置

 cd ~ # 进入当前用户目录

 ssh-keygen –t rsa # 如有提示 直接按回车生成密钥对

 # 如root用户会在/root目录下生成.ssh 文件夹

 cat id_rsa.pub >> authorized_keys # 加入授权

 (ssh-copy-id –i ~/.ssh/id_rsa.pub [目标机器ip地址/主机名]   #授权远程机器登录)

  ssh localhost 测试,不需要密码登录即可登录即成功

##########

 id_rsa  ---- 私钥

 id_rsa.pub ---公钥

 authorized_keys -----授权登录主机的公钥

 known_hosts -----登录过已知的主机

 

#遇到的问题

 Q1: 设置了免密登录ssh还需要输入密码登录

 A1: 检查/var/log/secure 日志登录信息

 

 

 要求:用户所在home目录 、.ssh目录权限必须为700;.ssh/authorized_keys文件权限为600

 

  1. Linux  java安装

 Java8 下载地址 :

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载64位版本jdk-8u191-linux-x64-demos.tar.gz 拷到虚拟机

1)解压至/usr/local目录用于配置环境变量

# tar zxvf jdk-8u151-linux-x64.tar.gz –C /usr/local

2)配置环境变量 vi /etc/profile

 # JAVA_HOME

export JAVA_HOME=/usr/local/bin/jdk1.8.0_151

export PATH=$PATH:$JAVA_HOME/bin

3) source /etc/profile 使环境变量生效

测试 java 、javac 、jar 能正常使用即可

 

  1. Hadoop安装

 Hadoop下载地址 官方提供的镜像站http://www.apache.org/dyn/closer.cgi/hadoop/common

 # 下载安装包

 cd /usr/local

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

tar zxvf hadoop-2.6.5.tar.gz

解压进入生成的hadoop-2.6.5目录中

cd hadoop-2.6.5/etc/hadoop

#设置hadoop-env.sh

找到# The java implementation to use.这句话,在下面添加如下内容:

#export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/usr/lib/java/jdk1.8.0_11

export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.7.4

export PATH=$PATH:/usr/lib/hadoop/hadoop-2.7.4/bin

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

执行source /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh,使得环境变量生效

#配置环境变量 vi /etc/profile

# Hadoop Setting

export HADOOP_HOME=/usr/local/hadoop-2.6.5

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

验证是否成功,如下图

# 配置相关XML文件

vim hadoop-2.6.5/etc/hadoop/core-site.xml(hadoop全局配置)

内容如下

fs.defaultFS

hdfs://node2:9000    ///node2 为配置的主机名

hadoop.tmp.dir

/root/hadoop/tmp

 

vim hadoop-2.6.5/etc/hadoop/hdfs-site.xml(设置保存数据副本数)

dfs.replication

1

 

# 设置MapReduce

cd /usr/lib/hadoop/hadoop-2.7.4/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml(MapReduce的配置)

 

mapreduce.framework.name

yarn

 

# 设置YARN

vi yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

 

# 格式化hdfs文件系统

/usr/local/hadoop-2.6.5/bin/hadoop namenode –format (配置环境变量可直接输hadoop命令)

看到Exiting with status 0 表示格式化成功 如为1 可能为上述xml配置问题

 

# 启动hadoop(hdfs和yarn)

 Hadoop-2.6.5/sbin/start-all.sh 启动start-all.sh

 Hadoop-2.6.5/sbin/stop-all.sh 停止服务

 

# 用jps 查看 jvm进程

使用web查看Hadoop运行状态

http://[master机器ip]:50070

 

 

使用web查看集群状态

http://机器ip:8088

 

可能会遇到的问题

Q1:如果你多次进行了hdfs的格式化操作,可能会无法启动datanode,原因是id不一致,一般的解决方法为将namenode clusterID和datanode clusterID改成一样的就行了。修改的文件为/tmp/hadoop-root/dfs/下的name or data文件下的VERSION里的内容

Q2: hadoop fs -ls报“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”

A2:以前官网会提供32位的安装包,但目前提供的下载包为64位的,在linux 32位系统下安装后会一直提示错误“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ”,但官网又不提供32位系统下的安装包,所以我们只能自己编译打包源码。

大家可以到$HADOOP_HOME/lib/native下,查看文件libhadoop.so.1.0.0,里面会显示Hadoop的位数,官网下载好的显示是64位的,截图如下:

如果你是64位操作系统,可以直接跳到第二步。

在hadoop-2.6.5/etc/hadoop/hadoop-env.sh 中添加

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

source hadoop-env.sh生效

 

  1. Hbase安装

此处安装使用hbase-1.2.8版本

下载地址http://hbase.apache.org/downloads.html

下载hbase-1.2.8-bin.tar.gz包

tar zxvf hbase-1.2.8-bin.tar.gz

进入解压后的目录

cd hbase-1.2.8/conf

# 设置基础环境变量

vi hbase-env.sh

添加export JAVA_HOME=/usr/local/bin/jdk1.8.0_151

# 设置全局变量

vi hbase-site.xml

 

      hbase.tmp.dir

      /usr/local/hbase/hbaseData

   //hbase临时文件目录

  

      hbase.rootdir

      hdfs://node2:9000/hbase

   //在hdfs访问路径

  

   hbase.zookeeper.quorum

   node2

  

  

   hbase.cluster.distributed

   true

 

 

# 启动hbase

cd Hbase-1.2.8/bin

./start-hbase.sh

运行成功结果

相关日志在hbase-1.2.8/logs目录

 

测试 hbase-1.2.8/bin/hbase shell

 

测试hadoop fs -ls /hbase

Hbase的web界面

http://机器ip:16010  (早期版本端口为60010 。HBASE1.0之后的版本web端访问的接口变更为16010

 

  1. 附录

# hadoop 与Hbase支持版本信息

 

 

参考资料

常见问题 :https://www.jianshu.com/p/304c2a53e182

Hadoop官方文档 :http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/ClusterSetup.html

 

你可能感兴趣的:(Hadoop/hbase单机测试环境搭建记录)