主要参考视频:https://edu.hellobi.com/course/93/lessons
这里直接用的阿里云主机,因为搭建虚拟机各种奇怪的问题。。
其实这个步骤也是可以省略的,不过用Xshell5和Xftp5可以复制粘贴以及传文件都很方便
1、jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2、Hadoop包:个人用的hadoop2.7.4,官网找
也可以在这个链接上下载:
链接:http://pan.baidu.com/s/1qYeDsss 密码:jjs1
其实除了修改/etc/hosts是不够的,我阿里云的主机修改了这个文件,可主机名字还是之前那一串很长的字母。
还有一个文件需要修改,叫做/etc/hostname。
解压那个包即可安装。
然后编辑/etc/profile
在那个文件里面配置JAVA_HOME,并添加其中的bin目录到PATH中
source /etc/profile
ssh-keygen -t rsa
cat xxx.pub >> authorized_keys
chmod 644 authorized_keys
ssh IP/HOSTNAME
注意:原作者解包到了/opt目录中,所在目录为/opt/hadoop-2.7.2,并且主机名叫做bigdata,以后的xml文件请自行替换
tar zxf hadoop-2.7.2.tar.gz
cd /opt/hadoop-2.7.2/etc/hadoop/
core-site.xml
<property>
<name>fs.default.namename>
<value>hdfs://bigdata:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/hadoop-2.7.2/current/tmpvalue>
property>
<property>
<name>fs.trash.intervalname>
<value>4320value>
property>
hdfs-site.xml
<property>
<name>dfs.namenode.name.dirname>
<value>/opt/hadoop-2.7.2/current/dfs/namevalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>/opt/hadoop-2.7.2/current/datavalue>
property>
<property>
<name>dfs.replicationname>
<value>1value>
property>
<property>
<name>dfs.webhdfs.enabledname>
<value>truevalue>
property>
<property>
<name>dfs.permissions.superusergroupname>
<value>staffvalue>
property>
<property>
<name>dfs.permissions.enabledname>
<value>falsevalue>
property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostnamename>
<value>bigdatavalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
<value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>
<property>
<name>yarn.resourcemanager.addressname>
<value>bigdata:18040value>
property>
<property>
<name>yarn.resourcemanager.scheduler.addressname>
<value>bigdata:18030value>
property>
<property>
<name>yarn.resourcemanager.resource-tracker.addressname>
<value>bigdata:18025value>
property> <property>
<name>yarn.resourcemanager.admin.addressname>
<value>bigdata:18141value>
property>
<property>
<name>yarn.resourcemanager.webapp.addressname>
<value>bigdata:18088value>
property>
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.log-aggregation.retain-secondsname>
<value>86400value>
property>
<property>
<name>yarn.log-aggregation.retain-check-interval-secondsname>
<value>86400value>
property>
<property>
<name>yarn.nodemanager.remote-app-log-dirname>
<value>/tmp/logsvalue>
property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffixname>
<value>logsvalue>
property>
mapred-site.xml
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobtracker.http.addressname>
<value>bigdata:50030value>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>bigdata:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>bigdata:19888value>
property>
<property>
<name>mapreduce.jobhistory.done-dirname>
<value>/jobhistory/donevalue>
property>
<property>
<name>mapreduce.intermediate-done-dirname>
<value>/jobhisotry/done_intermediatevalue>
property>
<property>
<name>mapreduce.job.ubertask.enablename>
<value>truevalue>
property>
slaves
bigdata
hadoop-env.sh
配置JAVA_HOME
由于我之前装过一次hadoop,所以我把之前那些环境变量的配置文件,比如/etc/profile、/home/users/.bashrc这两文件都认真看了一遍,确定不会受之前装的hadoop的bin目录影响,可是后面在启动的时候,总是启动不了namenode,看了很久的日志没找到问题,直到在格式化的时候发现打印的消息指向的居然是我之前装的hadoop目录下的一个目录。
原来还有一个环境变量配置的文件,/etc/environment,删除其中前hadoop目录的路径就好了。
所以配置环境变量要关注3个文件
/etc/profile、/home/users/.bashrc和/etc/environment
步骤:
1、格式化HDFS
hdfs namenode -format
‘16/09/0403:07:30 INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.’
2、启动Hadoop集群
/opt/hadoop-2.7.2/sbin/start-all.sh
3、验证Hadoop集群
1)jps
会看到:
9505 NodeManager
8929 NameNode
9394 ResourceManager
9235 SecondaryNameNode
14409 Jps
9039 DataNode
2)
关闭防火墙 或者 在防火墙的规则中开放这些端口
hdfs http://bigdata:50070
yarn http://bigdata:18088
采用的sqoop-1.4.6。
这里也有一点问题,我一开始因为之前搭过hadoop和sqoop,所以就把以前的sqoop-1.4.6.tar,解压后在/etc/profile配置好SQOOP_HOME啥的,测试一下命令就报错了。
于是按照教程下载了sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar,就搞定了。
在/etc/profile加入:(包括了之前搭建hadoop的配置)
export HADOOP_HOME=/opt/hadoop-2.7.4
export PATH=$HADOOP_HOME/bin:$PATH
export SQOOP_HOME=/opt/sqoop-1.4.6
export PATH=$SQOOP_HOME/bin:$PATH