期末老师让做课设,最后选择了这个课题
第一步
1.在centos上安装docker
1.1 $ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2 $ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
1.3 $ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.4 $ sudo yum install docker-ce docker-ce-cli containerd.io
1.5 $ yum list docker-ce --showduplicates | sort -r
1.6 $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
1.7 $ sudo systemctl start docker
2.用docker拉取一个镜像
这里我们选用ubuntu:14.04作为我们的容器镜像
docker pull ubuntu:14.04
进入ubuntu容器
docker run -it ubuntu:14.04
apt-get update 更新一下
apt-get remove vim-commen 先卸载自带的vim-commen
apt-get install vim 下载vim
3.将下载好的 jdk1.8、hadoop3.7.7 压缩包从本机传入容器里
另外打开一个命令窗口
docker cp 文件 容器ID:放置文件的目录
例:docker cp jdk1.8.0.181 a1b2c3d4:/room
4.安装jdk
tar -zxvf jdk… -C /usr/local 将jdk解压到/usr/local下
vi /etc/profile 将jdk加入环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_181
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
使用#source /etc/profile命令执行脚本
使用# java -version 检查java环境
5.安装hadoop集群
mkidr /var/hadoop 建立hadoop工作目录/var/hadoop
tar -zxvf hadoop-3.7.7… -C /usr/local 将hadoop解压到/usr/local
编辑/usr/local/hadoop2.7/etc/hadoop下的配置文件
i.hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_181
ii.yarn-env.sh
# some Java parameters
export JAVA_HOME=/usr/local/jdk1.8.0_181
iii.mapred-env.sh
# limitations under the Licence.
export JAVA_HOME=/usr/local/jdk1.8.0_181
iv.core-site.xml
<configuration>
<property><!--hadoop临时文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
<property><!--NameNode 的URI默认端口为8020-->
<name>fs.default.name</name>
<value>hdfs://master</value>
</property>
</configuration>
v.hdfs-site.xml
<configuration>
<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
<name>dfs.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放块数据的本地文件系统路径-->
<name>dfs.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
vi.yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property> <!--ResourceManager 对客户端暴露的地址-->
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property><!--ResourceManager 对ApplicationMaster暴露的地址-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property><!--ResourceManager 对NodeManager暴露的地址-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property><!--ResourceManager 对管理员暴露的地址-->
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property><!--ResourceManager 对外web暴露的地址,可在浏览器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
vii.mapred-site.xml (拷贝 mapred-site.xml.template)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
viii.slaves
Slave1
Slave2
6.安装ssh
apt-get install ssh
修改/etc/ssh/sshd_config文件
修改PermitRootLogin without-password 为yes
7.退出容器,将配置好的容器打包成镜像
docker ps -a 查看一下容器ID
docker commit ID ubuntu:hadoop
docker run -it -h master ubuntu:hadoop 以master为hostname开启一个容器
同理开启slave1、slave2