一、配置环境前准备
1、更改主机名
vi /etc/hostname
#将文件中内容删除,添加上本机主机名
如果编辑 文件时出现一下错误:
执行命令 ls -a /路径
查询出隐藏文件找到与当前文件名一致的隐藏文件,将该隐藏文件删除,再次执行编辑命令即可
2、域名映射
#各个节点修改 hosts 文件,在文件末尾添加 本机ip 主机名
[root@localhost ~]# vi /etc/hosts
192.168.17.128 master
192.168.17.129 slave1
192.168.17.130 slave2
(用的全部是局域ip 而kafkaip监听是用的直连ip)
3、关闭防火墙和安全策略
#关闭防火墙并设置开机不启动
systemctl disable firewalld --now
#关闭防火墙
systemctl stop firewalld
#修改文件 /etc/selinux/config,将文件中 SELINUX 的值修改为 disabled,关闭安全策略
vi /etc/selinux/config
4、重启
#安全策略及修改文件方式修改主机名需重启后生效
reboot
5、配置各节点互信
#生成秘钥
ssh-keygen
箭头标注的地方直接回车即可
#秘钥生成后,将秘钥分发给各个节点
ssh-copy-id -i /root/.ssh/id_rsa.pub master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
#秘钥分发完成后测试是否可以免密登录
ssh master #登录到 master 节点
exit #退出登录
分发秘钥时截图(password 输入秘钥发往的节点主机密码):
6、时间同步(在无外网的情况下做时间同步)
#选择一台节点为 ntp服务器节点,修改配置文件
vi /etc/ntp.conf
#将配置文件中 server开头的都给注释掉,写入以下内容
server 127.127.1.0
fudge 127.127.1.0 startum 10
#然后启动 ntpd 服务
systemctl start ntpd
#将 ntpd 服务设置为开机自启
systemctl enable ntpd
#将本机作为 ntp 服务器 局域网内其他机器为客户机 来同步本机的时间
#其他机器不需要修改配置文件 只需要执行命令
ntpdate 服务器ip或 主机名(更改过域名解析的话)
#为防止系统重启后时间还原,使用命令将系统时间同步到硬件
hwclock -w
#各节点执行命令查看时间是否一致
date
#### 二、安装JDK
```shell
#解压 JDK 安装包
tar -zxvf /software/jdk-8u141-linux-x64.tar.gz -C /usr/local/src/
#更改环境变量,在末尾添加一下内容
vi /etc/profile
#Java Env
JAVA_HOME=/usr/local/src/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
#生效环境变量
source /etc/profile
#执行 java 和 javac 命令 查看是否安装成功
#安装完成后将安装目录及环境变量文件发送到其它节点
scp -r /usr/local/src/jdk1.8.0_141 root@slave1:/usr/local/src/
scp -r /usr/local/src/jdk1.8.0_141 root@slave2:/usr/local/src/
scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc
#在其它节点执行生效环境变量命令
#### Hadoop完全分布式
##### 1、解压安装包
```shell
tar -zxvf hadoop-2.10.1.tar.gz -C /usr/local/src/
tar 解压命令
-zxvf 可选参数
hadoop-2.10.1.tar.gz 文件位置,在这条命令中指的是当前文件夹下的hadoop-2.10.1.tar.gz压缩文件,这里可以替换成自己文件的绝对目录,如: /dev/eve/hadoop-2.10.1.tar.gz 这里也可以用相对目录(当前文件夹下开始算),例如:./../china/dev/eve/hadoop-2.10.1.tar.gz 但是要注意,绝对目录,绝对路径写的的命令,不管在哪个文件夹下运行这个命令,系统都可以找到相对应文件位置,然后执行。而相对目录则需从当前所在文件夹下开始写,例如./或者../,因此在不同文件夹下运行的带有相对目录的命令,每次输入的相对文件的位置可能都不一样,例如
2、修改hadoop-env.sh (在hadoop解压完之后的./etc/hadoop/ 这个文件下)
#修改export JAVA_HOME 的值为JDK安装路径(hadoop-env.sh在cd /usr/local/src/hadoop-.../etc)
vi hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_141
3、修改core-site.xml
<!-- 用于设置namenode并且作为Java程序的访问入口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 存储NameNode持久化的数据, DataNode块数据 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop-2.10.1/data</value>
</property>
4、修改hdfs-site.xml
<!-- 指定namenode节点对外服务的http地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 指定secondarynamenode节点对外服务的http地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50070</value>
</property>
5、修改yarn-site.xml
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 配置resourcemanager所在节点 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
6、修改mapred-site.xml
#先执行命令 mv mapred-site.xml.template mapred-site.xml
<!-- yarn 与 MapReduce相关 -->
<property>x
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
7、修改slaves
master
slave1
slave2
8、将Hadoop安装 目录发送到各个节点
scp -r /usr/local/src/hadoop-2.10.1 root@slave1:/usr/local/src/
scp -r /usr/local/src/hadoop-2.10.1 root@slave2:/usr/local/src/
9、初始化namenode
#在hadoop bin目录下执行,该命令不要重复执行,多次执行会造成集群id不一致,
cd /bin
./hdfs namenode -format
10、启动 hdfs 和 yarn
#在hadoop sbin 目录下执行
#启动 hdfs
./start-dfs.sh
#启动 yarn
./start-yarn.sh
#全启
./start-all.sh
11、查看集群
12、常见错误
- ssh互信未配置
-
多次执行 hdfs namenode -format 命令
-
hadoop-env.sh 配置文件内JAVA_HOME 使用的是默认的jdk环境
安装Hive
1、解压安装包
tar -zxvf /software/apache-hive-2.3.9-bin.tar.gz -C /usr/local/src/
2、配置并生效环境变量
#vi /etc/profile
#Hive Env
HIVE_HOME=/usr/local/src/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin
#生效环境变量
source /etc/profile
3、修改hive-env.sh
#重命名文件 hive-env.sh.template 为 hive-env.sh (在hive的conf里面.)
mv hive-env.sh.template hive-env.sh
#修改hive-env.sh
export HADOOP_HOME=/usr/local/src/hadoop-2.10.1
export JAVA_HOME=/usr/local/src/jdk1.8.0_141
export HIVE_CONF_DIR=/usr/local/src/apache-hive-2.3.9-bin/conf
4、创建配置文件 hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?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>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>149858</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive/warehouse</value> (给hdfs存储文件)
</property>
</configuration>
5、将mysql的驱动放入hive lib目录
6、初始化元数据库
schematool --dbType mysql -initSchema
7、验证
#进入 hive-cli 执行SOL,不报错的话安装完成
show databases;
标签:src,hadoop,Hive,hive,etc,usr,local,搭建
From: https://www.cnblogs.com/catch-autumn/p/16824597.html