主要参考视频:https://edu.hellobi.com/course/93/lessons
1、安装虚拟机
这里直接用的阿里云主机,因为搭建虚拟机各种奇怪的问题。。
2、远程连接
其实这个步骤也是可以省略的,不过用Xshell5和Xftp5可以复制粘贴以及传文件都很方便
3、在linux下搭建hadoop(目前只是打了伪分布)
下载软件:
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
步骤:
1、修改/etc/hosts
其实除了修改/etc/hosts是不够的,我阿里云的主机修改了这个文件,可主机名字还是之前那一串很长的字母。
还有一个文件需要修改,叫做/etc/hostname。
2、配置jdk
解压那个包即可安装。
然后编辑/etc/profile
在那个文件里面配置JAVA_HOME,并添加其中的bin目录到PATH中
source /etc/profile
3、配置SSH(免密码登陆)
ssh-keygen -t rsa
cat xxx.pub >> authorized_keys
chmod 644 authorized_keys
ssh IP/HOSTNAME
4、安装和配置hadoop
注意:原作者解包到了/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.name</name>
<value>hdfs://bigdata:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/current/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>bigdata:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata:18025</value>
</property> <property>
<name>yarn.resourcemanager.admin.address</name>
<value>bigdata:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>bigdata:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>mapreduce.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
slaves
bigdata
hadoop-env.sh
配置JAVA_HOME
4、安装遇到的问题
由于我之前装过一次hadoop,所以我把之前那些环境变量的配置文件,比如/etc/profile、/home/users/.bashrc这两文件都认真看了一遍,确定不会受之前装的hadoop的bin目录影响,可是后面在启动的时候,总是启动不了namenode,看了很久的日志没找到问题,直到在格式化的时候发现打印的消息指向的居然是我之前装的hadoop目录下的一个目录。
原来还有一个环境变量配置的文件,/etc/environment,删除其中前hadoop目录的路径就好了。
所以配置环境变量要关注3个文件
/etc/profile、/home/users/.bashrc和/etc/environment
5、测试是否安装成功
步骤:
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
6、sqoop
采用的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