Hadoop学习:
1.完成hadoop的部署和安装
正常启动/关闭Hadoop集群,并完成基准测试
3.理解分布式文件系统的设计思想
4.熟练操作hadoop集群
创建用户:
root下:useradd 用户名
设置密码:passwd 用户名
1.区别:
完全分布式:节点超过1(虚拟机台数超过通常是3个以上)
hadoop除了运行hive,还有zookeeper(通常要求节点数为奇数),hbase,spark,kylin
伪分布式:用一个虚拟机,安装并启动hadoop,所有服务都在这一台虚拟机上
hive的情况伪分布式和完全分布式没什么区别
一定先启动hadoop再才能启动hive
—>start-all.sh【没有空格】
【jps:查看运行了哪些java的程序】
—>cd /opt/module/apache-hive-3.1.1-bin/
—>bin/hive
退出hive:quit;
退出hadoop:stop-all.sh
虚拟机的关闭(root 用户 poweroff)
--1.创建kaikeba库
create database if not exists kaikeba;
--2.使用kaikeba库
use kaikeba;
--3.创建user_info表 【查看表的结构:desc formatted table_name】
create table if not exists user_info (
user_id string,
user_name string,
sex string,
age int,
city string,
firstactivetime string,
level int,
extra1 string,
extra2 map<string,string>)
row format delimited fields terminated by '\t'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n'
stored as textfile;
加载数据源
load data inpath '/datas/user_info/user_info.txt' overwrite into table user_info; 【在hdfs上的数据源插到表中】
1.将软件包上传到node100(xftp)
创建连接:node100-hadoop,192.168.5.100,SFTP
将软件【apache,jdk,hadop】
拖拽到hadoop的家目录中【/home/hadoop】
一、切换到root用户
su - root
二、关闭selinux:vim /etc/selinux/config 【一种保护机制】
SELINUX=disabled
【更改完后切换为hadoop用户】
三、切换到hadoop用户,配置免密登陆。【那个用户需要免密码,就切换到那个用户下】
cd 进入hadoop用户的家目录
ssh-keygen -t rsa [输入完后连按4个回车]
ssh node100 [yes,输入hadoop用户的密码]
ssh-copy-id node100 [输入hadoop用户的密码]
验证:ssh node100 这样就不需要密码了
四、解压软件包到/opt/module
cd 【确保是在hadoop的家目录】
tar -zxvf ./jdk-8u181-linux-x64.tar.gz -C /opt/module/
tar -zxvf ./hadoop-2.7.3.tar.gz -C /opt/module/
tar -zxvf ./apache-hive-3.1.1-bin.tar.gz -C /opt/module/
进去看看 cd /opt/module/ --->ll
五、编辑环境变量:vim ~/.bash_profile 【在家目录下】
在文件末尾添加
JAVA_HOME=/opt/module/jdk1.8.0_181
HADOOP_HOME=/opt/module/hadoop-2.7.3
HIVE_HOME=/opt/module/apache-hive-3.1.1-bin
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
export JAVA_HOME
export HADOOP_HOME
export HIVE_HOME
export PATH
六、重新加载该文件,使环境变量生效
source ~/.bash_profile
验证:
java -version
hadoop version
七、修改hadoop的配置文件:
cd /opt/module/hadoop-2.7.3/etc/hadoop
1.vim ./hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_181【将之前的注释掉】
2.vim ./mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_181【有3个export】
3.vim ./yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_181【在if上面一行插入】
4.vim ./core-site.xml
【在倒数第一行和第二行中间插入 4和5 一样】 【<value>hdfs://node100:9000</value> 注意更换node100还是node101等】
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node100:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoopdata</value>
</property>
5.vim ./hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node100:50090</value>
</property>
6.cp ./mapred-site.xml.template ./mapred-site.xml
vim ./mapred-site.xml
<!-- 指定MR运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
7.vim ./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>node100</value>
</property>
<!-- 关闭虚拟内存检查 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
8.vim ./slaves
node100
九、格式化hadoop集群
在node100这台机器上执行:hdfs namenode -format 【只能格式化一次】
十、启动/关闭hadoop集群
在node100这台机器上执行:start-all.sh
jps:查看运行了哪些java的程序
在node100这台机器上执行:stop-all.sh
十一、验证集群 【在浏览器里输入,前提关闭防火墙在root用户下】
systemctl stop firewalld.service
systemctl disable firewalld.service
在浏览器【谷歌】中输入:【输入之前关闭防火墙】
切换到root用户
systemctl stop firewalld.service
systemctl disable firewalld.service
192.168.5.100:50070
192.168.5.100:8088
【看是否运行成功了和jps效果一样】
验证:在hadoop的家目录
十二、Hadoop的wordcount
1.vim word.txt
hello python
hello java
hello scala
hello world
welcome to beijing
2.wordcount测试
在hadoop集群上创建一个文件夹
hadoop fs -mkdir /test 【在HDFS上创建文件夹 -p是递归创建】
hadoop fs -put ./word.txt /test 【上传文件】
hadoop jar /opt/module/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/word.txt /output
hadoop fs -cat /output/part-r-00000 【查看命令】
十三、Hive的安装
hive --version
在hdfs上创建hive数据存放目录 【hadoop用户】
【就是这个集群上面专门开辟一个空间供hive存储数据】
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
在hive的软件目录下执行初始化命令
进入hive目录:cd /opt/module/apache-hive-3.1.1-bin/
bin/schematool -dbType derby -initSchema
初始化成功后就会在hive的安装目录下生成derby.log日志文件和metastore_db元数据库
退出 : quit;
注意:离开hadoop安全模式 hadoop dfsadmin -safemode leave