Hadoop一整套简易安装步骤

(从上至下粘贴复制也能搭建出来)
所需要的安装包见:
链接: https://pan.baidu.com/s/1U3GzDU_R9xpoy8DCsZUFPw

提取码:wm5l

一、使用vm进行虚拟机的安装

(软件安装包见上面的链接,注册码也在其中)
1、软件安装好后
在这里插入图片描述2、盘片下载链接
链接: https://www.centos.org/centos-linux/.
在这里插入图片描述
3、在这里插入图片描述
4、
在这里插入图片描述5、
在这里插入图片描述
6、一定要进行自定义硬件,不要点击完成
在这里插入图片描述7、内存最低4g
在这里插入图片描述8、处理器看自身电脑,最好内核数量为2,实在不行就1
在这里插入图片描述9、把之前下载好的盘片装进来
在这里插入图片描述
10、第一个网络适配器选择仅主机模式
在这里插入图片描述
点击高级并生成新的mac地址
在这里插入图片描述

然后再添加一个网络适配器
在这里插入图片描述选择新添加的网络适配器 进行以下配置
在这里插入图片描述

至此一台虚拟机配置完成

二、配置虚拟机的基本属性

1、默认的直接点击右下角的按钮即可
在这里插入图片描述
2、配置时区:
在这里插入图片描述
选择上海
在这里插入图片描述
3、设置硬盘空间
在这里插入图片描述在这里插入图片描述4、设置网络
在这里插入图片描述全部变为ON状态

在这里插入图片描述
在这里插入图片描述

完成后点击右下角的继续

5、设置密码
在这里插入图片描述
如果密码过于简单,需要点击2次Done
在这里插入图片描述安装好后点击右下角的按钮,结束基础配置
在这里插入图片描述6、配置网络
(1)输入 用户名 和密码 登录虚拟机
(2)修改网络配置

// 输入以下命令
vi /etc/sysconfig/network-scripts/ifcfg-ens33

按下键盘上的a 键 进入编辑模式
修改以下内容:
在这里插入图片描述保存并退出:按下 esc键 然后 :x 即可
(3)重启网络关闭防火墙

// 输入以下命令
systemctl restart network
systemctl stop firewalld
systemctl disable firewlld

(4)修改主机名和主机列表

// 修改主机名
hostnamectl set-hostname 名字 
//修改主机列表
vi /etc/hosts

修改的样式 IP地址加主机名
在这里插入图片描述虚拟机已全部配置结束

(接下来是主菜)

三、配置单机Hadoop

使用Mobax软件进行配置操作,之前的链接里面有这个软件,安装下就行
1、新建一个software 文件夹 用于存放 安装包

// 输入以下命令
[root@hadoop1 ~]# cd /
[root@hadoop1 /]# mkdir software

将所有安装包拖至 software 文件夹下
在这里插入图片描述
2、解压、移动所有安装包至opt目录下

// 进入software 目录
cd software
//解压、移动
tar -zxf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt
tar -zxf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt
tar -zxf hive-1.1.0-cdh5.14.2.tar.gz -C /opt
tar -zxf jdk-8u221-linux-x64.tar.gz -C /opt
tar -zxf zookeeper-3.4.6.tar.gz -C /opt
mv MySQL-client-5.6.46-1.el7.x86_64.rpm /opt
mv MySQL-server-5.6.46-1.el7.x86_64.rpm /opt
//进入opt目录
cd opt
//改名
 mv hadoop具体文件名 hadoop
 mv hbase具体文件名 hbase
 mv jdk具体文件名 jdk8
 mv hive具体文件名 hive
 mv zook具体文件名 zook

3、配置环境变量

输入:vi /etc/profile
进入文件后 按 shift+g 定位到最后一行 插入以下内容

export JAVA_HOME=/opt/jdk8
export JRE_HOME=/opt/jdk8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/opt/hadoop
export HBASE_HOME=/opt/hbase
export HIVE_HOME=/opt/hive
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin

保存并退出
输入:source /etc/profile 使文件立即生效

输入:javac
java -version
hadoop version
hbase version
查看是否配置成功

4、配置hadoop
进入到 hadoop 目录下
输入:cd /opt/hadoop/etc/hadoop
在hadoop目录下输入:vi hadoop-env.sh

// 在 # The java implementation to use. 下面插入:
export JAVA_HOME=/opt/jdk8   //(jdk的完整路径)

保存并退出

输入:vi core-site.xml

// 在 <configuration></configuration> 之间输入:
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.17.**:9000</value>
  </property>

  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
 </property>

  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>

  <property>
    <name>hadoop.proxyuser.rooot.groups</name>
    <value>*</value>
  </property>

保存并退出

输入命令:vi hdfs-site.xml

<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>主机名:50090</value>
</property>

保存并退出

先给文件改名:
输入:mv mapred-site.xml.template mapred-site.xml
然后进入文件:
输入:vi mapred-site.xml

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<property>
  <name>mapreduce.jobhistory.address</name>
  <value>主机名:10020</value>
</property>

<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>主机名:19888</value>
</property>

保存并退出

输入:vi yarn-site.xml

// 在<!-- Site specific YARN configuration properties -->后面插入:
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>

<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名</value>
</property>

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

保存并退出

5、回到hadoop目录下 删除tmp 文件夹
输入: cd /opt/hadoop
rm -rf tmp

6、格式化hadoop
输入:hadoop namenode -format

7、启动
输入:start-all.sh
启动历史服务
输入:mr-jobhistory-daemon.sh start historyserver

8、启动完成后,输入jps 查看启动情况
出现以下内容即可:
在这里插入图片描述至此单机Hadoop 配置完成

四、hadoop集群的配置

1、复制2台虚拟机 唯一要修改的是 2台虚拟机的mac地址要重新生成,还有ip地址的后一位 要进行修改,建议和之前的ip地址连号。配置主机名,将主机名都添加进每台虚拟机的主机列表里面

2、生成密钥
由于之前hadoop搭建配置过免登录,需要先删除文件
输入: cd /root/.ssh/
删除私钥文件: rm -rf id_rsa
然后回到初始目录
生成私钥: ssh-keygen -t rsa -P “” ,输入命令后直接回车
输入: cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
主机直接和其他的连接即可 其他要自行配置密钥
远程免登录配置: ssh-copy-id -i .ssh/id_rsa.pub -p22 root@主机名或者IP地址
验证免登录: ssh root@主机名或者IP地址
(一共三台机器都设置下)

3、主节点配置修改
修改hdfs配置文件: vi hdfs-site.xml
将dfs.replication属性的值改为集群的机器数目
将dfs.namenode.secondary.http-address属性的值改为一个副本机器的主机名(随便挑一个写)
在这里插入图片描述
修改slaves文件: vi slaves,将所有机器主机名添加进去
在这里插入图片描述
其他2台副节点机器也是如此修改配置

4、三台虚拟机都要删除 tmp文件夹
cd /opt/hadoop
rm -rf tmp

5、三台虚拟机全部格式化
输入: hadoop namenode -format

6、运行:
输入:start-all.sh
都可以通过jps 进行查看

至此集群的配置完成了

五、zookeeper的配置

1、进入 opt 目录下的 zook 目录中
输入: vi conf/zoo_sample.cfg 进行内容修改
在 tickTime=2000 下面插入:maxClientCnxns=0
在这里插入图片描述initLimit=50 原本是10 改为50
在这里插入图片描述

将 dataDir 后面的 路径最好改下:
dataDir=/opt/hadoop/zookprdata
在这里插入图片描述
在最后面添加:(shift+g 定位)
server.1=主机名1:2888:3888
server.2=主机名2:2888:3888
server.3=主机名3:2888:3888

在这里插入图片描述
保存并退出

将改好的文件发送给其他2台机器
scp conf/zoo.cfg root@主机名2:/opt/zook/conf/
scp conf/zoo.cfg root@主机名3:/opt/zook/conf/

2、在 三台机器的 opt/hadoop 目录 新建一个zookprdata文件夹
[root@hadoop1 hadoop]# mkdir zookprdata

在 三台机器的 zookprdata 文件夹中 创建一个 myid 文件
输入:vi myid

hadoop1 里面的myid文件 内 输入 1
hadoop2 里面的myid文件 内 输入 2
hadoop3 里面的myid文件 内 输入 3

和这个
在这里插入图片描述
需要相对应起来

至此 zookeeper 算是配置结束

六、hbase的配置

1、进入到opt 下的hbase 目录中
[root@hadoop1 hbase]# vi conf/hbase-site.xml 修改此文件

// 插入以下内容
<property>
   <name>hbase.rootdir</name>
   <value>hdfs://hadoop1:9000/hbase</value>
   <description>The directory shared by region servers.</description>
</property>

<property>
   <name>hbase.cluster.distributed</name>
   <value>true</value>
</property>

<property>
  <name>hbase.master.port</name>
  <value>60000</value>

</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hadoop1,hadoop2,hadoop3</value>
</property>

<property>
  <name>hbase.regionserver.handler.count</name>
  <value>300</value>
</property>

<property>
  <name>hbase.hstore.blockingStoreFiles</name>
  <value>70</value>
</property>

<property>
  <name>zookeeper.session.timeout</name>
  <value>60000</value>
</property>

<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
<description>
Zookeeper session expired will force regionserver exit.
Enable this will make the regionserver restart.
</description>
</property>

<property>
  <name>hbase.replication</name>
  <value>false</value>
</property>

<property>
  <name>hfile.block.cache.size</name>
  <value>0.4</value>
</property>

<property>
  <name>hbase.regionserver.global.memstore.upperLimit</name>
  <value>0.35</value>
</property>

<property>
  <name>hbase.hregion.memstore.block.multiplier</name>
  <value>8</value>
</property>

<property>
  <name>hbase.server.thread.wakefrequency</name>
  <value>100</value>
</property>

<property>
  <name>hbase.master.distributed.log.splitting</name>
  <value>false</value>
</property>

<property>
  <name>hbase.regionserver.hlog.splitlog.writer.threads</name>
  <value>3</value>
</property>

<property>
  <name>hbase.hstore.blockingStoreFiles</name>
  <value>20</value>
</property>

<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>134217728</value>
</property>

<property>
  <name>hbase.hregion.memstore.mslab.enabled</name>
  <value>true</value>
</property>

保存并退出

将配置文件传给另外2台虚拟机
[root@hadoop1 hbase]# scp conf/hbase-site.xml root@hadoop2:/op/hbase/conf/hbase-site.xml
[root@hadoop1 hbase]# scp conf/hbase-site.xml root@hadoop3:/op/hbase/conf/hbase-site.xml

2、配置:[root@hadoop1 hbase]# vi conf/hbase-env.sh 文件

// #后面是原本就存在的 只需要在其下方插入就行
# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/opt/jdk8

# export HBASE_HEAPSIZE=1G
export HBASE_HEAPSIZE=4000
#Uncomment 上面

# export HBASE_OFFHEAPSIZE=1G
export HBASE_OFFHEAPSIZE=1G

在  export HBASE_OPTS="-XX:+UseConcMarkSweepGC"  下面 插入:

export HBASE_OPTS="-Xmx4g -Xms4g -Xmn128m -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc  -XX:+PrintGCDetails -XX:+PrintGCTimeStamps  -Xloggc:$HBASE_HOME/logs/gc-$(hostname)-hbase.log"

# export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false

# export HBASE_CLASSPATH=
export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop

保存并退出

将配置好的文件传给 另外两台虚拟机
scp conf/hbase-env.sh root@hadoop2:/opt/hbase/conf/hbase-env.sh
scp conf/hbase-env.sh root@hadoop3:/opt/hbase/conf/hbase-env.sh

3、配置:[root@hadoop1 hbase]# vi conf/log4j.properties

// 紧靠头部
# Define some default values that can be overridden by system properties
hbase.root.logger=WARN,consle

//94行
#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
log4j.logger.org.apache.hadoop.hbase=WARN

保存并退出

将配置好的文件传给另外两台虚拟机
[root@hadoop1 hbase]# scp conf/log4j.properties root@hadoop2:/opt/hbase/conf/log4j.properties
[root@hadoop1 hbase]# scp conf/log4j.properties root@hadoop3:/opt/hbase/conf/log4j.properties

4、配置:[root@hadoop1 hbase]# vi conf/regionservers
只需要将3个主机名添加进去即可

将配置好的文件传给另外两台虚拟机
[root@hadoop1 hbase]# scp conf/regionservers root@hadoop2:/opt/hbase/conf/regionservers
[root@hadoop1 hbase]# scp conf/regionservers root@hadoop3:/opt/hbase/conf/regionservers

至此 hbase 算是配置完成

5、启动
三台机器都 进入hadoop 目录,查看下有没有tmp文件夹
(有的话就删除,没有就算了)

三台虚拟机都格式化
输入:hadoop namenode -format

启动 zookeeper
[root@hadoop1 hadoop]# /opt/zook/bin/zkServer.sh start

启动hadoop
[root@hadoop1 hadoop]# start-all.sh

然后jps查看 出现这个即可 QuorumPeerMain


番外:这是3台虚拟机时间不同步时的操作,本身就同步的话 直接跳过就行,使用date 命令查看
{
zookeeper 时区配置
每台虚拟机都安装 ntp
[root@hadoop1 hadoop]# yum -y install ntp

配置:[root@hadoop1 hadoop]# vi /etc/ntp.conf 文件
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.17.** nomodify notrap nopeer noquery
restrict 192.168.17.1 mask 255.255.255.0 nomodify notrap
(每个问的机器不同 此处要进行修改)
其他副机器 上面的 192.168.17.** 填自己的 下面的网关不变

选一台时间和你当前电脑时间一致的作为主节点 输入 date 命令查看
继续配置:[root@hadoop1 hadoop]# vi /etc/ntp.conf


#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
全部注释掉 并在下方插入
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

其他副节点机器时间的配置
进入 [root@hadoop1 hadoop]# vi /etc/ntp.conf
还是先注释掉那几个内容,并在下方插入
server 192.168.17.**
Fudge 192.168.17.** stratum 10
(这里的IP地址是,哪台虚拟机作为时间的主节点机器,就用那台的ip地址,这是为了能同步时间 )

然后三台机器都输入:
[root@hadoop1 hadoop]# service ntpd start
[root@hadoop1 hadoop]# ntpstat
进行同步时区设置
}

启动三台机器的 zkServer.sh
[root@hadoop2 hbase]# /opt/zook/bin/zkServer.sh start

启动主节点机器的 hbase
[root@hadoop1 hbase]# start-hbase.sh

jps 查看 出现 HRegionServer 即可成功

然后输入:
[root@hadoop1 hbase]# hbase shell
进入以下命令行 输入list
hbase(main):002:0> list
出现
TABLE
0 row(s) in 0.2220 seconds
就代表 hbase 没问题

七、hive的配置

(需要用到MySQL)
1、
下载docker
yum install -y docker

启动docker
[root@hadoop1 hbase]# service docker start
[root@hadoop1 hbase]# ps -aux | grep docker

下载mysql
[root@hadoop1 hbase]# docker pull mysql:latest

具体安装可以详见菜鸟教程:
链接: https://www.runoob.com/docker/docker-install-mysql.html.

2、输入:mysql -u用户名 -p密码 进入数据库
创建一个hive 用户
mysql> create user ‘bigdata’@‘节点主机名’ IDENTIFIED BY ‘密码’;

创建一个hive 的数据库
mysql> create database hive_metadata;

赋权
mysql> grant all privileges on . to ‘bigdata’@‘节点主机名’;

及时生效:
mysql> flush privileges;

退出数据库
mysql>quit;

3、配置hive

// 先改名:mv conf/hive-env.sh.template conf/hive-env.sh
// 进入文件:vi conf/hive-env.sh
// 修改:
# HADOOP_HOME=${bin}/../../hadoop
export HADOOP_HOME=/opt/hadoop

# export HIVE_CONF_DIR=
export HIVE_CONF_DIR=/opt/hive/conf

# export HIVE_AUX_JARS_PATH=
export HIVE_AUX_JARS_PATH=/opt/hive/lib

保存并退出

4、在conf目录下,创建一个 hive-site.xml 文件
[root@hadoop3 hive]# cd conf/
[root@hadoop3 conf]# vi hive-site.xml
插入以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!--如果是远程mysql数据库的话需要在这里写入远程的IP或hosts-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive_metadata?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>用户名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>密码</value>
</property>

</configuration>

5、将mysql 的驱动包 放入到 hive 的 lib 目录下

6、初始化
创建文件夹
[root@hadoop3 bin]# hadoop fs -mkdir -p /opt/hive/warehouse

赋权
[root@hadoop3 bin]# hadoop fs -chmod 777 /opt/hive/warehouse
[root@hadoop3 bin]# hadoop fs -chmod -R 777 /opt/hive/

初始化
[root@hadoop3 bin]# schematool -dbType mysql -initSchema

7、启动hive
[root@hadoop3 bin]# hive

8、查看下是否成功
hive> show databases;
出现以下内容即可
OK
default
Time taken: 3.495 seconds, Fetched: 1 row(s)
至此 hive 的配置也结束了

  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值