在AWS EMR上使用“ sudo docker pull mysql / mysql-server:5.7”时出错

问题描述

我正在使用以下脚本在EMR上设置Dr Elephant和sparklens。我正在使用EMR版本5.25-

set -x -e
# check for master node
IS_MASTER=false
if grep isMaster /mnt/var/lib/info/instance.json | grep true;
then
  IS_MASTER=true
fi
# error message
error_msg ()
{
  echo 1>&2 "Error: $1"
}
DR_ELEPHANT_PORT=8087
DB_URL=
DB_NAME=drelephant
DB_USER=root
DB_PASSWORD=drelephant
DR_MEM=1024
HADOOP_VER=$(ruby -e "puts '`hadoop version | grep Hadoop`'.split('-')[0].split()[1]")
sparkleNS=true
sparkleNS_VER=0.3.0
sparkleNS_DATADIR=sparklens.json # /user/hadoop/sparklens.json
if [ "$DB_URL" == "" ]; then
  sudo yum install -y docker
  sudo service docker start
  sudo docker pull MysqL/MysqL-server:5.7
  export MysqL_data_dir=/mnt/MysqL-drelephant
  mkdir -p $MysqL_data_dir
  export MysqL_ROOT_PASSWORD=$DB_PASSWORD
  sudo docker run --name MysqL-drelephant -e MysqL_ROOT_PASSWORD=$MysqL_ROOT_PASSWORD -e MysqL_ROOT_HOST=% -v $MysqL_data_dir:/var/lib/MysqL -d MysqL/MysqL-server:5.7
  DB_URL=`sudo docker inspect MysqL-drelephant | jq '.[0].NetworkSettings.IPAddress' | sed -e 's/^"//' -e 's/"$//'`
  while [ ! -f /mnt/MysqL-drelephant/ibdata1 ]
  do
    sleep 5
  done
  sleep 10
fi
MysqL -h $DB_URL -P 3306 -uroot -p$DB_PASSWORD -e "drop database if exists $DB_NAME;"
MysqL -h $DB_URL -P 3306 -uroot -p$DB_PASSWORD -e "create database $DB_NAME;"
export HADOOP_HOME=/usr/lib/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/usr/lib/spark
export SPARK_CONF_DIR=/usr/lib/spark/conf
cd /mnt
# the following assumes that dr-elephant-2.1.7-hadoop$HADOOP_VER.zip exists
aws s3 cp s3://aws-bigdata-blog/artifacts/aws-blog-hadoop-spark-performance-tuning/dr-elephant-2.1.7-hadoop2.8.5.zip .
unzip dr-elephant-2.1.7-hadoop2.8.5.zip
cd dr-elephant-2.1.7
chmod +x bin/*
sudo sed -i "s/port=8080/port=$DR_ELEPHANT_PORT/g" app-conf/elephant.conf # 8080 is the default
sudo sed -i "s/port=8087/port=$DR_ELEPHANT_PORT/g" app-conf/elephant.conf # in case 8087 is used in builds as new default
sudo sed -i "s/db_url=localhost/db_url=$DB_URL/g" app-conf/elephant.conf
sudo sed -i "s/db_user=root/db_user=$DB_USER/g" app-conf/elephant.conf
sudo sed -i "s/db_password=\"\"/db_password=$DB_PASSWORD/g" app-conf/elephant.conf
sudo sed -i "s/\-mem\ 1024/\-mem\ $DR_MEM/g" app-conf/elephant.conf # 1024 is the default
sudo sed -i "s/\-mem\ 2048/\-mem\ $DR_MEM/g" app-conf/elephant.conf # in case 2048 is used in build as new default
bin/start.sh `pwd`/app-conf

运行该步骤时出现错误-

    + sudo docker pull MysqL/MysqL-server:5.7
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

我知道已经有很多答案。我尝试设置Error "Get https://registry-1.docker.io/v2/: net/http: request canceled" while building image中提到的代理,也尝试将名称服务器更改为8.8.8.8,但是仍然存在问题。

不确定问题是特定于EMR还是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...