1. 完全分布式搭建
1. hadoop102[namenode,datanode],
hadoop103[datanode]
hadoop104[secondarynamenode,datanode]
2. 缺少104,配置104
2. 选择完全克隆103
3. 机器的名称 hadoop104
4. 配置机器的IP 192.168.131.104
修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33
5. 重启⽹络服务 systemctl restart network
6. 重新连接ip为192.168.131.104的服务器
7. 查看是否更改成功 ip addr
8. 更改机器名称 hostnamectl set-hostname hadoop104
9. 查看是否更改成功 hostname
10. 重启 reboot 后重新连接104
11. 配置xshell 访问hadoop104
12.vim /etc/hosts 文件 在最后加入192.168.131.104 hadoop104
6. 安装包上传到hadoop102的/opt/software后解压到/opt/install tar -zxvf hadoop-2.6.0.tar.gz -C /opt/install
7. 创建软链接 ln -s hadoop-2.6.0/ hadoop
8. 在hadoop102上修改/opt/install/hadoop/etc/hadoop/core-site.xml
<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/install/hadoop/data/tmp</value>
</property>
9.在hadoop102上修改hdfs-site.xml 加入如下内容在
<!--设置数据块 Block 的副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置SecondaryNamenode主机和端口号-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
10. 修改hadoop-env.sh:注释第25⾏
添加export JAVA_HOME=/opt/install/jdk
11. 修改hadoop102的/opt/install/hadoop/etc/hadoop/slaves⽂ 件,重写以下内容
hadoop102
hadoop103
hadoop104
12. 复制102的安装包到103和104上,然后分别在每台机器上创建 软链接hadoop
scp -r hadoop-2.6.0 hadoop103:/opt/install
scp -r hadoop-2.6.0 hadoop104:/opt/install
13. 修改hadoop102上的/etc/profile⽂件,在最后添加以下两⾏
export HADOOP_HOME=/opt/install/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
14. 复制hadoop102上的/etc/profile⽂件到hadoop103-104上,并 在hadoop102-104上使⽂件⽣效 scp /etc/profile root@hadoop103:/etc/
scp /etc/profile root@hadoop104:/etc/
source /etc/profile
15. 在hadoop102上格式化:hdfs namenode -format
16. 在hadoop102上启动集群:start-dfs.sh
17. 分别在hadoop102-104上通过jps查看服务启动情况
18. 在浏览器中查看:http://hadoop102:50070
19. 停⽌集群:stop-dfs.sh
20. 通过jps查看服务停⽌情况
21. 停机做快照
2. 问题
1. 格式化有问题datanode只有⼀个的,把三个主机的这三都删了, 再重新格式化 /usr/local/src/hadoop/tmp
/opt/install/hadoop-2.6.0/data
/opt/install/hadoop-2.6.0/logs
3. 使⽤HDFS shell处理移动通讯数据
1. 查看hdfs命令列表: hdfs 回车
2. 查看hdfs的⽂件操作命令列表 hdfs dfs 回车
3. 创建⽬录 hdfs dfs -mkdir -p /hdfs/shell
4. 查看⽬录 hdfs dfs -ls /hdfs/shell
5. 上传⽂件 hdfs dfs -put ./a.txt /hdfs/shell
6. 查看⽂件 hdfs dfs -cat /hdfs/shell/a.txt
7. 下载⽂件 hdfs dfs -get /hdfs/shell/a.txt ./d101
8. 查看指定⽂件或⽬录⼤⼩ hdfs dfs -du /hdfs/shell/a.txt
9. 删除指定⽂件 hdfs dfs -rm /hdfs/shell/a.txt
10. 删除指定⽬录 hdfs dfs -rm -r /hdfs
4. 通过java客户端操作hdfs
1. 创建任意⽬录 : 如 D:\myhadoop\bin 中放⼊winutils.exe
2. 配置环境变量
HADOOP_HOME:D:\myhadoop
PATH中添加 %HADOOP_HOME%\bin
3. 把hadoop.dll⽂件复制到c:\windows\system32中
4. 启动idea 搭建maven项⽬
5. 添加pom.xml内容
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
6. 在src/main/resource下创建log4j.properties⽂件,添加如下内容
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n