分布式系统HDFS

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值