1.hadoop目录结构
2.Hadoop安装准备工作:
(1)安装好linux操作系统
(2)关闭防火墙
(3)在linux上安装JDK
3.安装Hadoop
(1)将Hadoop安装包拷贝到/opt/software文件目录下
(2)将Hadoop安装包解压到/opt/module文件目录下
命令为:
tar -zxvf hadoop-2.8.4.tar.gz -C /opt/module //将hadoop-2.8.4.tar.gz解压到/opt/module目录下
(3)配置环境变量
a.修改环境变量配置文件
修改命令:
vi ~/.bash_profile //修改环境变量的文件
添加的内容为:
HADOOP_HOME=/opt/module/hadoop-2.8.4
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
b.使环境变量生效
输入命令:
source ~/.bash_profile
c.验证是否配置成功
输入命令:
start // 按两下tab键,会出现提示,则证明配置成功
4.Hadoop安装---本地安装(没有HDFS和Yarn,只能够测试MR程序是否成功)
a.进入hadoop-2.8.4/etc/hadoop文件夹
输入命令:
cd /opt/module/hadoop-2.8.4/etc/hadoop //进入hadoop-2.8.4/etc/hadoop文件夹
b.修改配置文件hadoop-env.sh:
输入命令:
vi hadoop-env.sh //修改hadoop-env.sh文件
修改内容为:
export JAVA_HOME=/opt/module/jdk1.8.0_144 //修改JAVAHOME地址,改为自己建的jdk地址,应该在25行
c.验证(运行一个MR程序)
(1)在/root/temp目录下创建一个a.txt文件
(2)修改a.txt文件
touch a.txt //新建a.txt文件
vi a.txt //修改a.txt
i am a tiger you are also a tiger //添加内容
(3)进入/opt/module/hadoop-2.8.4/share/hadoop/mapreduce文件夹下
(4)运行wordcount程序 hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount ~/temp/a.txt ~/temp/output/wc0717
cd /opt/module/hadoop-2.8.4/share/hadoop/mapreduce //进入文件夹
//hadoop jar 程序包 函数名 输入文件地址(这里是本地linux路径,因为本地模式没有hdfs) 输出文件地址
hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount ~/temp/a.txt ~/temp/output/wc0717 //执行MR程序
运行成功后,会在/root/temp/output/文件夹下,生产wc0717文件下,此文件夹下有两个文件part-r-000000和_SUCCESS
5.Hadoop安装---伪分布式安装(安装完伪分布式后,本地模式就不起作用)
(1)特点:在一台机器上模拟一个分布式环境具备的Hadoop的所有功能
HDFS:NameNode+DataNode+SecondarynameNode
Yarn:ResourceManager+NodeManager
(2)修改配置文件
step1:修改hadoop-env.sh文件(如本地模式)
命令:
vi /opt/module/hadoop-2.8.4/etc/hadoop/hadoop-env.sh
修改内容为:
export JAVA_HOME=/opt/module/jdk1.8.0_144
step2: 修改hdfs-site.xml 文件
cd /opt/module/hadoop-2.8.4/etc/hadoop //进入etc/hadoop目录
vi hdfs-site.xml // 修改hdfs-site.xml文件
添加内容为:
dfs.replication
1
step3:修改core-site.xml
vi core-site.xml
修改内容为:
fs.defaultFS
hdfs://hadoop:9000
hadoop.tmp.dir
/opt/module/hadoop-2.8.4/data/tmp
step4:修改mapred-site.xml(默认是没有的,需要从mapred-site.xml.template复制转化而来)
命令:
cp mapred-site.xml.template mapred-site.xml //从mapred-site.xml.template转化
vi mapred-site.xml //修改mapred-site.xml 文件
修改内容为:
mapreduce.framework.name
yarn
step5: 修改yarn-site.xml
命令:
vi yarn-site.xml
修改内容为:
yarn.resourcemanager.hostname
hadoop
yarn.nodemanager.aux-services
mapreduce_shuffle
step6:通过HDFS namenode格式化
输入命令:
cd /opt/module/hadoop-2.8.4/tmp //这里是step3配置的HDFS数据库和元数据存储目录
hdfs namenode -format //格式化
验证是否成功,成功后回显示:
Storage: Storage directory /opt/module/hadoop-2.8.4/tmp/dfs/name has been successfully formatted
注意
重复格式化,hadoop.tmp.dir 先停止集群,然后在删除tmp文件夹,再重新新建tmp文件夹,重新格式化,然后再启动集群
step7: 启动
命令:
start-all.sh //启动
共需要输入4次linux登录密码
启动成功验证:
jps
web验证:
http://192.168.127.121:8088 yarn
http://192.168.127.121:50070 HDFS
6.免密码登录的原理和配置
ssh不对称加密算法(加密和解密是两个文件)
(1)原理
- 公钥--锁:给出去,给其他机器
-
私钥--钥匙:自己留着,解密
(2)配置免密码登录
输入命令:
ssh-keygen -t rsa //然后三次回车
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata121 //自己也要拷贝给自己,中途输入linux登录密码
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata122
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata123
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata124
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata125
所有机器需要拷贝过去
(3)验证:
ssh bigdata122 //会显示登录上bigdata122
7.Hadoop安装-全分布安装
(1)规划:
192.168.127.121 bigdata121 主节点
192.168.127.122 bigdata122 从节点
192.168.127.123 bigdata123 从节点
(2)准备工作:
step1:安装jdk,关闭防火墙,设置ssh免密码登录,在etc/hosts添加主机名
step2:时间同步,
a.如果能上网,使用网络时间
b.不能上网,date -s 2019-07-17(同时操作多台机器)或者npt,用机器里面指定一个服务器,作为时钟服务器
step3:修改配置文件
- 修改hadoop-env.sh
命令:
vi hadoop-env.sh //修改hadoop-env.sh文件
修改内容为:
export JAVA_HOME=/opt/module/jdk1.8.0_144 //修改JAVAHOME地址,改为自己建的jdk地址,应该在25行
- 修改hdfs-site.xml
命令:
cd /opt/module/hadoop-2.8.4/etc/hadoop //进入etc/hadoop目录
vi hdfs-site.xml // 修改hdfs-site.xml文件
修改内容为:
dfs.replication
2
dfs.namenode.secondary.http-address
hadoop2:50090
- 修改core-site.xml
命令:
vi core-site.xml
修改内容为:
fs.defaultFS
hdfs://hadoop:9000
hadoop.tmp.dir
/opt/module/hadoop-2.8.4/data/tmp
- 修改mapred-site.xml(默认是没有的,需要从mapred-site.xml.template复制转化而来)
命令:
cp mapred-site.xml.template mapred-site.xml //从mapred-site.xml.template转化
vi mapred-site.xml //修改mapred-site.xml 文件
修改内容为:
mapreduce.framework.name
yarn
- 修改yarn-site.xml
命令:
vi yarn-site.xml
修改内容为:
yarn.resourcemanager.hostname
hadoop
yarn.nodemanager.aux-services
mapreduce_shuffle
- 修改slaves
命令:
vi slaves
修改内容为:
hadoop2 //bigdata122作为从节点
hadoop3 //bigdata123作为从节点
- 通过HDFS namenode格式化
命令:
cd /opt/module/hadoop-2.8.4/tmp //这里是step3配置的HDFS数据库和元数据存储目录
hdfs namenode -format //格式化
验证是否成功,成功后回显示:
Storage: Storage directory /opt/module/hadoop-2.8.4/tmp/dfs/name has been successfully formatted
注意
重复格式化,hadoop.tmp.dir 先停止集群,然后在删除tmp文件夹,再重新新建tmp文件夹,重新格式化,然后再启动集群
- 通过scp拷贝,将bigdata121配置好的hadoop发送到另外两太机器上:
命令:
scp -r /opt/moudle/hadoop-2.8.4/ root@bigdata122:/opt/moudle/ //拷贝到bigdata122
scp -r /opt/moudle/hadoop-2.8.4/ root@bigdata123:/opt/moudle/ //拷贝到bigdata122
- 启动Hadoop集群
输入命令
start-all.sh //在bigdata121中启动,因为此机器是主节点
验证是否启动:
bigdata121
bigdata122
bigdata123
与规划的相同,故Hadoop全分布安装成功