大数据入门第二天
基本操作(shell 命令)
1.查看当前hdfs下的目录
hdfs dfs -ls /
2.在hdfs中创建多层目录
hdfs dfs -mkdir -p /user/root
3.上传文件
hdfs dfs -put ./当前文件路径 /hdfs的文件路径
hdfs dfs -copyFromLocal ./当前文件路径(相对路径) /hdfs的文件路径
如:
hdfs dfs -copyFromLocal ./1.txt /text
上传当前目录下的1.txt文件到hdfs中的text文件中
4.下载文件
hdfs dfs -copyToLocal /hdfs的文件路径 ./当前文件路径 (相对路径)
如:
hdfs dfs -copyToLocal /text/1.txt ./2.txt
下载hdfs中的text目录下的1.txt 到当前目录中并且改名为2.txt
5.上传指定块大小的文件
for i in `seq 100000`;do echo "hello yrq $i" >> text.txt;done
hdfs dfs -D dfs.block=1048576 -put text.txt
6.更改文件权限
hdfs dfs -chmod 777 /text/1.txt
完全分布式的搭建
1.规划(总共三个结点)
Daniel 部署NameNode
node01 部署DataNode SecondaryNode
node02 部署DataNode
然后别的服务器的Hadoop部署就略过了(关于jdk的安装部署)
https://blog.youkuaiyun.com/qq_41910103/article/details/91048131
可以看这一篇博主写的文章
i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.
intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D系列
以及centrino P-M,core duo 等.
X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等采用X86架构的64位cpu.
博主之前装的linux是32位的
2.ssh免密钥登陆以及问题解决
解决不同服务器之间ssh通信的问题
ssh: Could not resolve hostname node01: Temporary failure in name resolution
lost connection
vi /etc/hosts
注意配置
source /etc/hosts
然后就成功了
127.0.0.1 localhost
192.168.16.129 Daniel
192.168.16.130 node01
192.168.16.131 node02
1.通过ssh协议把主服务器Daniel中的公钥Daniel.pub传给其他服务器node01
scp id_dsa.pub node01:`pwd`/Daniel.pub
2.把公钥复制到node01的.ssh目录下的 authorized_keys
cat Daniel.pub >> authorized_keys
3.免密登陆
ssh node01
同理其他节点也是这样node02
3.Hadoop环境部署
cd $HADOOP_HOME
直接去到了环境变量所属的目录下面
更改路径
vi core-site.xml
放在/var/hadoop_yrq/full的目录下
vi hdfs-site.xml
把value的值改成2(两个副本)
然后Secomdary设置为node01:50090
vi slaves
配置DataNode的
把服务器Daniel中的Hadoop文件远程发送给其他服务器
pwd指的是当前的路径
scp -r hadoop-2.6.5/ node01:`pwd`
scp -r hadoop-2.6.5/ node02:`pwd`
格式化
hdfs namenode -format (只能格式化一次,再次启动集群不要执行)
启动集群
start-dfs.sh
在网页中能看到这样说明完全分布式部署成功