레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
전체목차: https://netpple.github.io/docs/make-container-without-docker/
pid namespace는 컨테이너 안에서 독자적인 "process tree" / "process id 체계"를 제공합니다. 어떻게 가능한 것일까요? 이를 이해하기 위하여 proc filesystem과 pid 쳬계에 대해서 얘기합니다. 그리고 프로세스 트리의 최상위인 특별한 프로세스 pid1 에 대하여도 다룹니다
가상 개발 환경 세팅(Virtual Development Environment Setting)
Studybee 2주차 스터디 - 가상의 개발 환경 세팅하기!
Vagrant, virtualenv를 이용해 가상 개발 환경 세팅하는 것을 다룹니다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
전체목차: https://netpple.github.io/docs/make-container-without-docker/
pid namespace는 컨테이너 안에서 독자적인 "process tree" / "process id 체계"를 제공합니다. 어떻게 가능한 것일까요? 이를 이해하기 위하여 proc filesystem과 pid 쳬계에 대해서 얘기합니다. 그리고 프로세스 트리의 최상위인 특별한 프로세스 pid1 에 대하여도 다룹니다
가상 개발 환경 세팅(Virtual Development Environment Setting)
Studybee 2주차 스터디 - 가상의 개발 환경 세팅하기!
Vagrant, virtualenv를 이용해 가상 개발 환경 세팅하는 것을 다룹니다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
기본적인 프로젝트 스캐폴딩 도구로 빠른개발을 위한 스프링 프레임워크 서브 프로젝트 중에 하나인 Spring Boot를 사용하겠습니다. 스프링 부트는 Convention over Configuration개념을 적용하여 개발자가 처리해야 하는 반복적인 성격의 설정작업을 대신 수행하여 개발자의 수고를 덜어주는 기술입니다.
최근 개발 초기단계에서부터 코드작성을 하지는 않습니다. 처음부터 코드를 작성하면 나중에 소스 코드 덩치가 커지거나 협업을 해야 하거나 배포를 해야 할 때 관리상의 문제가 많이 생긴다는 것을 개발자들은 이미 경험으로 알고 있기 때문입니다. 그러한 이유로 코드를 작성하기 전에 먼저 코드, 리소스, 디펜던시, 연동환경 및 테스트를 거친 후 배포작업을 미리 염두에 두고 구조적으로 프로젝트를 구분하는 스캐폴딩 작업을 선행합니다.
프로젝트 관점에서 살펴보면 실제 코드를 작성하기 전에 해야 할 여러 설정 작업들이 도출 됩니다. 스프링부트는 여러 설정작업들 중 개발자를 대신해 관습을 적용하여 자동화 할 수 있는 부분들을 제공하는 기술로써, 개발자의 수고를 덜어 보다 빠른 개발이 진행될 수 있도록 해줍니다.
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
IoT 시대에 Opensource H/W 와 NodeJS 를 이용하여 누구나 나만의 H/W + S/W + Service 를 만들기 위한 교육 과정을 만들어 보았습니다.
상상했던 아이디어를 Raspberry Pi 기반으로 나만의 IoT 제품을 현실로 만들어 보세요.
Lesson 1 - Introduction : IoT개요, Opensource H/W, 라즈베리파이 기초
Lesson 2 - Linux : Raspberry Pi 에서 리눅스 활용하기
Lesson 3 - Node.JS : Raspberry Pi 에서 Node.JS 로 프로그래밍 하기
Lesson 4 - Sensor : GPIO 를 Node.JS 로 동작시켜 센서 제어하기
Lesson 5 - Project : Raspberry Pi 로 스마트폰 + 무선 IoT 오디오 제작
챕터가 완성되는대로 추가적으로 공유하겠습니다.
Circulus Site - http://www.circul.us
Circulus Group - http://group.circul.us
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
The document discusses the relationship between IoT (Internet of Things) and big data. It defines IoT as things being able to communicate via the internet and having communication modules like WiFi and Bluetooth. It defines big data as massive and varied data that is analyzed using distributed computing to provide insights. IoT devices collect data from various sensors but need big data solutions to store the large amounts of data and perform real-time and massive data analysis to extract insights. Examples of uses of IoT with big data include smart home care, smart buildings, smart healthcare, and smart retail. The document predicts that R, a powerful analysis tool, will be used more widely as IoT and big data solutions grow.
R hive tutorial supplement 3 - Rstudio-server setup for rhiveAiden Seonghak Hong
This document provides instructions for setting up RStudio Server to use the RHive package for analyzing large datasets with R. It describes downloading and installing RStudio Server, creating user accounts, starting the RStudio Server daemon, and connecting to it via a web browser. It also covers potential issues with RHive environment variables and how to resolve them by setting the variables before or after loading the RHive library. The overall goal is to enable convenient use of RHive through RStudio Server's remote desktop interface and ability to keep R sessions running on the server.
This document provides instructions for installing and configuring Hive to work with a Hadoop environment. It explains that Hive needs to be installed on the same server as the Hadoop client. It then details how to download Hive, install MySQL for the Hive metastore, configure Hive to connect to MySQL by modifying configuration files, and concludes that Hive is now installed and ready for use.
This document provides instructions for installing Hadoop on a small cluster of 4 virtual machines for testing purposes. It describes downloading and extracting Hadoop, configuring environment variables and SSH keys, editing configuration files, and checking the Hadoop status page to confirm the installation was successful.
RHive allows users to leverage R's syntax and functions to process large datasets using Hive's mapreduce capabilities. It includes functions like rhive.napply and rhive.sapply that apply R functions to Hive tables in a mapreduce manner, as well as rhive.mrapply, rhive.mapapply, and rhive.reduceapply which allow writing mapreduce jobs similarly to Hadoop streaming. The document provides examples of using these functions to perform operations like word counting on a text dataset.
The document provides information on advanced functions in RHive including UDF, UDAF, and UDTF. It explains:
1) RHive allows writing UDF and UDAF functions in R and deploying them for use in Hive, allowing R functions to be used at lower complexity levels in Hive's MapReduce programming.
2) The rhive.assign, rhive.export, and rhive.exportAll functions are used to deploy R functions and objects to the distributed Hive environment for processing large datasets.
3) An example demonstrates creating a sum function in R, assigning it using rhive.assign, and executing it on the USArrests Hive table using rhive
The RHive functions rhive.hdfs.connect, rhive.hdfs.ls, rhive.hdfs.get, rhive.hdfs.put, rhive.hdfs.rm, and rhive.hdfs.rename allow users to interact with HDFS from within R without using the Hadoop command line interface or libraries. These functions provide the same functionality as common Hadoop fs commands like hadoop fs -ls, -get, -put, -rm, and -mv to list, get, put, remove, and rename files in HDFS. The document provides examples of how to use each RHive HDFS function to perform operations like listing files, uploading a local file to HDFS, and deleting files
1. RHive 튜토리얼 부록 3 - RStudio 설치
RHive 를 위한 RStudio 설치
이 튜토리얼에서는 RHive 를 보다 편리하게 사용하기 위해 RStudio 를 셋업하는 방법에
대해서 설명한다.
RStudio 의 셋업방법은 http://rstudio.org/ 에서 자세한 문서를 찾을 수 있다.
여기서는 RHive 사용자를 위해서 RStudio 를 설치하고 사용하는 방법에 대해서
소개한다.
RHive 는 대용량데이터 처리를 위해서 Hadoop 과 Hive 를 이용하는 R 의 패키지 중
하나이다. RHive 를 사용해서 작성한 R 코드들은 실행시키고 난 후에 짧은 시간에
결과를 보여주고 실행을 종료할 수 있는 것들도 있겠지만 매우 큰 데이터를 처리하는
코드는 결과를 만들고 실행코드가 종료되기까지 매우 오랜 시간이 걸릴 수 있다.
상황에 따라 다르지만 데이터의 크기와 처리하는 연산의 복잡도에 따라 최소
수십분에서 최대 몇주가 걸릴 수도 있다.
이 경우의 문제는 사용자가 실행한 task 가 완전히 완료되기까지 R 의 세션을 계속
유지해야 해야만 한다는 것이다.
사용자가 랩탑을 이용해서 코드를 실행했다면 코드가 종료될 때까지 랩탑에 세션을
유지하고 랩탑을 계속 켜두어야 한다.
데스크탑을 사용하고 있다고 해도 작업이 끝날 때까지 데스트탑이 리부팅되거나 하는
등의 일은 세션을 유지하는 동안 하기 어렵다.
이 외에도 세션을 유지해야만 하는데 따른 많은 불편함이 있다.
이 것은 원래 RHive 와 상관없이 Hadoop 이나 Hive 만을 이용할 때도 발생하는
문제이며 RHive 도 다르지 않다.
이러 문제를 해결하기 위해서 Hadoop client(Hadoop gateway)를 만들어 두고
터미널로 접속을 하여 코드를 백그라운드로 실행하는 방법을 쓸 수도 있다.
하지만 이것은 R 사용자를 위해서는 그리 편한 방법이 아니며 R 이 가지고 있는
작업환경이나 자신이 사용하는 IDE 환경의 편리함을 이용하기 어렵다.
또 사용자가 터미널을 사용하는데 익숙하지 않다면 그것을 배워야 하는 불편함이
발생한다.
RStudio 는 이것을 해결해주는 가장 좋은 솔루션이다.
RStudio 는 desktop 과 server 버전을 제공하는데 desktop 버전은 그 자체로 R 의
IDE 로써 매우 좋다.
2. 그리고 RStudio server 는 서버에 설치하여 웹 브라우저로 접속하여 서버의 자원을
여러사람이 공유하여 사용할 수 있으며 사용자가 사용하던 세션을 그대로 유지할 수
있다는 장점이 있다.
또한 사용자가 구성한 Hadoop, Hive, RHive 환경이 폐쇄된 네트워크의 레이어에
위치하고 있어 보안망을 통해서 접근해야 한다면 RStudio port 를 열어주는 것만으로도
보안절차를 간소화할 수 있다.
Rstudio server 를 RHive 와 함께 사용한다면 더욱 편하게 RHive 를 사용할 수 있다.
마지막으로 RStudio 는 서버의 R 환경을 그대로 사용하므로 RHive, Hadoop, Hive 를
셋업해둔 환경을 여러사람이 함께 공유할 수 있도록 만들어 준다.
이 튜토리얼에서 RStudio 를 설치하고 접속해서 RHive 를 사용하는 데모를 보여줄
것이다.
RStudio server 설치
RStudio 는 공식사이트에서 다운로드 받을 수 있다.
http://rstudio.org/
RStudio 의 공식사이트인 rstudio.org 에서는 RStudio 를 쉽게 설치하고 사용할 수
있도록 도와주는 자세한 문서들을 제공하고 있다.
아래 페이지에서 설치법을 안내하고 있으므로 설치에 대해 이 튜토리얼을 참조하지
않고 사이트의 문서를 참조하는 것도 좋다.
http://rstudio.org/download/server
이 튜토리얼에서는 CentOS5 에 RStudio server 를 설치하는 예를 설명한다.
설치법의 대부분은 위 사이트에서 인용하고 일부 수정했음을 알려둔다.
RStudio server 를 설치하기 위해서는 당연히 R 을 먼저 설치해야만 한다.
이 문서를 보는 사용자가 이미 이전의 RHive tutorial 을 읽고 RHive 를 설치했다면 이미
R 을 설치하는 과정은 완료했을 것이다.
하지만 여기서는 다시 설명을 한다.
아래와 같이 R 의 최신버전을 yum 을 이용해 설치하기 위해서 package 에 관한 내용을
udpate 한다.
$
sudo
rpm
-‐Uvh
http://download.fedora.redhat.com/pub/epel/5/i386/epel-‐release-‐
5-‐4.noarch.rpm
이제 R 을 설치한다.
$
sudo
yum
install
R
R-‐devel
3. RHive 를 설치할 때는 R 뿐만아니라 R-devel 도 설치해야 하는 것을 기억하자.
RStudio server 를 설치하기 전에 자신의 서버가 32bit architecture 인지 64bit
architecture 인지 알아야 한다.
최근의 서버라면 대부분 64bit 일 것이며 아래와 같이 uname 명령어로 확인할 수 있다.
uname
-‐m
x86_64
위의 경우에는 64bit architecture 임을 알 수 있다.
이제 각각 자신의 architecuture 에 맞는 RStudio version 을 다운로드하고 설치한다.
32-bit 설치 방법
$
wget
http://download2.rstudio.org/rstudio-‐server-‐0.94.110-‐
i686.rpm
$
sudo
rpm
-‐Uvh
rstudio-‐server-‐0.94.110-‐i686.rpm
64-bit 설치 방법
$
wget
http://download2.rstudio.org/rstudio-‐server-‐0.94.110-‐
x86_64.rpm
$
sudo
rpm
-‐Uvh
rstudio-‐server-‐0.94.110-‐x86_64.rpm
개인계정만들기
RStudio server 에 접속하기 위해서 RStudio server 가 설치된 server 자체에 사용자의
계정이 있어야(exist) 한다.
RStudio server 는 root 계정으로 접속하는 것을 허용하지 않으므로 서버에 개인
사용자를 위한 계정들을 만들어야 한다.
서버에 접속하여 RStudio server 를 사용할 사용자들의 계정을 만들고 password 를
설정한다.
ssh
root@10.1.1.1
adduser
user1
passwd
user1
위에서의 user1 은 임의로 설정한 계정이며 실제로 사용할 계정을 생성하기 바란다.
4. RStudio server 시작하기
RStudio server 는 Daemon 으로 실행되어야 한다.
아래와 같이 서버에 접속해서 Daemon 실행한다.
ssh
root@10.1.1.1
/etc/init.d/rstudioserver
start
위와 같이 간단히 실행할 수 있다.
RStudio server 접속하기
RStudio server 는 web browser 를 이용해서 접속할 수 있다.
웹 브라우저를 실행하고 아래와 같이 RStudio server 의 주소로 접속한다.
http://10.1.1.1:8787
RStudio 에 접속할 수 있는 port 는 기본값으로 8787 이다.
이것은 설정을 변경해서 바꿀 수 있다.
이제 RStudio 에 접속해서 R 과 RHive 를 이용한 대용량 분석 작업을 할 수 있을 것이다.
RHive 를 위한 RStudio 작업
RStudio 에서 작업을 하는 도중에 environment variable 이 잘 설정되지 않아 RHive 를
loading 하는데 실패하는 경험을 할 수 있다.
이런 경우에는 소스코드에 환경변수를 지정하는 코드를 넣어 해결 할 수 있다.
Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-‐0.20.203.0")
Sys.setenv(HIVE_HOME="/mnt/srv/hive-‐0.7.1")
Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")
library(RHive)
위에서 HADOOP_HOME 과 HIVE_HOME 은 사용자의 컴퓨터가 아닌 RStudio 가
설치되어 있는 서버의 Hadoop 과 Hive 의 Home 디렉토리를 지정해야 하며
RHIVE_DATA 는 RHive 가 사용할 임시 디렉토리를 말하며 각 Hadoop 노드에 생성된다.
환경변수를 세팅하는 것은 RHive 를 library 함수를 이용해서 loading 하기 전에
수행해야 하며 만약 환경변수를 설정하지 않고 RHive 를 loading 했다면 환경 변수를
설정하고 rhive.init() 펑션을 이용해서 RHive 를 초기화 할 수 있다.
5. library(RHive)
Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-‐0.20.203.0")
Sys.setenv(HIVE_HOME="/mnt/srv/hive-‐0.7.1")
Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")
rhive.init()
이제 RStudio 를 통해서 R 코드를 작성하고 RHive 를 이용해서 Hive 와 Hadoop 을
다룰 수 있는 환경 셋업을 마쳤다.