HADOOP目前的版本有Apache社区版、CDH版和HDP版等,Apache社区版有些包依赖不一致会存在问题,CDH版本国内70%~80%的公司在用,因此这个笔记安装的都是CDH版本的hadoop。具体版本为cdh5.7.0,hadoop2.6.0,hive1.1.0。
PATH设置错误:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin
编译Hadoop
1.SSH免密登录
参考mac安装教程,添加ssh localhost免密登录,目的是为了让hadoop免密登录。
System Preference -> Sharing
中,左边勾选 Remote Login
,右边选择 All Users
。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
2.安装Hadoop
Hadoop的安装教程参考官网
下载tar.gz文件,解压后添加HADOOP_HOME变量
vi ~/.bash_profile
export HADOOP_HOME=/Users/xiafengsheng/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
source ~/.bash_profile
3.更改配置文件
参考官网,更改$HADOOP_HOME/etc/hadoop 下的 core-site.xml /hadoop-env.sh /hdfs-site.xml
/mapred-site.xml /yarn-site.xml 在配置yarn时再更改
hadoop-env.sh
添加JAVA_HOME变量
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
core-site.xml
添加fs.defaultFS 属性和hadoop.tmp.dir 属性,fs.defaultFS制定文件系统,hadoop.tmp.dir制定临时文件目录,默认的临时文件目录会在系统重启后被清楚,所以要设置,端口设置为8020是因为新版本的hadoop默认端口是8020
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/xiafengsheng/app/tmp</value>
</property>
</configuration>
hdfs-site.xml
添加dfs.replication属性,dfs.replication属性控制hadoop备份文件数量,由于是单节点,所以改为1
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4.启动hdfs
首次启动需要先格式化HDFS
bin/hdfs namenode -format
启动hdfs
sbin/start-dfs.sh
有两种方式可以查看是否启动成功
jps指令
xiafengshengdeMacBook-Pro:hadoop xiafengsheng$ jps 3329 Jps 627 RemoteMavenServer 1525 NameNode 1909 RunJar 1864 NodeManager 1690 SecondaryNameNode 634 Launcher 1789 ResourceManager 1597 DataNode
登录Localhost:50070
5.其他笔记
Unable to load native-hadoop library for your platform… using builtin-java classes where applicable 解决方法
Hadoop2之后YARN取代MapReduce进行资源调度
配置YARN
关于YARN的调度,可以参考视频1-19.
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar 有样例