hadoop集群搭建

1.服务器信息

[root@master ~]# cat /etc/hosts
192.168.1.171 master
192.168.1.172 slave01
192.168.1.173 slave02

2.在三个节点分别添加安装用户

groupadd ghadoop
useradd uhadoop -g ghadoop -d /home/uhadoop
passwd uhadoop
#密码uhadoop

3.配置时间同步

[root@master ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdtae 0.cn.pool.ntp.org
[root@slave01 ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdtae 0.cn.pool.ntp.org
[root@slave02 ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdtae 0.cn.pool.ntp.org

4.关闭防火墙和selinux

[root@master ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@master ~]# getenforce
Disabled
[root@slave01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@slave01 ~]# getenforce
Disabled
[root@slave02 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@slave02 ~]# getenforce
Disabled

5.配置无密码登录

#在uhadoop用户下操作
[uhadoop@master ~]$ ssh-keygen
[uhadoop@master ~]$ ssh-copy-id slave01
[uhadoop@master ~]$ ssh-copy-id slave02
[uhadoop@slave01 ~]$ ssh-keygen
[uhadoop@slave01 ~]$ ssh-copy-id master
[uhadoop@slave01 ~]$ ssh-copy-id slave02
[uhadoop@slave02 ~]$ ssh-keygen
[uhadoop@slave02 ~]$ ssh-copy-id master
[uhadoop@slave02 ~]$ ssh-copy-id slave02

#验证
[uhadoop@master ~]$ ssh slave01
[uhadoop@slave01 ~]$ exit
logout
Connection to slave01 closed.
[uhadoop@master ~]$ ssh slave02
[uhadoop@slave02 ~]$ exit
logout
Connection to slave02 closed.
[uhadoop@slave01 .ssh]$ ssh master
[uhadoop@master ~]$ exit
logout
Connection to master closed.
[uhadoop@slave01 .ssh]$ ssh slave02
Last login: Mon Aug 3 18:26:56 2020 from master
[uhadoop@slave02 ~]$ exit
logout
Connection to slave02 closed.
[uhadoop@slave02 ~]$ ssh master
Last login: Mon Aug 3 10:27:15 2020 from slave01
[uhadoop@master ~]$ exit
logout
Connection to master closed.
[uhadoop@slave02 ~]$ ssh slave01
Last login: Mon Aug 3 18:26:47 2020 from master
[uhadoop@slave01 ~]$ exit
logout
Connection to slave01 closed.

6.安装jdk

#三台机器都要装
[uhadoop@master ~]$ tar -zxvf soft/jdk-8u20-linux-x64.tar.gz -C apps/
[uhadoop@slave01 ~]$ tar -zxvf soft/jdk-8u20-linux-x64.tar.gz -C apps/
[uhadoop@slave02 ~]$ tar -zxvf soft/jdk-8u20-linux-x64.tar.gz -C apps/
[uhadoop@master ~]$ cat .bash_profile

export JAVA_HOME=/home/uhadoop/apps/jdk1.8.0_20
export PATH=$PATH:$JAVA_HOME/bin

[uhadoop@master ~]$ source .bash_profile
[uhadoop@master ~]$ scp .bash_profile slave01:/home/uhadoop/.bash_profile
[uhadoop@master ~]$ scp .bash_profile slave02:/home/uhadoop/.bash_profile
[uhadoop@slave01 ~]$ source .bash_profile
[uhadoop@slave02 ~]$ source .bash_profile

7.安装hadoop

7.1 在每台机创建目录

mkdir -p /home/uhadoop/datas/hadoop/dfs/data
mkdir -p /home/uhadoop/datas/hadoop/dfs/name
mkdir -p /home/uhadoop/datas/hadoop/tmp

7.2 在每台机添加hadoop环境变量

[uhadoop@master ~]$ cat .bash_profile

export HADOOP_HOME=/home/uhadoop/apps/hadoop-2.7.6
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"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

[uhadoop@master ~]$ scp .bash_profile slave01:/home/uhadoop/.bash_profile
[uhadoop@master ~] scp .bash_profile slave01:/home/uhadoop/.bash_profile
[uhadoop@master ~] scp .bash_profile slave01:/home/uhadoop/.bash_profile
[uhadoop@slave01 ~] source .bash_profile
[uhadoop@slave02 ~] source .bash_profile

7.3 在每台机解压hadoop安装包

tar -zxvf hadoop-2.7.6.tar.gz -C …/apps

7.4 配置slave

[uhadoop@master hadoop]$ pwd
/home/uhadoop/apps/hadoop-2.7.6/etc/hadoop
[uhadoop@master hadoop]$ cat slaves
slave01
slave02

7.5 配置core-site.xml

[uhadoop@master hadoop]$ cat core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/uhadoop/datas/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

7.6 配置hdfs-site.xml

[uhadoop@master hadoop]$ cat hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/uhadoop/datas/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/uhadoop/datas/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.balance.bandwidthPerSec</name>
        <value>10485760</value>
    </property>
</configuration>

7.7 配置mapred-site.xml

[uhadoop@master hadoop]$ cat mapred-site.xml

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

7.8 配置yarn-env.sh

[uhadoop@hadoop01 hadoop]$ tail -n2 yarn-env.sh
export JAVA_HOME=/home/uhadoop/apps/jdk1.8.0_20

7.9 配置hadoop-env.sh

[uhadoop@hadoop01 hadoop]$ tail -n1 hadoop-env.sh
export JAVA_HOME=/home/uhadoop/apps/jdk1.8.0_20

7.10 配置yarn-site.xml

[uhadoop@master hadoop]$ cat yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

7.11 同步文件

[uhadoop@master apps]$ scp -r hadoop-2.7.6 slave01:/home/uhadoop/apps/
[uhadoop@master apps]$ scp -r hadoop-2.7.6 slave02:/home/uhadoop/apps/

7.12 格式化文件系统

[uhadoop@master ~]$ source .bash_profile
[uhadoop@master bin]$ pwd
/home/uhadoop/apps/hadoop-2.7.6/bin
[uhadoop@master bin]$ ./hdfs namenode -format
在这里插入图片描述

7.13 启动hadooop

[uhadoop@master sbin]$ pwd
/home/uhadoop/apps/hadoop-2.7.6/sbin
[uhadoop@master sbin]$ ./start-all.sh
在这里插入图片描述

7.14 查看进程

[uhadoop@master sbin]$ jps
4437 SecondaryNameNode
4249 NameNode
4588 ResourceManager
4845 Jps
[uhadoop@slave01 .ssh]$ jps
2465 DataNode
2710 Jps
2571 NodeManager
[uhadoop@slave02 ~]$ jps
2565 NodeManager
2694 Jps
2459 DataNode

7.15 登录管理界面

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

8.安装hive

8.1 解压hive安装包

[uhadoop@master soft]$ tar -zxvf apache-hive-2.3.5-bin.tar.gz -C …/apps/

8.2 设置环境变量

[uhadoop@master ~]$ tail -n2 .bash_profile

export HIVE_HOME=/home/uhadoop/apps/apache-hive-2.3.5-bin
export PATH=$HIVE_HOME/bin:$PATH

[uhadoop@master ~]$ source .bash_profile

8.3 创建目录

[uhadoop@master ~]$ cat 1.sh
mkdir -p /home/uhadoop/datas/hive/log
mkdir -p /home/uhadoop/datas/hive/execlog
mkdir -p /home/uhadoop/datas/hive/tmp
[uhadoop@master ~]$ sh 1.sh
[uhadoop@master ~]$ hdfs dfs -mkdir -p /user/hive/warehouse
[uhadoop@master ~]$ hdfs dfs -mkdir -p /user/hive/tmp

8.4 mysql安装

[root@slave01 ~]# yum install -y mysql mysql-server mysql-devel
[root@slave01 ~]# vi /etc/my.cnf
在这里插入图片描述
default-character-set=utf8
character_set_server = utf8
[client]
default-character-set=utf8

[root@slave01 ~]# /etc/init.d/mysqld start
[root@slave01 ~]# mysql_install_db

#创建hive数据库和连接用户
[root@slave01 ~]# mysqladmin -uroot password ‘mmds#123’
mysql> create database hive;
mysql> alter database hive character set latin1;
mysql> grant all on hive.* to hive@’%’ identified by ‘hive’;
mysql> flush privileges;

8.5 配置hive-env.sh

[uhadoop@master conf]$ cp hive-env.sh.template hive-env.sh
[uhadoop@master conf]$ vi hive-env.sh
[uhadoop@master conf]$ tail -n4 hive-env.sh
export JAVA_HOME=/home/uhadoop/apps/jdk1.8.0_20
export HADOOP_HOME=/home/uhadoop/apps/hadoop-2.7.6
export HIVE_HOME=/home/uhadoop/apps/apache-hive-2.3.5-bin
export HIVE_CONF_DIR=/home/uhadoop/apps/apache-hive-2.3.5-bin/conf

8.6 配置hive-site.xml

[uhadoop@master conf]$ cp hive-default.xml.template hive-site.xml
[uhadoop@master conf]$ vi hive-site.xml
[uhadoop@master conf]$ cat hive-site.xml

<configuration>
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.querylog.location</name>
        <value>/home/uhadoop/datas/hive/tmp/${user.name}</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://slave01:3306/hive?characterEncoding=UTF-8</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hive</value>
    </property>
</configuration>

8.7 修改hive-exec-log4j2.properties

[uhadoop@master conf]$ cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
[uhadoop@master conf]$ vi hive-exec-log4j2.properties
修改hive-log4j2.properties文件以下配置项
property.hive.log.dir = /home/uhadoop/datas/hive/log/${sys:user.name}

8.8 修改hive-log4j2.properties

[uhadoop@master conf]$ cp hive-log4j2.properties.template hive-log4j2.properties
[uhadoop@master conf]$ vi hive-log4j2.properties
修改hive-log4j2.properties文件以下配置项
property.hive.log.dir = /home/uhadoop/datas/hive/log/${sys:user.name}

8.9 配置core-site.xml

修改hadoop安装目录下/etc/hadoop/core-site.xml文件,给beeline登录用户开放权限
[uhadoop@master hadoop]$ vi core-site.xml
[uhadoop@master hadoop]$ pwd
/home/uhadoop/apps/hadoop-2.7.6/etc/hadoop

<property>
    <name>hadoop.proxyuser.uhadoop.groups</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.uhadoop.hosts</name>
    <value>*</value>
</property>

8.10 将mysql连接驱动放到hive的lib目录下

[uhadoop@master lib]$ rm -rf log4j-slf4j-impl-2.6.2.jar
删除hive安装目录下/lib/log4j-slf4j-impl-2.6.2.jar文件,否则会与hadoop安装目录下的log4j重复
[uhadoop@master mysql-connector-java-5.1.48]$ mv mysql-connector-java-5.1.48.jar /home/uhadoop/apps/apache-hive-2.3.5-bin/lib/

8.11 启动hive

#使用如下命令初始化,自动生成hive数据库元数据信息
[uhadoop@master bin]$ ./schematool -dbType mysql -initSchema
在这里插入图片描述
#本地连接hive
[uhadoop@master uhadoop]$ hive
在这里插入图片描述
#没有权限,需要配置权限
[uhadoop@master conf]$ hdfs dfs -chmod -R 777 /user/hive/tmp

#启动hiveserver2,用于beeline等客户端连接hive
[uhadoop@master bin]$ nohup hive --service hiveserver2 > /dev/null 2>&1 &

8.12 连接hive

#本地连接
[uhadoop@master uhadoop]$ hive
在这里插入图片描述
#beeline连接,在命令行输入命令
[uhadoop@master uhadoop]$ beeline
beeline> !connect jdbc:hive2://master:10000 uhadoop uhadoop

9.安装tez

9.1 解压tez安装包

[uhadoop@master soft]$ tar -zxvf apache-tez-0.9.0-bin.tar.gz -C …/apps/

#删除tez安装目录下/lib/slf4j-log4j12-1.7.10.jar文件,否则会与hadoop安装目录下的log4重复和删除tez安装目录下/lib/中以下两个文件
[uhadoop@master lib]$ pwd
/home/uhadoop/apps/apache-tez-0.9.0-bin/lib
[uhadoop@master lib]$ rm -rf slf4j-log4j12-1.7.10.jar
[uhadoop@master lib]$ rm -rf hadoop-mapreduce-client-common-2.7.0.jar
[uhadoop@master lib]$ rm -rf hadoop-mapreduce-client-core-2.7.0.jar

9.2 将hadoop安装目录下/share/hadoop/mapreduce/中以下两个文件,复制到tez安装目录下/lib/目录中

[uhadoop@master lib]$ cd /home/uhadoop/apps/hadoop-2.7.6/share/hadoop/mapreduce/
[uhadoop@master mapreduce]$ cp hadoop-mapreduce-client-common-2.7.6.jar /home/uhadoop/apps/apache-tez-0.9.0-bin/lib/
[uhadoop@master mapreduce]$ cp hadoop-mapreduce-client-core-2.7.6.jar /home/uhadoop/apps/apache-tez-0.9.0-bin/lib/

9.3 上传运行包

在tez 安装目录/share下有个tez.tar.gz压缩包,把它上传到hdfs上面
[uhadoop@master mapreduce]$ cd /home/uhadoop/apps/apache-tez-0.9.0-bin/share
[uhadoop@master share]$ hadoop fs -mkdir -p /user/tez
[uhadoop@master share]$ hadoop fs -put tez.tar.gz /user/tez

9.4 配置tez-site.xml

[uhadoop@master hadoop]$ cat tez-site.xml

<configuration>
    <property>
        <name>tez.lib.uris</name>
        <value>/user/tez/tez.tar.gz</value>
    </property>
</configuration>

9.5 修改mapred-site.xml

[uhadoop@master hadoop]$ cat mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn-tez</value>
    </property>
</configuration>

9.6 在hadoop-env.sh添加以下内容

[uhadoop@master hadoop]$ tail -n7 hadoop-env.sh

export TEZ_HOME=/home/uhadoop/apps/apache-tez-0.9.0-bin
for jar in `ls $TEZ_HOME | grep jar`; do
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar
done

9.7 设置引擎

#hive使用哪个引擎执行运算需要设置,如在hive客户端命令行设置
set hive.execution.engine=tez
set hive.execution.engine=mr

[uhadoop@master hadoop]$ hive
hive> set hive.execution.engine=tez;
hive> select count(*) from poke;
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老哥爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值