一:hadoop的搭建:
- 输入vim /etc/sudoers在第100行之后加入hadoop的信息:
2.修改ens33的ip,配置静态ip,修改映射:
Nmcli查看一下:
3.使用 vim /etc/hostname配置主机名:
4.使用vim /etc/hosts,用来建立三个用户的映射,保存退出:
5.使用xshell连接一下:
6.修改一下防火墙的配置:
创建目录:
查看防火墙状态:
7.在目录/opt/modules内上传jdk,并且sudo vim /etc/profile更改JAVA_HOME的路径:
解压到指定目录:
8. 使用source /etc/profile使配置的环境变量生效,使用java -version查看jdk的版本:
使用vim /etc/profile:
9. 克隆虚拟机ddm1并且连接:
克隆:
连接:
Ddm2:
Ddm3:
10.进行免密登录配置,实现ddm1,ddm2,ddm3之间的免密登录:
查看是否可以进行免密连接:
Ddm2,ddm3上同理:
Ddm3:
免密登录成功运行
11.上传hadoop并且解压到/opt/modules,然后在进行/etc/profile的配置:
11.将hadoop-env.sh mapred-env.sh yarn-env.sh 加入JAVA_HOME变量,并且对hadoop的文件进行修改
$sudo vim slaves:
12:将ddm1上的hadoop文件夹拷贝到另外ddm2、ddm3上,进行一些目录的复制。
13:进行格式化并且启动集群,查看每一个主机的进程,当节点ddm1为5,ddm2,ddm3为3时为成功:
查看进程数:
进程数正确!
14:
访问https:ddm1:8088
目前处于不健康的状态:
修改各节点(ddm1,ddm2,ddm3)配置目录下的yarn-site.xml文件:
重新启动节点,并且查看:
到此,hadoop架构完成。
(2)数据平台计算:能用平台编写 MapReduce 程序,并分析该程序的数据处理、Map 阶段、Reduce 阶段、迭代处理、结果输出阶段;
1.首先:启动集群:
- Map阶段:
- reduce阶段:
4.迭代处理:
修改配置文件并且生效:
编译打包WordCount程序
上传到hadoop集群:
使用JAVA进行编译:
5.结果查看:
(3)配置 Zookeeper 集群:安装、配置 Zookeeper 集群,在 ZooKeeper 中创建一个名为“学号”的普通节点,并将节点内容设置为"考生姓名",最后并查看验证;
1.上传解压并且配置生效zookeeper:
2.复制到其它节点:
创建目录并且配置zoo.cfg:
- zookeeper在各个节点下的配置:
创建Myid:
查看myid内容:
查看节点数目是否正确:
在 ZooKeeper 中创建一个名为“学号”的普通节点,并将节点内容设置为"考生姓名",最后并查看验证;
数据库配置:安装、配置 HBase 数据库,模拟一个业务场景,根据业务场景添加数据源,并进行数据库的增、删、改、查的操作:
- Hbase数据库的安装和配置:
上传:
解压:
配置文件:
查看要修改的文件在哪个目录:
修改文件:
把habse目录发送过去:
这个时候在启动集群就发现启动成功:
出现以上错误并且集群启动不正常:
我们把将 hbase-env.sh 的 PermSize 和 MaxPermSize 的限制注释掉。
Ddm2上面;
再次启动集群,错误消失:
启动并且查看进程:
启动成功,集群数目正确!
可是此时无法访问网页:http://ddm1:60010
因为hbase-site.xml里面的文件的端口号是60010:
修改文件core-site.xml里面的端口号:
把它修改为60010:
成功在网页上面打开:
- 创建表:
1学生表并添加数据到表中【增】
查看
删除ROW为s004的全部数据【删+查】
修改ROW为s001的年龄,由200到20
.上传HIVE包到/opt/software目录并解压
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/modules/
2.修改路径
mv /opt/modules/apache-hive-1.2.1-bin/ /opt/modules/hive
3.将Hbase目录SCP到其它节点dn1,dn2
sudo scp -r /opt/modules/hbase-1.1.5/ ddm2:/opt/modules/
sudo scp -r /opt/modules/hbase-1.1.5/ ddm3:/opt/modules/
4.将hIVE下的bin目录加入到/etc/profile中
Sudo vim /etc/profile
export HIVE_HOME=/opt/modules/hive/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HIVE_HOME/bin
5.查看hive -version
用sudo rz命令上传架包:
6.配置HIVE
cd /opt/modules/hive/conf/
cp hive-default.xml.template hive-site.xml
<!-- 插入一下代码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://ddm1:3306/ddm?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>mysql
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 到此结束代码 -->
这里是把之前的内容都删除然后添加的:
注意要加<configuration>
现在在查看一下版本:
Hive成功了!
等会创建表试试看
7.故障解晰
1)如果出现提示权限不够,用sudo chown -R hadoop:hadoop /opt/modules
2)如果HIVE在启动时报Establishing SSL connection without server's identity verification is not 等信息,只需要将配置文件里
<value>jdbc:mysql://NN1:3306/mysql?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</value>
HIVE创建内部数据表命令
create table t_order(
id int,produce_id string,number int,amount double)
row format delimited
fields terminated by ','
;
HIVE创建外部数据表命令
create external table t_order(
id int,produce_id string,number int,amount double)
row format delimited
fields terminated by ','
location '/user/t2'
;
内部表和外部表的区别:
内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
内部表/user/hive/warehouse
外部表/AAAA/DATA
create table t(
id int,produce_id string,number int,amount double)
row format delimited
fields terminated by ','
;
hive连接成功通过以下几个表来存储信息
可以通过DBS 、TBLS、COLUMNS_V2、SDS这几张表来查看元数据信息
DBS 存放的数据库的元数据信息
TBLS存放的tables表信息
COLUMNS表存放的是列字段信息3
SDS表存放的HDFS里的位置信息