赞
踩
**注意!!!!!!!!我的虚拟机用户名是hadoop 以我的为标准就不会出错 **
本文是基于CentOS 7 , jdk-8 和Hadoop3.2.2 Hbase2.3.2环境搭建,准备好CentOS7 64位的镜像,然后在VMware上安装虚拟机
vi /etc/sysconfig/network-scripts/ifcfg-ens33
把 BOOTPROTO = “dhcp” 改成 BOOTPROTO = “static” 表示静态获取,然后把 UUID 注释掉,把 ONBOOT 改为 yes,表示开机自动静态获取,然后在最后追加比如下面的配置:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" #UUID="e59bb0ad-2918-4de6-93fa-46bd94c0a474" DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.134.151 #自己的ip地址 NETMASK=255.255.255.0 #固定 GATEWAY=192.168.134.2 ##自己的ip地址后面是2 DNS1=8.8.8.8 #固定
然后重启网络,centos7的网卡重启方法:systemctl restart network
查看防火墙状态: systemctl status firewalld.service
执行关闭命令: systemctl stop firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service
vim /etc/hosts
在末尾添加内容:
192.168.10.100 xxxx #xxxx是自己的设置的名字
重启虚拟机
reboot
在Windows中打开C:\Windows\System32\drivers\etc路径,在hosts文件中添加如下内容:
192.168.10.100 ljc100 #和linux保持一直
mkdir module/ software/
chown 自己的用户名:自己的用户名 module/ software/
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
配置免密登录
Hadoop 中的NameNode和DataNode是通过SSH (Secure Shell) 进行通信的,所以
需要先完成 SSH免密码登录。具体操作步骤如下:
ssh-keygen -t rsa
ssh-copy-id localhost
执行完上面两条命令后,就可以实现免密码登录到本机。验证方式如下:
[hadoop@hadoop ~]S ssh hadoop
解压
cd /opt/software/
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.2.2.tar.gz -C /opt/module/
配置
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_321
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
使修改后的文件生效
source /etc/profile
测试Hadoop jdk是否安装成功
hadoop version
jdk -version
========注意下面这些文件在 /etc/hadoop/
hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_321
**core-site.xml **
<property>
<!-- 配置NameNode的主机名和端口号 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop:8020</value> <!-- hadoop是我的linux的用户名 已经映射了ip地址 切换自己的用户名就行 -->
</property>
hdfs-site.xml(确保下面路径中的文件夹是存在的,没有的话先创建)
<property> <!-- 设置HDFS元数据文件存放路径 --> <name>dfs.namenode.name.dir</name> <value>/opt/hd_space/hdfs/name</value> </property> <property> <!-- 设置HDFS数据文件存放路径 --> <name>dfs.datanode.data.dir</name> <value>/opt/hd_space/hdfs/data</value> </property> <property> <!-- 设置HDFS数据文件副本数 --> <name>dfs.replication</name> <value>1</value> </property> <property> <!-- 设置其他用户执行操作时会提醒没有权限 --> <name>dfs.permissions</name> <value>false</value> </property>
mkdir -p /opt/hd_space/hdfs/data
mkdir -p /opt/hd_space/hdfs/name
#分配权限
chown 自己的用户名:自己的用户名 module/ hd_space/
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
slaves(没有这个文件自己加,内容是自己的用户名我的是hadoop)
hadoop
Hadoop配置完成后,第一次使用Hadoop平台需要先格式化文件系统。
进入到Hadoop安装目录下的bin目录里,执行:./hdfs namenode -format
此方法需要用root用户
bin目录的权限如果是root,则分配权限给hadoop
chown 自己的用户名:自己的用户名 /opt/module/hadoop-3.2.2/bin
cd /opt/hadoop/bin
./hdfs namenode -format
进入到Hadoop安装目录下的sbin目录里,执行:start-all.sh
cd /opt/Hadoop/sbin
start-all.sh
Hadoop启动成功后,通常使用以下几种方式进行验证。
(1) 通过 jps 命令查看启动的进程,命令执行后,如果可以看到 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 进程,证明 Hadoop平台已经启动成功。
(2) 通过webui的方式验证
验证 HDFS 启动成功的网址为:http://hadoop:9870 # hadoop为你的ip地址
验证 YARN 启动成功的网址为:http://hadoop:8088 # hadoop为你的ip地址
如果两个网址都能正确打开,证明Hadoop平台已经启动成功
HBase安装包解压完成并配置好环境变量
export HBASE_HOME=/opt/hbase
export PATH=.:
H
B
A
S
E
H
O
M
E
/
b
i
n
:
HBASE_HOME/bin:
HBASEHOME/bin:PATH
解压
cd /opt/software/
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.2.2.tar.gz -C /opt/module/
配置
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase-2.3.2
export PATH=$PATH:$HBASE_HOME/bin
执行 source /etc/profile后生效,然后去bin目录输入 hbase version
自己hbase目录下的conf
vim /hbase-2.3.2/conf/ hbase-env.sh
配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK。
export JAVA_HOME=/opt/module/jdk1.8.0_321
export HBASE_CLASSPATH=/opt/module/hbase-2.3.2/conf
export HBASE_MANAGES_ZK=true
用vi打开并编辑hbase-site.xml,命令如下:
vim /hbase-2.3.2/conf/hbase-site.xml
<configuration> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master</name> <value>hadoop:60000</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>2181</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop:8020/hbase</value> </property> <property> <name>hbase.tmp.dir</name> <value>./tmp</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>
第一步:首先登陆ssh,之前设置了无密码登陆,因此这里不需要密码;
第二步:再切换目录至/opt/module/hadoop-3.2.2
第三步:启动hadoop(如果已经启动hadoop请跳过此步骤)。
ssh 自己的hostname
cd /opt/module/hadoop-3.2.2/sbin/ start-all.sh
切换目录至/opt/module/hbase-2.3.2/
,启动HBase:
cd /opt/module/hbase-2.3.2/
bin/start-hbase.sh
HBase启动完成以后,通常可以使用以下几种方式进行验证。
(1)通过jps命令查看启动的进程。
如果看到启动的进程包括Hadoop中的NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 进程,同时多了HMaster、HRegionServer两个进程,说明HBase已经启动成功。
错误如下:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
说明这是jar包冲突,分别为:
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class]
移除其中一个jar包即可:
cd /usr/local/hadoop/share/hadoop/common/lib
rm slf4j-reload4j-1.7.35.jar
错误如下:
/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2366: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:无效的变量名
/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2461: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:无效的变量名
打开 ~/hbase-2.3.2/conf (目录根据自己的目录进行修改)目录下的hbase-env.sh文件中进行编辑: 解除注释!
错误如下:
2022-10-12 16:28:02,575 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决方法:
进入/opt/module/hadoop-3.2.2/log4j.properties文件中,在文件末尾添加指令:
sudo vi log4j.properties
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。