使用brew install Hadoop 和brew install hive 搭建环境很方便,我按照上面两篇文章做了一下,整体还算顺利遇到了一点点小问题,不过最后都解决了,最后安装的Hadoop版本为2.8.1,hive版本为2.1.1。
一、 安装Hadoop
0. 默认已安装:brew,java
1. 使用 brew install Hadoop 安装Hadoop,然后等待......
hadoop 成功安装2. 配置ssh 免密码登录
首先在设置中开启远程登录:系统偏好设置--->共享--->勾选“远程登录”
然后执行以下命令: 这里参考的是 这篇文章的第二部分
1. ssh-keygen -t rsa
Press enterforeach line 提示输入直接按回车就好
2. cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys
之后测试 ssh localhost 如果不需要输入密码就成功了。
3. 配置hadoop相关文件
包括core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 配置的方式按照文章开头给出的的“搭建hadoop”链接中的配置方式即可。
4. 运行hadoop样例程序
1)进入hadoop目录:cd /usr/local/Cellar/hadoop/2.8.1/libexec
格式化hadoop文件系统:bin/hdfs namenode -format
2) 启动NameNode 和 DataNode的守护进程:sbin/start-dfs.sh
3) 启动ResourceManager 和NodeManager的守护进程 sbin/start-yarn.sh
4) 访问localhost:50070 和localhost:8088,见下图
localhost:50070 localhost:80885. 创建hdfs目录:bin/hdfs dfs -mkdir -p /user/chenghengchao/input (chenghengchao可以替换成任意的用户名) 这步的操作是指在hadoop文件系统中创建了一个/user/chenghengchao/input 目录,在50070页面的utiities标签下的browse the file system可以看到创建的目录,现在input目录下什么都没有
6. 拷贝一些文件到input目录 bin/hdfs dfs -put etc/hadoop input 这步操作将本地的etc/hadoop下面的文件拷贝到了input目录下
7. 运行样例 根据hadoop版本号修改命令,这里是执行share/hadoop/mapreduce下面的jar文件,从而检测环境是否已经搭建好
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar grep input/hadoop output 'dfs[a-z.]+' 大概的意思是说,将hdfs文件系统中input/hadoop下的以dfs开头的文件名输出到output中
运行过程截图:
截图一 截图二8. 运行成功
生成了output1文件夹(output 是之前生成的,不能重名)在output1 下面有一个part-r-00000文件,下载之后可以看到结果
运行结果ps:如果中间遇到了问题,仔细看一下报错的地方,看看错误的原因是什么,比如文件路径不存在之类的。如果自己能够解决就更好了,这样才能快速学到东西,也能加深自己的理解
二、安装hive
0. 默认已安装brew,mysql
按照文章开头给出的”搭建hive“链接中的方法
运行brew install hive 安装hive,在mysql中创建元数据库,之后修改hive的配置,按照步骤一步一步做就好。
我遇到的问题是在最后”初始化库“的时候有错误,看了下日志发现是用户名密码在前一步配置错了重新配置之后就OK了。
最后可以将hadoop和hive的安装目录加入到环境变量中,方便下一次启动:
export HADOOP_HOME="/usr/local/Cellar/hadoop/2.8.1/libexec"
export HIVE_HOME="/usr/local/Cellar/hive/2.1.1"
export PATH="$PYENV_ROOT/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin"
到这里,整个搭建过程基本就完成了,搭建的目的是为了更好的学习hive,接下来可能会有相关文章更新。欢迎大家交流!
补充:
按照以上教程配置好之后,在后续的使用中发现了一些问题,都是由于之前缺少配置造成的,更新如下:
1. /usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/hdfs-site.xml 文件需要配置
<property><name>dfs.datanode.data.dir</name><value>/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/tmp</value><property>
value 值为已经存在的一个目录即可
2./usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/core-site.xm 文件需要配置
<proprety><name>hadoop.tmp.dir</name><value>/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/tmp</value><property>
以上两个value值应该要一致。
暂时发现这两个问题。
网友评论