hadoop、hive、spark等详细安装环境、系统安装及运行
一、Hadoop安装环境准备
1. 克隆虚拟机
克隆完成以后,使用root账户登录。
2. 修改克隆虚拟机的静态IP
使用vim /etc/udev/rules.d/70-persistent-net.rules指令,删除原先的eth0所在的行。复制eth1的ATTR{address}信息,修改eth1为eth0。
使用vim /etc/sysconfig/network-scripts/ifcfg-eth0指令,修改HWADDR的值为上边复制的信息,然后修改相应的IP地址。
3. 修改主机名
vim /etc/sysconfig/network,修改相应的主机名称。(我的都是HOSTNAME=node-n)。
注意:真正修改主机名称是在 /etc/sysconfig/network这个文件中。修改/etc/hosts中的内容,只是为了域名映射,并不是修改主机名称。
后续可以执行reboot;也可以执行重启网络的指令(service network restart)。
4. 关闭防火墙(略)
5. 配置ssh
(1)免密登录原理,如图2-40所示
(2)生成公钥和私钥:
ssh-****** -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id node-2
ssh-copy-id node-3
ssh-copy-id node-4
注意:
还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
6. 配置node1用户具有root权限
vim /etc/sudoers
可以修改某些用户拥有root权限。
7.在/opt目录下创建文件夹
使用 sudo chown node1:node1 module/ software/ 可以同时修改module/ software/这两个文件的所有者及其所有者的组
8、卸载现有JDK
(1)查询是否安装Java软件:
rpm -qa | grep java
(2)如果安装的版本低于1.7,卸载该JDK:
sudo rpm -e 软件包
(3)查看JDK安装路径:
which java
(4)如果没有JDK安装包,下载一个
执行 tar -zxvf 安装包路径 -C 想要存放解压文件的路径
(5)打开/etc/profile文件
sudo vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(6)保存后退出
(7)让修改后的文件生效
source /etc/profile
9、将Hadoop添加到环境变量
(1)获取Hadoop安装路径
pwd
/opt/module/hadoop-2.7.2
(2)打开/etc/profile文件
sudo vi /etc/profile
在profile文件末尾添加JDK路径:(shitf+g)
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(3)保存后退出
(4)让修改后的文件生效
source /etc/profile
下面的安装都是伪分布式的安装步骤:
hadoop集群的规划
|
node-1 |
node-2 |
node-3 |
node-4 |
HDFS
|
NameNode DataNode |
DataNode |
DataNode |
DataNode |
YARN |
NodeManager |
SecondaryNameNode NodeManager |
ResourceManager NodeManager |
NodeManager |
按照官网的伪分布式配置步骤:
1、配置HDFS
(1)配置HDFS集群
(a)配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
echo $JAVA_HOME
/root/apps/jdk1.8.0_11
修改JAVA_HOME 路径:
export JAVA_HOME=/root/apps/jdk1.8.0_11
(b)etc/hadoop/core-site.xml:
<configuration>
<!-- 指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-1:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/server/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
(c)etc/hadoop/hdfs-site.xml
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node-2:50090</value>
</property>
</configuration>
(2)启动HDFS集群
(a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
bin/hdfs namenode -format
(b)启动NameNode
sbin/hadoop-daemon.sh start namenode
(c)启动DataNode
sbin/hadoop-daemon.sh start datanode
(3)查看HDFS集群
(a)查看是否启动成功
jps
13586 NameNode
13668 DataNode
13786 Jps
注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
(b)web端查看HDFS文件系统
http://node-1:50070/dfshealth.html#tab-overview
注意:如果不能查看,看如下帖子处理
http://www.cnblogs.com/zlslch/p/6604189.html
(c)查看产生的Log日志
说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
当前目录:/opt/module/hadoop-2.7.2/logs
ls
hadoop-atguigu-datanode-hadoop.atguigu.com.log
hadoop-atguigu-datanode-hadoop.atguigu.com.out
hadoop-atguigu-namenode-hadoop.atguigu.com.log
hadoop-atguigu-namenode-hadoop.atguigu.com.out
SecurityAuth-root.audit
cat hadoop-atguigu-datanode-hadoop101.log
(d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
cd data/tmp/dfs/name/current/
cat VERSION
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
cd data/tmp/dfs/data/current/
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
2、配置YARN
(1)配置YARN集群
(a)配置yarn-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/root/apps/jdk1.8.0_11
(b)配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-3</value>
</property>
(c)配置:mapred-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/root/apps/jdk1.8.0_11
(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定MR运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(2)启动YARN集群
(a)启动前必须保证NameNode和DataNode已经启动
(b)启动ResourceManager
sbin/yarn-daemon.sh start resourcemanager
(c)启动NodeManager
sbin/yarn-daemon.sh start nodemanager
(3)YARN集群操作
(a)YARN的浏览器页面查看,如图2-35所示
3、配置历史服务器
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
(1)配置mapred-site.xml
vi mapred-site.xml
在该文件里面增加如下配置。
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
</property>
(2) 启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
(3)查看历史服务器是否启动
jps
(4)查看JobHistory
http://node-1:19888/jobhistory
4、配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
(1)配置yarn-site.xml
vi yarn-site.xml
<!-- 日志聚集功能使能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
(2)关闭NodeManager 、ResourceManager和HistoryManager
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
sbin/mr-jobhistory-daemon.sh stop historyserver
(3)启动NodeManager 、ResourceManager和HistoryManager
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
5、集群启动
(1) 配置slaves
/opt/module/hadoop-2.7.2/etc/hadoop/slaves
vi slaves
在该文件中增加如下内容:
node-1
node-2
node-3
node-4
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
(2)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
bin/hdfs namenode -format
(3)启动HDFS
sbin/start-dfs.sh
(4)启动YARN
sbin/start-yarn.sh
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
(5)Web端查看SecondaryNameNode
(a)浏览器中输入:http://node-2:50090/status.html
二、hive安装
1.Hive安装及配置
(1)把hive压缩包上传到linux的相应目录下
(2)解压hive压缩包到相应目录下面
(3)修改hive压缩包的名称为hive
mv apache-hive-1.2.2-bin/ hive
(4)修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh
mv hive-env.sh.template hive-env.sh
(5)配置hive-env.sh文件
(a)配置HADOOP_HOME路径
export HADOOP_HOME=/export/server/hadoop-2.7.2
(b)配置HIVE_CONF_DIR路径
export HIVE_CONF_DIR=/export/server/hive/conf
2.Hadoop集群配置
(1)必须启动hdfs和yarn
sbin/start-dfs.sh
sbin/start-yarn.sh
(2)在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
3.Hive基本操作
(1)启动hive
bin/hive
(2)查看数据库
hive> show databases;
(3)打开默认数据库
hive> use default;
(4)显示default数据库中的表
hive> show tables;
(5)创建一张表
hive> create table student(id int, name string);
(6)显示数据库中有几张表
hive> show tables;
(7)查看表的结构
hive> desc student;
(8)向表中插入数据
hive> insert into student values(1000,"ss");
(9)查询表中数据
hive> select * from student;
(10)退出hive
hive> quit;
未完待续。