Ich bin neu bei Jupyter, daher zeige ich Ihnen, wie Sie eine Umgebung auf AWS EC2 erstellen und wie Sie sie sechs Monate später problemlos für mich selbst verwenden können.
Abgesehen von den detaillierten Einstellungen besteht das Ziel darin, schnell eine Jupyter-Umgebung auf EC2 zu erstellen, ein einfaches Python-Skript auf Jupyter auszuführen und die Grundlagen der UI-Betriebsmethode von Jupyter zu erlernen. Die Kampfkraft von Linux ist gering. Versuchen Sie daher, das Verfahren so weit wie möglich zu kopieren und einzufügen.
Wenn Sie mit Amazon EMR einen Jupyter on Spark-Cluster erstellen möchten, lesen Sie hier [http://qiita.com/taka4sato/items/377a9dedb6842f056e60]. Darüber hinaus wird Jupyter Notebook ab der nächsten Version zu ** Juypter Lab **, und die Benutzeroberfläche / Funktionen werden sich erheblich ändern. Siehe hier zum Erstellen der Umgebung von Jupyter Lab.
Zunächst das Verfahren zum Erstellen der Jupyter-Umgebung.
Starten Sie EC2, auf dem Jupyter ausgeführt wird, und melden Sie sich mit ssh an.
8080
in der Sicherheitsgruppe von EC2Fügen Sie das gewünschte Modul mit "atp-get" ein, aktualisieren Sie pip und installieren Sie ipython [notebook]. Fügen Sie export LC_ALL = C
hinzu, wenn Sie eine Meldung wie WARNING! Ihre Umgebung gibt ein ungültiges Gebietsschema an.
bei ssh login.
$ export LC_ALL=C
$ sudo apt-get update
$ sudo apt-get install -y python-pip libpq-dev python-dev libpng12-dev libjpeg8-dev libfreetype6-dev libxft-dev
$ sudo pip install -U pip
$ sudo pip install numpy pandas matplotlib seaborn scikit-learn plotly ipython[notebook]
Führen Sie den folgenden Befehl aus, um eine Vorlage (~ / .jupyter / jupyter_notebook_config.py
) der Jupyter-Konfigurationsdatei zu erstellen.
$ jupyter notebook --generate-config
Bearbeiten Sie dann ~ / .jupyter / jupyter_notebook_config.py
. Da es sich bei allen Dateien um große Dateien handelt, die mit "#" auskommentiert wurden, setzen Sie die folgenden 5 Zeilen an eine beliebige Stelle, z. B. an den Anfang der Datei, und speichern Sie sie (Die folgenden Einstellungen sind Einstellungen, auf die jeder auf den Jupyter-Server zugreifen kann. Bitte beachten Sie Bitte gib mir).
c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.token = ''
Ab dem letzten Jupyter ist aus Sicherheitsgründen eine Anmeldung mit Kennwort oder Token erforderlich. Im obigen Beispiel ermöglicht "c.NotebookApp.token =" den Zugriff ohne Token.
Wenn Sie das Anmeldekennwort festlegen möchten, müssen Sie die Hash-Zeichenfolge des Kennworts im Voraus überprüfen. Wenn Sie den folgenden Befehl ausführen, wird eine Eingabeaufforderung zur Eingabe des Kennworts angezeigt. Geben Sie daher das Kennwort ein, das Sie festlegen möchten.
$ python -c "import IPython;print(IPython.lib.passwd())"
Dann wird eine Hash-Zeichenfolge zurückgegeben, die mit "sha1:" beginnt, z. B. "sha1: 3be1549bb425: 1500071094720b33gf8f0feg474931dc5e43dfed". Kopieren Sie sie daher.
Ändern Sie dann den Inhalt von ~ / .jupyter / jupyter_notebook_config.py
, der in ↑ bearbeitet wurde, wie folgt. Ersetzen Sie die Hash-Zeichenfolge nach "c.NotebookApp.password" durch die Hash-Zeichenfolge, die Sie oben zuvor nachgeschlagen haben.
c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.password = u'sha1:3be1549bb425:1500071094720b33gf8f0feg474931dc5e43dfed'
Führen Sie den folgenden Befehl aus, um Jupyter zu starten.
$ jupyter notebook
Wechseln Sie im Browser zu EC2, z. B. "ec2-53-239-93-85.ap-northeast-1.compute.amazonaws.com: 8080". Vergessen Sie nicht den Port 8080
. Der Jupyter-Anmeldebildschirm wird angezeigt. Wenn Sie sich durch Eingabe des oben festgelegten Kennworts anmelden können, sind Sie erfolgreich. Wenn Sie Background ausführen möchten, setzen Sie nohup jupyter notebook> / dev / null 2> & 1 &
und Jupyter funktioniert auch dann weiter, wenn Sie ssh trennen.
Erstellen Sie ein Skript mit dem Namen "start_jupyter.sh", registrieren Sie es in "/ etc / rc.local" und legen Sie fest, dass Jupyter beim Start von EC2 im Hintergrund ausgeführt wird.
touch ~/start_jupyter.sh
start_jupyter.sh
und schreiben Sie / usr / local / bin / jupyter notebook
hinein.chmod 777 ~/start_jupyter.sh
/ etc / rc.local
mit Root-Rechten und setzen Sie eine Zeile von su --ubuntu /home/ubuntu/start_jupyter.sh &
vor exit 0
Es ist super einfach, aber es gibt einen Einblick in die Verwendung von Jupyter.
Wählen Sie nach dem Anmelden "Python2" unter "Neu" aus, um ein Python2-Notizbuch zu erstellen.
Jupyter schreibt Code und Beschreibung (Markdown) in ein Feld (?) Namens ** Cell ** und führt sie nacheinander aus. Die Funktionen verschiedener Symbole sind wie folgt
+
Symbol fügt Zelle hinzu (Sie können Zelle auch mit Einfügen
> Zelle oben einfügen
oder Zelle unten einfügen
hinzufügen)Code
wird bei der Eingabe von Code wie Python ausgewähltMarkdown
wird ausgewählt, wenn eine Beschreibung (zu Code und Verarbeitungsergebnissen) in der Markdown-Sprache hinzugefügt wird. Die Formelnotation ist auch mit [Mathjax] möglich (https://www.mathjax.org/).Raw NB Convert
wird ausgewählt, wenn eine Formel in Latex eingegeben wirdHeading
scheint eine ähnliche Verwendung zu haben wie Markdown
(wird in Zukunft verschwinden)Geben Sie den folgenden Python-Code in Cell ein. Es ist ein Code, der nur 10 Mal pro Sekunde die aktuelle Zeit druckt.
import datetime, time
def main():
for count in range(0, 10):
print_current_time()
time.sleep(1)
def print_current_time():
print (datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S'))
if __name__ == '__main__':
main()
Bitte geben Sie den obigen Python-Code wie unten gezeigt in die Zelle mit 4 Codes ein.
Fügen Sie eine Markdown-Zelle wie unten gezeigt hinzu und geben Sie einen Kommentar in Markdown ein. Wenn Sie Cell
> Run All
ausführen, wird Markdown im gerenderten Zustand in der Reihenfolge von oben verarbeitet.
Es ist üblich, "matplotlib" zu verwenden, um ein 2D-Diagramm zu erstellen. Das Diagramm wird durch Ausführen des folgenden Codes auf Jupyter erstellt / angezeigt. % matplotlib inline ist ein Idiot, der benötigt wird, um das Ausgabediagramm von matplotlib auf Jupyter anzuzeigen, und es ist in Ordnung, wenn es irgendwo im Notebook einmal deklariert / ausgeführt wird.
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randint(0, 100, 10000)
plt.hist(x, bins=20)
plt.plot()
Erstellen Sie mit np.random.randint (0, 100, 10000)
10.000 zufällige Ints im Bereich von 0-99 und zeigen Sie die Verteilung der Zufallszahlen als Histogramm von 20 Spalten an.
Darüber hinaus ist matplotlib
eine alte 2D-Kartenerstellungsbibliothek, und obwohl es möglich ist, detaillierte Einstellungen vorzunehmen, gibt es eine Meinung, dass die Parametereinstellungsmethode etwas kompliziert ist, und es gibt auch eine Bibliothek, die ein modernes Designdiagramm mit einem Kurzcode namens seaborn
erstellen kann. Es gibt (Siehe hier). Beachten Sie jedoch, dass einige Diagramme Matplotlib unterstützen, jedoch nicht Seaborn.
Ein 3D-Diagramm kann mit einer Bibliothek namens "plotly" erstellt werden. Dies ist effektiv, wenn Sie die 3D-Datenverteilung durch maschinelles Lernen usw. überprüfen möchten und Scatter, Surface, Mesh in 3D unterstützt wird. Wenn Sie den folgenden Code auf Jupyter ausführen, wird 3D-Streudiagramm wie folgt angezeigt. Viel Spaß beim Ändern des Ansichtspunkts und Skalieren mit Drag & Pinch in / out.
np.random.multivariate_normal ([0,0,0], [[0,1, 0, 0], [0, 1, 0], [0, 0, 2]], 1000) .T
hat einen Durchschnitt Es ist eine Funktion, die 1000 Zufallszahlen mit einer dreidimensionalen Normalverteilung mit [0,0,0] bzw. einer Varianz von [0,1, 1, 2] erzeugt.
import plotly
import numpy as np
plotly.offline.init_notebook_mode()
x1, y1, z1 = np.random.multivariate_normal([3,3,3], [[0.5, 0, 0], [0, 0.5, 0], [0, 0, 0.5]], 1000).T
trace1 = plotly.graph_objs.Scatter3d(x=x1, y=y1, z=z1, mode='markers', marker=dict(size=1, line=dict(color='b')))
x2, y2, z2 = np.random.multivariate_normal([0,0,0], [[0.1, 0, 0], [0, 1, 0], [0, 0, 2]], 1000).T
trace2 = plotly.graph_objs.Scatter3d(x=x2, y=y2, z=z2, mode='markers', marker=dict(size=1, line=dict(color='r')))
fig = plotly.graph_objs.Figure(data=[trace1, trace2])
plotly.offline.iplot(fig, show_link=False)
Es gibt verschiedene Möglichkeiten, Formeln auf Jupyter auszudrücken.
Hier werde ich es mit Mathjax bei Markdown beschreiben.
$$r=\frac{1}{f}$$
$$\left(x + y\right)^{5}$$
Geben Sie oben in ** Markdown Cell ** ein, um die Zelle auszuführen, und es ist in Ordnung, wenn sie wie folgt gerendert wird.
Beispielformeln mit Mathjax unter Jupyter finden Sie in diesem Artikel und diesem Artikel. Es kann unter //www.suluclac.com/Wiki+MathJax+Syntax) gefunden werden. Die Grammatik von Mathjax lautet außerdem dieser Artikel (Englisch) ist zusammengefasst.
Sie können das erstellte Notizbuch mit "Datei"> "Umbenennen" benennen und im Format "* .ipynb" mit "Datei"> "Herunterladen als" speichern.
Es gibt einige Fälle, in denen Sie es verwenden und einen Shell-Befehl ausführen möchten. Ich möchte eine Python-Bibliothek hinzufügen oder eine Datei von einem anderen Server mit wget bringen.
Sie können den Master-Knoten mit ssh eingeben und das Skript ausführen, aber Sie können das Shell-Skript auch direkt auf Jupyter mit einer der folgenden Methoden ausführen. Das Skript wird mit der Benutzerberechtigung ausgeführt, die Jupyter gestartet hat.
Eine Python-Bibliothek namens Befehle führt Shell-Skripte auf Python aus.
import commands
commands.getoutput("date")
commands.getoutput("curl yahoo.co.jp")
!
**Wenn Sie als Jupyter-Funktion ein Shell-Skript nach !
Schreiben, wird es ausgeführt.
!date
!curl yahoo.co.jp
Es ist möglich, das Shell-Skript wie unten gezeigt mit "sudo" auszuführen. Da Jupyter jedoch nach dem Ausführen des Skripts ständig verarbeitet wird, muss es durch Interrupt usw. wiederhergestellt werden.
!sudo su
!find / -name 'hoge.txt'
Jupyter notebook extensions Jupyter / IPython-Erweiterungen wird entwickelt (getrennt vom ursprünglichen Entwicklungsteam von Jupyter). Dieser Artikel ist sehr gut über die Art der Funktionen organisiert.
Um die Erweiterung zu installieren, bearbeiten Sie ~ / .jupyter / jupyter_notebook_config.py
mit den obigen jupyter-Einstellungen
und führen Sie die folgenden zwei Zeilen aus, bevor Sie Jupyter mit dem jupyter-Notizbuch
starten. ist.
mkdir -p ~/.local/share/jupyter
sudo pip install https://github.com/ipython-contrib/IPython-notebook-extensions/archive/master.zip
Wenn ich gestehe, benutze ich ehrlich gesagt keine Erweiterung ... Obwohl "ExecuteTime" praktisch ist.
Jupyter Magic Commands Jupyter / IPython verfügt über eine spezielle Funktion namens "Magic Commands". Wenn Sie mit "ipython magic command" googeln, werden Sie verschiedene Dinge sehen, aber die folgenden sind berühmt.
% quickref
Wenn Sie die Zelle mit "% whos" ausführen, das in der Zelle eingegeben wurde, wird der Befehl "Magie" ausgeführt. Wenn ich jedoch gestehe, benutze ich ehrlich gesagt kein Magic Command ... Ich benutze gelegentlich "% whos", weil es bequem ist.
Hab ein gutes Jupyter-Leben!
Recommended Posts