Hadoop学习笔记一:伪分布式搭建(Hadoop1.x)
本文记录学习过程,安装伪分布式的Hadoop,搭建过程可参照官方文档:https://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html
服务器准备
使用VM快照克隆功能,克隆出一台网络已设置、防火墙关闭、SELINUX关闭、网卡和MAC的映射取消的机器。
克隆出的机器主机名配置为node00,配置IP 192.168.197.30、并配置主机名IP的映射关系。
注:以上操作可参照【Linux学习笔记三:VM下配置模板机和克隆】https://www.jianshu.com/p/0310c24bda69
准备安装包:
jdk-7u67-linux-x64.rpm
hadoop-2.6.5.tar.gz
一、JDK安装
1.上传JDK的rpm安装包,执行
rpm -i jdk-7u67-linux-x64.rpm
2.配置环境变量
#查看java默认安装目录
whereis java
#拷贝jdk安装目录
cd /usr/java/jdk1.7.0_67/
pwd
#编辑profile文件
vi + /etc/profile
#追加
export JAVA_HOME=/usr/java/jdk1.7.0_67
PATH=$PATH:$JAVA_HOME/bin
#执行生效
. /etc/profile
#检查,出进程号说明配好
jps
二、免秘钥登录
#家目录
cd
#显示所有文件
ll -a
cd .ssh/
#生成id_dsa和id_dsa.pub
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#id_dsa.pub 内容追加到 authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#试一下是否免密登录了
ssh node00
#成功,退出
exit
没有成功,查看日志
cat /var/log/secure
提示:
Authentication refused: bad ownership or modes for directory /root /.ssh
解决方法:
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600
注意:谁做管理节点谁生成公钥文件(id_dsa.pub)用于分发给其他非管理节点,登录时比对。
三、安装Hadoop
1.解压
mkdir /opt/sxt
tar xf hadoop-2.6.5.tar.gz -C /opt/sxt/
2.修改环境变量(让所有目录下都可执行hadoop命令)
vi + /etc/profile
#修改环境变量
export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_HOME=/opt/sxt/hadoop-2.6.5
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
. /etc/profile
3.修改配置文件
(1)配置文件位置
cd ./etc/
返回 drwxr-xr-x 2 root root 4096 May 24 2017 hadoop
#注:hadoop集群启动时,只会读取hadoop目录
cd hadoop/
(2)二次配置JAVA_HOME
vi hadoop-env.sh
vi mapred-env.sh
vi yarn-env.sh
注:三个配置文件都修改,一劳永逸
export JAVA_HOME=/usr/java/jdk1.7.0_67
(3)配置NameNode主节点和副本数
vi core-site.xml
<configuration>
#配置主节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://node00:9000</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
#配置副本数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(4)配置DataNode从节点和SecondaryNameNode
#配置从节点
vi slaves
localhost 改为 node00
#配置 SecondaryNameNode
vi hdfs-site.xml
#<configuration>里追加
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node00:50090</value>
</property>
(5)修改默认文件存放路径
vi core-site.xml
#<configuration>里追加
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/pseudo</value>
</property>
4.格式化HDFS
格式化完成后NameNode数据信息就生成在 /var/sxt/hadoop/pseudo
hdfs namenode -format
#查看生成的fsimage信息
cd /var/sxt/hadoop/pseudo/dfs/name/current/
注意:只能格式化一次,再次启动集群不要执行
5.启动集群
启动集群后 DataNode和SecondaryNameNode数据信息才会产生
#启动集群
start-dfs.sh
#查看生成信息
cd /var/sxt/hadoop/pseudo/dfs/data/current/
cd /var/sxt/hadoop/pseudo/dfs/namesecondary/current/
启动时候,三个角色以不同进程启动,提示如下:
node00: starting namenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-namenode-node00.out
node00: starting datanode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-datanode-node00.out
Starting secondary namenodes [node00]
node00: starting secondarynamenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-node00.out
角色进程查看
jps
1508 SecondaryNameNode
1355 DataNode
1618 Jps
1277 NameNode
DataNode数据存放位置
cd /var/sxt/hadoop/pseudo/dfs/data/current/BP-1507450169-192.168.197.30-1574759146966/current/finalized
6.浏览器查看
ss -nal
浏览器访问 http://node00:50070 (window里hosts文件要映射到192.168.197.30)
7.上传文件
#命令查看
hdfs dfs
#创建目录
hdfs dfs -mkdir -p /user/root
#查看目录
hdfs dfs -ls /
#上传文件
cd ~/software/
ls -lh ./
hdfs dfs -put hadoop-2.6.5.tar.gz /user/root
此时可到浏览器 Browse the file system 去查看文件
文件被切割成两个块,第一个128M,第二个48M
图片.png
两个文件块位置
/var/sxt/hadoop/pseudo/dfs/data/current/BP-1507450169-192.168.197.30-1574759146966/current/finalized/subdir0/subdir0
8.日志查看和停止集群
日志查看
cd /opt/sxt/hadoop-2.6.5/logs
#out是临时文件 log是最终文件
-rw-r--r-- 1 root root 27445 Nov 26 17:36 hadoop-root-datanode-node00.log
-rw-r--r-- 1 root root 715 Nov 26 17:13 hadoop-root-datanode-node00.out
-rw-r--r-- 1 root root 29081 Nov 26 17:41 hadoop-root-namenode-node00.log
-rw-r--r-- 1 root root 4908 Nov 26 17:27 hadoop-root-namenode-node00.out
-rw-r--r-- 1 root root 19750 Nov 26 17:13 hadoop-root-secondarynamenode-node00.log
-rw-r--r-- 1 root root 715 Nov 26 17:13 hadoop-root-secondarynamenode-node00.out
-rw-r--r-- 1 root root 0 Nov 26 17:13 SecurityAuth-root.audit
#查看日志
tail -100 hadoop-root-datanode-node00.log
停止集群
stop-dfs.sh