【喜加一】Hadoop和Hdfs学习笔记

2018-12-20,周四,阴,早上有毛毛雨。


hadoop学习笔记:

安装hadoop2.7.6:在http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/ 下载2.7.6的tar.gz包。下下来后解压到一个地方,记住路径。

 

 

mac ssh localhost报could not resolve hostname,但是ssh 127.0.0.1没问题,解法:将~/.ssh/known_hosts删掉(原理不明),再次ssh localhost时会报警:authentication xxxxxx……我猜这个问题和文件权限与公钥有关(更详细的猜测是,很久以前这台机器曾经被xmly执行过ssh localhost,成功了,公钥存在known_hosts里。后来有一天,另一个主人zyf接管了它,ssh-keygen再来一套,生成一套新的公私钥,此时未更新known_hosts文件,老的公钥就失灵了)。待补课。

 

 

 

安装Java8:(我还是在用linux的思想折腾macos)

在oracle官网下载Java8(为了es,我们的es5需要java8,不需要java11),下了一个dmg文件。安装包没告诉我它装哪儿去了。谷歌一番得到一个命令:

/usr/libexec/java_home -v 1.8

得到Java8的安装路径/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home。复制一下。然后执行

sudo vi /etc/profile

将export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home写进去,并顺手把PATH新增:$JAVA_HOME/bin。保存退出source /etc/profile。

此刻已经下午四点十分了……ssh的known_hosts文件坑了我几乎一整天……

 

 

下面安装hadoop的standalone版本……先搞配置。

参考自http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html。

将etc/hadoop/core-site.xml里configuration标签添加一条property:


    
        fs.defaultFS
        hdfs://localhost:9000
    

etc/hadoop/hdfs-site.xml:


    
        dfs.replication
        1
    

完事之后进到hadoop2.7.6/sbin,执行./start-dfs.sh,会发现跑起来了。

(一件意外的事:我曾经安装过盗版的Idea,盗版步骤有一条是在hosts里添加一行0.0.0.0 accounts.jetbrains.com,如今secondary namenode的地址是accounts.jetbrains.com。。。我怀疑hadoop有去读取并解析hosts文件……如下:

xmlydeMacBook-Pro:sbin xmly$ ./start-dfs.sh 
18/12/20 16:37:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /Users/xmly/tools/hadoop-2.7.6/logs/hadoop-xmly-namenode-xmlydeMacBook-Pro.local.out
localhost: starting datanode, logging to /Users/xmly/tools/hadoop-2.7.6/logs/hadoop-xmly-datanode-xmlydeMacBook-Pro.local.out
Starting secondary namenodes [account.jetbrains.com]
account.jetbrains.com: starting secondarynamenode, logging to /Users/xmly/tools/hadoop-2.7.6/logs/hadoop-xmly-secondarynamenode-xmlydeMacBook-Pro.local.out
18/12/20 16:37:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
xmlydeMacBook-Pro:sbin xmly$ 

,看到那行“starting secondary namenodes[account.jetbrains.com]”也是很惊呆了。另一件惊呆的事是,我虽然安装了Java8配置了JAVA_HOME,但hadoop并没有使用/etc/profile里的JAVA_HOME,而是使用了自带的JDK。存疑)

然后将hadoop的bin和sbin两个文件夹加进PATH:

sudo vi /etc/profile

export HADOOP_HOME=/Users/xmly/tools/hadoop-2.7.6

export PATH=....:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

:wq!, source /etc/profile

这就算配置好了,当终端停在随便哪个文件夹时都可以用它。

 

启动前,格式化一下namenode:

hdfs namenode -format

启动:start-dfs.sh,退出:stop-dfs.sh

启动后,常用的操作命令有:

hadoop fs -ls  /    查看hdfs的根目录下的内容的

hadoop fs -lsr /    递归查看hdfs的根目录下的内容的

hadoop fs -mkdir /d1    在hdfs上创建文件夹d1

hadoop fs -put 把数据从本地上传到hdfs

hadoop fs -get 把数据从hdfs下载到本地

hadoop fs -text     查看hdfs中的文件

hadoop fs -rm        删除hdfs中文件

hadoop fs -rmr    删除hdfs中的文件夹

更多参数见官网文档。

Hadoop的Java接口是有的。import org.apache.hadoop.......官方文档见……臣卜木曹没找到官方文档。但是看见有人博客里推荐《hadoop权威指南》。马住。

pom:

      
        org.apache.hadoop  
        hadoop-common  
        2.5.1  
      
    
    
		org.apache.hadoop
		hadoop-client
		2.2.0
	
	
	  
        org.apache.hadoop  
        hadoop-hdfs  
        2.5.1  
    

 

你可能感兴趣的:(喜加一)