docker 创建hadoop集群

创建dockfile
创建docker 目录并指定docker pool 大小
mkdir -p /docker/docker/devicemapper/devicemapper
ln -s /docker/docker/ docker
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1G count=0 seek=800
写入:
FROM ubuntu
MAINTAINER yidugov
RUN apt-get update
RUN apt-get install -y openssh-server sudo vim python
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN groupadd hadoop
RUN useradd -g hadoop -d /home/hadoop -m hadoop -s /bin/bash
RUN echo "hadoop:hadoop" | chpasswd
RUN echo "root    ALL=(ALL)    ALL" >> /etc/sudoers
RUN mkdir /var/run/sshd
RUN mkdir /usr/local/bigdata
ADD bigdata.tar.gz /usr/local/bigdata
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

保存退出
在当前目录执行:docker build -t='yidugov/hadoop' .
创建完成后执行:
docker run --cpuset-cpus=0-3 -m 30G --name yidu1 --hostname yidu1 -d -P -p 50070:50070 -p 8088:8088 yidugov/hadoop
--cpuset-cpus=0-3 :指定docker应用的cpu
 -m 30G:指定docker应用的内存


docker run --name yidu1 --hostname yidu1 -d -P -p 50070:50070 -p 8088:8088  yidugov/hadoop
docker run --name yidu2 --hostname yidu2 -d -P  yidugov/hadoop
docker run --name yidu3 --hostname yidu3 -d -P  yidugov/hadoop
docker run --name yidu4 --hostname yidu4 -d -P  yidugov/hadoop
docker run --name yidu5 --hostname yidu5 -d -P  yidugov/hadoop
生成docker容器
 
执行:docker exec -it yidu1 /bin/bash
进入容器将环境变量:
HADOOP_HOME=/usr/local/bigdata/hadoop
ZOOKEEPER_HOME=/usr/local/bigdata/zookeeper
JAVA_HOME=/usr/local/bigdata/jdk
MAVEN_HOME=/usr/local/bigdata/maven
SCALA_HOME=/usr/local/bigdata/scala
SPARK_HOME=/usr/local/bigdata/spark
MYSQL_HOME=/usr/local/bigdata/mysql
SQOOP_HOME= /usr/local/bigdata/sqoop
ORACLE_HOME= /usr/local/bigdata/oracle
HIVE_HOME=/usr/local/bigdata/hive
PATH=$PATH:$HOME/bin:$HIVE_HOME/bin:$MYSQL_HOME/bin:$ORACLE_HOME:$SQOOP_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin
export PATH
export JAVA_LIBRARY_PATH=/usr/local/bigdata/hadoop/lib/native
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export SPARK_EXAMPLES_JAR=/usr/local/bigdata/spark/lib/spark-examples-1.6.2-hadoop2.6.0.jar
export LD_LIBRARY_PATH=$ORACLE_HOME
写入用户目录下.bashrc 文件中
安装NOSQL软件

NoSQL计算平台搭建

1.安装操作系统

2.更新软件包

尤其注意gcc 和 glibc 两个包是否安装

使用:rpm -qa | grep gcc*

  rpm -qa | grep glibc*

使用:yum update 更新软件包

3.创建用户

使用:

groupadd hadoop 创建用户组

useradd -g hadoop -d /home/hadoop -p hadoop hadoop 创建用户

4.设置免密登录

使用:

rm -rf /root/.ssh/* 清空密钥文件夹

ssh-keygen -t rsa 生成公钥

ssh-copy-id -i yidu1 将公钥复制到其他节点机器(本机也要执行免密登录)

ssh-copy-id -i yidu2 将公钥复制到其他节点机器(本机也要执行免密登录)

ssh-copy-id -i yidu3 将公钥复制到其他节点机器(本机也要执行免密登录)

5.修改Hostname

使用:vim /etc/hosts

添加节点机器IP及节点机器hostname

例如:192.168.18.150 yidu1

  vim /etc/sysconfig/network

修改本机Hostname

HOSTNAME=yidu1

 

6.创建本地软件文件夹(可忽略,但建议执行本步骤)

mkdir -p /usr/local/software

mkdir -p /usr/local/bigdata

将软件上传至次文件夹内

本次所需软件有:

apache-hive-2.0.0-bin.tar.gz   

hbase-1.1.4-bin.tar.gz(选装)     

Python-2.7.11.tar.xz   

spark-1.6.2-bin-hadoop2.6.tgz

apache-maven-3.3.9-bin.tar.gz  

jdk-8u77-linux-x64.tar.gz  

scala-2.12.0-RC1.tgz   

zookeeper-3.4.8.tar.gz

hadoop-2.6.4.tar.gz            

pip-8.1.2.tar.gz(Python 安装工具选装)             

setuptools-26.0.0.zip(Python 安装工具选装)

使用:

tar -zxvf * -C /usr/local/bigdata

(将软件包解压缩到指定文件夹内)

将软件包改名方便修改环境变量

 

7.修改环境变量

使用:

vim /etc/profile

在文件结尾添加以下信息:

HADOOP_HOME=/usr/local/bigdata/hadoop

ZOOKEEPER_HOME=/usr/local/bigdata/zookeeper

JAVA_HOME=/usr/local/bigdata/jdk

MAVEN_HOME=/usr/local/bigdata/maven

SCALA_HOME=/usr/local/bigdata/scala

SPARK_HOME=/usr/local/bigdata/spark

PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin

export PATH

export JAVA_LIBRARY_PATH=/usr/local/bigdata/hadoop/lib/native

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export SPARK_EXAMPLES_JAR=/usr/local/bigdata/spark/lib/spark-examples-1.6.2-hadoop2.6.0.jar

执行:

source /etc/profile

8.修改软件配置信息

修改zookeeper:

进入zookeeper目录

cd $ZOOKEEPER_HOME/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

修改:dataDir=/usr/local/bigdata/zookeeper/data

结尾添加:

  server.1=yidu1:2888:3888

  server.2=yidu2:2888:3888

  server.3=yidu3:2888:3888

mkdir $ZOOKEEPER_HOME/data

touch $ZOOKEEPER_HOME/data/myid

echo '1' > myid (节点1在myid中写入:1;节点二在myid中写入:2;节点三在myid中写入:3;)

修改hadoop:

进入:cd /usr/local/bigdata/hadoop/etc/hadoop/

主要修改:

core-site.xml

hadoop-env.sh

hdfs-site.xml

mapred-site.xml

slaves

yarn-env.sh

yarn-site.xml

core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/bigdata/hadoop/tmp</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://yidu1:9000</value>

</property>

<property>

<name>hadoop.proxyuser.spark.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.spark.groups</name>

<value>*</value>

</property>

<property>

<name>hadoop.native.lib</name>

<value>true</value>

</property>

</configuration>

hadoop-env.sh

export JAVA_HOME=/usr/local/bigdata/jdk

hdfs-site.xml

<configuration>

<property>

  <name>dfs.namenode.secondary.http-address</name>

  <value>yidu1:9001</value>

</property>

 

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:/usr/local/bigdata/hadoop/dfs/name</value>

</property>

 

<property>

  <name>dfs.datanode.data.dir</name>

  <value>file:/usr/local/bigdata/hadoop/dfs/data</value>

  </property>

 

<property>

  <name>dfs.replication</name>

  <value>3</value>

</property>

 

<property>

  <name>dfs.webhdfs.enabled</name>

  <value>true</value>

</property>

 

</configuration>

 

mapred-site.xml

<configuration>

  <property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

</property>

<property>

  <name>mapreduce.jobhistory.address</name>

  <value>yidu1:10020</value>

</property>

<property>

  <name>mapreduce.jobhistory.webapp.address</name>

  <value>yidu1:19888</value>

</property>

</configuration>

slaves

yidu2(节点hostname)

yidu3(节点hostname)

 

yarn-env.sh

JAVA_HOME=/usr/local/bigdata/jdk

yarn-site.xml

<configuration>

  <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>yidu1:8032</value>

  </property>

  <property>

   <name>yarn.resourcemanager.scheduler.address</name>

   <value>yidu1:8030</value>

  </property>

  <property>

   <name>yarn.resourcemanager.resource-tracker.address</name>

   <value>yidu1:8035</value>

  </property>

  <property>

   <name>yarn.resourcemanager.admin.address</name>

   <value>yidu1:8033</value>

  </property>

  <property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>yidu1:8088</value>

  </property>

</configuration>

mkdir -p /usr/local/bigdata/hadoop/dfs/name

mkdir -p /usr/local/bigdata/hadoop/dfs/data

mkdir -p /usr/local/bigdata/hadoop/tmp

hdfs namenode -format

hadoop fs -mkdir -p /usr/hive/warehouse

hadoop fs -mkdir -p /usr/hive/tmp


修改Spark配置

cd /usr/local/bigdata/spark/conf

cp slaves.template slaves

vim slaves

添加:

yidu2

yidu3

cp spark-env.sh.template spark-env.sh

vim spark-env.sh

结尾添加:export SCALA_HOME=/usr/local/bigdata/scala

重启机器

 

9.启动软件

重启后切换到hadoop用户

执行:

zkServer.sh start (三台机器都执行)

zkServer.sh status (查看zkserver运行状态)

start-all.sh

jps (查看运行状态)

使用浏览器:输入:http://Master:8088 查看是否可以打开

使用浏览器:输入:http://Master:8080 查看是否可以打开

全部可以打开证明软件安装成功

 

10.使用spark进行计算

执行:

hadoop fs -mkdir /data  创建hdfs文件夹

spark文件夹下的README.md上传到hdfs上

hadoop fs -put README.md /data

计算:

执行:spark-shell

sc

val file = sc.textFile("hdfs://yidu1:9000/data/README.md")

val sparks=file.filter(line => line.contains("Spark"))

sparks.count

返回:

res1: Long = 17

 

安装MYSQL:
1、groupadd mysql      ## 添加一个mysql组

2、useradd -r -g mysql mysql    ## 添加一个用户

3、解压缩下载的包,tar -xzvf /data/software/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

4、然后 mv 解压后的包  mysql   ##相当于重命名

5、 chown -R mysql:mysql ./   ##进入mysql包中, 给这个包授权 给mysql

6、bin/mysqld --initialize --user=hadoop --basedir=/usr/local/bigdata/mysql --datadir=/usr/local/bigdata/mysql/data ##进入mysql文件名  basedir 为mysql 的路径, datadir 为mysql的 data 包,里面存放着mysql自己的包, 如user

重要:此处需要注意记录生成的临时密码,如上文:YLi>7ecpe;YP

7、bin/mysql_ssl_rsa_setup  --datadir=/usr/local/mysql/data           

8、进入mysql    support-files

9、cp my-default.cnf /etc/my.cnf

10、cp mysql.server /etc/init.d/mysql

11、vim /etc/init.d/mysql             ##修改basedir=  自己的路径     修改datadir= 自己的路径

12、bin/mysqld_safe --user=mysql &     ## 启动mysql

13、bin/mysql --user=root –p   

14、 输入临时密码

15、set password=password('A123456');

16、grant all privileges on *.* to root@'%' identified by 'A123456';

17、flush privileges;

18、use mysql;

19、select host,user from user;

20.创建HIVE用户
create database hive;
grant all on hive.* to hive@'%'  identified by 'hive';
grant all on hive.* to hive@'localhost'  identified by 'hive';
flush privileges; 

初始化hive:   schematool -initSchema -dbType mysql
安装SQOOP:
修改/usr/local/bigdata/sqoop/conf/sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/bigdata/hadoop
export HADOOP_MAPRED_HOME=/usr/local/bigdata/hadoop
export HIVE_HOME=/usr/local/bigdata/hive
export ZOOCFGDIR=/usr/local/bigdata/zookeeper

修改/usr/local/bigdata/sqoop/bin/configure-sqoop
将没有用到的软件检查注释掉

将JDBC拷贝到 /usr/local/bigdata/sqoop/lib 下 例如 Oracle:
cp $ORACLE_HOME/ojdbc*.jar $SQOOP_HOME/lib

测试SQOOP:sqoop list-tables --connect jdbc:oracle:thin:@192.168.10.35:1521:yidugov --username MAYOR --password yiducloud
数据导入:sqoop import --connect jdbc:oracle:thin:@192.168.10.35:1521:yidugov --username MAYOR --password yiducloud --table B_SM --fields-terminated-by ':' -m 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值