基于DOCKER的Hadoop+HIVE环境学习试用

假设前提:

宿主机已成功安装docker,如未安装请参考《Centos 7.5安装Docker》博文安装。

对于想快速了解Hadoop+hive的同学,这篇博文值得一看,因为这里已经最小化配置好了hadoop及hive环境,并docker镜像化了,仅需要下面简单的几步就可运行起来:

Step 1: 在宿主机系统创建docker容器会用到的自定义网桥(这里为了后面步骤方便,通过以下命令创建了名为my-net的网桥)

#docker network create --subnet=172.18.0.0/16 my-net

注:也可以自定义你自己的网桥,只是注意下面命令替换成你自己创建的就OK。


Step 2: 从我的aliyun镜像仓库pull相关的镜像(这有4个镜像需要pull)

#docker pull registry.cn-hangzhou.aliyuncs.com/liyu_os/testmaster:v1

#docker pull registry.cn-hangzhou.aliyuncs.com/liyu_os/testslave1:v1

#docker pull registry.cn-hangzhou.aliyuncs.com/liyu_os/testslave2:v1

扫描二维码关注公众号,回复: 3623995 查看本文章

#docker pull registry.cn-hangzhou.aliyuncs.com/liyu_os/mysql:v1

注:如果运行上面命令不能获取到相应镜像,或许你需设置一下aliyun镜像加速器。设置方法,请参考《docker仓库配置及镜像、容器简单操作》这篇博文。


Step 3: 运行以下命令实例化容器,注意以相应的镜像ID代替相应命令的xxxx

#docker run  -d --privileged   --network my-net --ip 172.18.0.10 --hostname=testmaster --mount type=bind,source=/opt/sharefolder,target=/opt/sharefolder xxxx /usr/sbin/init

#docker run  -d --privileged   --network my-net --ip 172.18.0.11 --hostname=testslave1 --mount type=bind,source=/opt/sharefolder,target=/opt/sharefolder xxxx /usr/sbin/init

#docker run  -d --privileged   --network my-net --ip 172.18.0.12 --hostname=testslave2 --mount type=bind,source=/opt/sharefolder,target=/opt/sharefolder xxxx /usr/sbin/init

#docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network my-net --ip 172.18.0.15 -d xxxx

注:因为Hadoop运行需要用到ssh服务,所以必须加上--privileged及/usr/sbin/init参数,但加上这2个参数实例化容器后系统会退出当前登录,再登进去依次实例化即可。(这是docker的bug,据官方说7.2及以上版本上已解决,但实际上依然存在,暂时也没找到其他合适的解决方案:(。)


Step 4: 进除mysql外的其他3个容器,运行以下命令

#source /etc/profile


Step 5: 进除mysql外的其他3个容器,编辑/etc/hosts文件,输入以下内容:

172.18.0.10 testmaster

172.18.0.11 testslave1

172.18.0.12 testslave2


Step 6: 启动hadoop

#starthadoop.sh   //可用stophadoop.sh停止hadoop服务


Step 7: 进入testmaster容器,并进入hive的bin目录,运行以下命令:

#./schematool -initSchema -dbType mysql            //初始化hive元数据库

#./hive        //启动hive数据仓库,进入hive命令行交互窗口


至此,就已经启动了hadoop服务,可以开始hive学习。

猜你喜欢

转载自blog.51cto.com/taoismli/2304947