终于进入正题,开始写一写我在大数据方面走过的路,自认为被其他人甩下了,所以一定要紧追而上。 首先现在我的Mac上装上单节点的Hadoop玩玩,个人感觉Apache系列的项目,只要download下来,再配置以下参数就能玩了。
在这里感谢如下教程:
Writing an Hadoop MapReduce Program in Python
下面开始吧
准备
这个阶段主要就是准备一下JAVA的环境,Mac默认是安装了Java的,不过版本就不知道了,这个还是自己安装一下并且写到环境变量里来得踏实
安装完之后,Java被装到了这个位置1
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
,把这个地址写到系统的环境变量文件.bash_profile
里
1 | # Setting PATH for java |
配置SSH
Nothing needs to be done here if you have already generated ssh keys. To verify just check for the existance of ~/.ssh/id_rsa and the ~/.ssh/id_rsa.pub files. If not the keys can be generated using
1 | $ ssh-keygen -t rsa |
Enable Remote Login
“System Preferences” -> “Sharing”. Check “Remote Login”
Authorize SSH Keys
To allow your system to accept login, we have to make it aware of the keys that will be used
1 | $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
Let’s try to login.
1 | $ ssh localhost |
安装Homebrew
在Mac上,最好的包安装工具就是Homebrew,执行下面代码安装:
1 | $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
安装Hadoop
我去,这么简单,直接
1 | $ brew install hadoop |
就搞定了。。。
这样,Hadoop会被安装在/usr/local/Cellar/hadoop
目录下
下面才是重点,配置Hadoop
配置Hadoop
hadoop-env.sh
该文件在/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hadoop-env.sh
找到如下这行:
1 | export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true" |
改为:
1 | export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=" |
Core-site.xml
该文件在/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/core-site.xml
1 | <property> |
mapred-site.xml
文件在/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/mapred-site.xml
1 | <configuration> |
hdfs-site.xml
文件在/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hdfs-site.xml
1 | <configuration> |
这就配置好了
添加启动关闭Hadoop快捷命令
为了以后方便使用Hadoop,在.bash_profile
中添加
1 | alias hstart="/usr/local/Cellar/hadoop/2.6.0/sbin/start-dfs.sh;/usr/local/Cellar/hadoop/2.6.0/sbin/start-yarn.sh" |
执行下面命令将配置生效:
1 | source ~/.bash_profile |
以后就能使用命令hstart
启动Hadoop服务,hstop
关闭Hadoop
格式化HDFS
在使用Hadoop之前,还需要将HDFS格式化
1 | $ hdfs namenode -format |
Running Hadoop
奔跑吧Hadoop
1 | $ hstart |
使用jps
命令查看Hadoop运行状态
1 | $ jps |
下面是几个很有用的监控Hadoop地址:
- Resource Manager: http://localhost:50070
- JobTracker: http://localhost:8088
- Specific Node Information: http://localhost:8042
停止Hadoop:
1 | $ hstop |
添加Hadoop环境变量
为了以后安装Spark等方便,在~/.bash_profile
配置中添加Hadoop环境变量
1 | # Setting PATH for hadoop |
可能遇到的问题
跑起来之后,或者在跑起来的过程中,可能会遇到各种问题,由于控制台命令太多,很难知道到底是哪儿出的问题,所以我总结出几个我遇到的问题和解决方法,分享给大家。
TBD
- NameNode启动失败
大功告成!可以在Hadoop上跑几个MapReduce任务了。