CDH 돌아 오는을 구축하는 빅 데이터 플랫폼

수많은 실패 후, 마지막으로 CDH는 두 개의 일반 노트북에 설치, 실패에 대한 다음과 같은 주요 이유가있다 :

  1. 설치 과정에 익숙하지 않은, 공식 설치 방법은 세 가지 방법으로 제공되기 때문에, 그래서 때로는 반드시 좋은 일을 멀티, 많은 시간을 낭비하고, 다시 모든 시도.
  2. 잘못된 장비 설치, 때로는 때문에 높은 메모리 및 CPU 사용이나 충돌을 차지합니다.
  3. 네트워크 환경이 좋지 설치, 전송 실패로 이어지는 것은 시간 초과 현상이있을 수 있습니다.
  4. 설치 시간은 시간의 결과로 너무 많은 잘못을 지불 한 후 다시 시작이 너무 깁니다.

다음과 같은 방법이 가장 좋은 방법에 대해 이야기하지 않습니다, 그러나 그것은 참조를 위해, 우리의 마지막 리조트입니다.

환경 설정

  • 두 노트북 A와 B, 각각 자신의 메모리와 12G 8G, 설치, VM웨어 (12).

  • 가상 시스템에서 A는 2 * CPU는 브리지 모드 설치 CentOS6.5를 사용하여 8G 메모리 카드, 호스트 마스터로 역할을합니다.

  • B는 두 개의 가상 머신, 1 개 * CPU, 확장 SLAVE1, Slave2 역할 브리지 모드 설치 CentOS6.5를 사용 세대 메모리 카드를 열었다.

  • 빌드로 네트워크 환경에서 네트워크를 사용하여 학교 네트워크에 네트워크 케이블을 통해 연결 두 컴퓨터는, 루트 암호를 세 개의 가상 머신 일치해야합니다.

설치하기 전에 2. 준비

설치 패키지를 다운로드 우선

  • 클라우 데라 매니저 - el6-cm5.8.0_x86_64.tar.gz (클라우 데라 매니저 설치 패키지, el6 대표는 대표를 사용하여 버전 cm-5.8.0 5.8.0에 CentOs6.x, 클라우 데라 매니저를 사용)
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel (리소스 키트 오프라인 CDH)
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
  • manifest.json을
  • cm5.8.0-centos6.tar.gz (일부 필요한 환경이 있습니다)
  • MySQL을 커넥터 자바 5.1.6-bin.jar를 (JDBC)

다운로드 경로는 각각

http://archive.cloudera.com/cm5/cm/5/

http://archive.cloudera.com/cdh5/parcels/5.8.0/

http://archive.cloudera.com/cm5/repo-as-tarball/5.8.0/

참고 : 무엇을 조금 아래, 또는 뭔가 덜 설치, 특히 촉진 계획이없는, JDK의 공식을 설치해야합니다, 스파크 잘못된 뒤에 준비로 이어질 안,이 장소는 우리는 우리는 무거운 아래에있는 모든 아래로 적어도 5, 6 번해야한다 실패 비용은 더 높을 것이다

3. 전에 설치 구성

먼저 루트 권한을 입력 : 입력 su후 암호를 입력

3.1. 호스트 이름 구성

각 노드는,의 / etc / sysconfic / 네트워크 파일을 수정 한 호스트 이름 마스터, SLAVE1, Slave2을 설정합니다.

실측치 HOSTNAME는 마스터 노드와 상기 기준 노드와 포인트의 식별 명을 용이하게 변형 될 수있다.

수정 후 수행하는 service network restart서비스를 다시 시작합니다.

사용 hostname인증을 위해.

당신이 적용되지 않는 경우, 다음 가상 컴퓨터를 다시 시작하십시오.

방화벽 해제 3.2 회전

명령을 실행합니다 :service iptables stop

그런 다음 실행 :chkconfig iptables off

사용은 chkconfig --list|grep iptables완전히 닫혀 있는지 여부를 확인합니다

경우 iptables 0:off  1:off 2:off  3:off  4:off 5:off  6:off는 완성 해제를 의미합니다

3.3. 바인딩 IP 및 호스트 이름

첫 번째 확인 ifconfig세 개의 가상 머신을 IP.

그리고 변경 호스트는 세 개의 가상 머신에서 열려

vi /etc/hosts

다음을 입력

192.168.30.21  Master
192.168.30.22  Slave1
192.168.30.23  Slave2

구성 후, 3 가상 머신 상호 핑 IP와 호스트 이름, 구성이 성공적으로 완료되었는지 확인합니다.

3.4. 구성 ssh를 무료 로그인 암호 (기본이 설치된 SSH)

마스터에 사용되는 ssh-keygen -t rsa키를 생성하는 모든 방법 내내.

cd ~/.ssh찾기는 id_rsa.pub,에 기록 authorized_keys.

입력 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys.

입력 ssh Master키가 무료로되어있는 경우 처음 암호를 잃고 예를 상실 할 수 있습니다에 대한보고.

성공적으로 다른 두 시스템에서 같은 방법으로 입력 한 후 ssh-keygen -t rsa생성 된 키.

생성 된 비밀 키는 직접 마스터의 그래픽 인터페이스에 연결되어있는 경우 authorized_keys, 마스터 한 후 SCP 다른 두 호스트에 의해 배포.

그렇지 그래픽의 경우, 퍼티를 사용 xshell 등 로그 가상 머신 페이스트, 그리고, 다음 SCP 패스를 사용하는 경우.

scp를 사용하여 authorized_keys패스 SLAVE1 및 slave2를 입력 scp ~/.ssh/authorized_keys root@slave1:~/.ssh통과하고 2 할 SLAVE1의 slave2을.

다른 사용 ssh hostname무료 키, 어떤 검사가 있는지 확인하기 위해 다른 측면에서 로그를 authorized_keys올바른 없습니다.

3.5. 닫기 SELINUX

setenforce 0 #临时生效
或
修改/etc/selinux/config 文件的 SELINUX=disabled #重启生效

3.6 설치 MySQL의 (마스터 노드)

첫 번째는 사용하기 rpm -qa|grep -i mysql가있는 경우, 설치 MySQL의 여부를 확인하기 위해

사용하여 rpm -e 包名삭제 MySQL의 패키지를.

그런 다음 MySQL의 패키지를 다운로드

http://dev.mysql.com/downloads/mysql/#downloads

그것을 가져 압축을 풀고 난, MySQL의-5.5.49-1.linux2.6.x86_64.rpm-bundle.tar이 파일을 사용하고 있습니다

MySQL-client-5.5.49-1.linux2.6.x86_64.rpm
MySQL-devel-5.5.49-1.linux2.6.x86_64.rpm
MySQL-embedded-5.5.49-1.linux2.6.x86_64.rpm
MySQL-server-5.5.49-1.linux2.6.x86_64.rpm
MySQL-shared-5.5.49-1.linux2.6.x86_64.rpm
MySQL-shared-compat-5.5.49-1.linux2.6.x86_64.rpm
MySQL-test-5.5.49-1.linux2.6.x86_64.rpm

사용은 rpm -ivh MySQL*완전히 오류 뒤에 발생하지한다, 이하 하나를 설치!

그리고 /usr/bin/mysql_secure_installationMySQL의 암호를 변경합니다.

입력 mysql -u root -pMySQL의에.

먼저, 사용자를 만들

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';

데이터베이스를 작성

CREATE DATABASE hive;
CREATE DATABASE hue;
CREATE DATABASE oozie;

마지막으로 개별 사용자 권한을 부여

GRANT ALL ON hive.* TO 'hive'@'%' 
GRANT ALL ON hue.* TO 'hue'@'%' 
GRANT ALL ON oozie.* TO 'oozie'@'%' 

3.7. JDK 설치

압축을 해제 cm5.8.0-centos6.tar.gz내부 열 rpm해야하는 폴더 JDK 1.6와를  Oracle JDK , 두 설치해야합니다. 그런 다음 입력 java -version이 표시됩니다

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

3.8 구성 NTP 서비스 (모든 노드)

NTP 서비스의 설치, 사용 yum install ntp하여 설치를

구성 NTP를 수정vi /etc/ntp.conf

마스터 설정server 210.72.145.44     #这是中国国家授时中心的IP

SLAVE1 ~ 2하여 제공된server master

자동 부팅 시간 서비스를 실행하도록 설정하면
chkconfig ntpd on
시작 또는 중지 시간 서비스

service ntpd start
service ntpd stop
service ntpd restart

보기 NTP 서비스 상태watch ntpq -p

설치 및 클라우 데라 매니저 서버 에이전트 (4)

4.1. 만들기 클라우 데라 매니저 폴더 (1-7 단계 세 개의 노드에서 수행되어야한다)

mkdir /opt/cloudera-manager

4.2.은 / opt / 클라우 데라 매니저의 기본 디렉토리의 마스터 노드로 추출 설치 패키지

tar -zxvf cloudera-manager-el6-cm5.8.0x8664.tar.gz -C /opt/cloudera-manager

4.3. 사용자 만들기

useradd --system --home=/opt/cloudera-manager/cm-5.8.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

4.4. 로그 폴더를 만듭니다

mkdir /var/log/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server

4.5. 수정 에이전트는 단절 주소로 지적

으로cd /opt/cloudera-manager/cm-5.8.0/etc/cloudera-scm-agent

용도vim config.ini

server_host=localhost변경server_host=master

4.6. 저장 소포에 폴더를 만듭니다

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

4.7. 만들기 실행 / 클라우 데라-SCM 에이전트 폴더

mkdir /opt/cloudera-manager/cm-5.8.0/run/cloudera-scm-agent

이 생성되지 않습니다.

다음은 마스터의 시작입니다!

클라우 데라 매니저 (5)에 대한 데이터베이스의 4.8. 설립 

/opt/cm-5.8.0/share/cmf/lib/에 MySQL의 커넥터 - 자바-5.1.6-bin.jar를 파일.

cp mysql-connector-java-5.1.6-bin.jar /opt/cloudera-manager/cm-5.8.0/share/cmf/lib/

4.9. CM5의 마스터 노드 데이터베이스 초기화에서

/opt/cloudera-manager/cm-5.8.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

4.10 CDH5를 설치, 소포를 준비 

소포 CHD5 (수동으로 만든 소포 REPO) 관련 기본 노드 / 옵션 / 클라우 데라 / 소포 REPO / 디렉토리에 패키지로 제공된다.

다음과 같이 문서 관련 :

  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
  • manifest.json을

마지막으로, CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1는 CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha을 이름을 변경하는 점, 그렇지 않으면, 시스템 것 다시 다운로드 CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha 파일을 것을 주목해야합니다.

4.11는 시작 스크립트를 실행 

마스터 노드에서 서버를 시작합니다 :

/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-server start

에이전트는 모든 노드를 시작합니다 :

/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-agent start

각각 5 분 대기 사용

/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-server status

/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-agent status

서버 및 에이전트 상태를 확인합니다. 오류는 죽은 등을 같이 발생하는 경우

/opt/cloudera-manager/cm-5.8.0/log내부보기 로그는 여기서 오류를 볼 수 있습니다

에이전트 오류가 덜 경우

Traceback (most recent call last):
  File "/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.8.0-py2.6.egg/cmf/agent.py", line 2163, in connect_to_new_supervisor
    self.get_supervisor_process_info()
  File "/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.8.0-py2.6.egg/cmf/agent.py", line 2185, in get_supervisor_process_info
    self.identifier = self.supervisor_client.supervisor.getIdentification()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/supervisor-3.0-py2.6.egg/supervisor/xmlrpc.py", line 470, in request
    '' )
ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>

포트를 복용하고 어떤 때문에, 가상 머신이 해결 될 수있다 다시 시작합니다.

5. 구성 CDH 클러스터

PS : 나는 호스트 이름을 설치 어떤 이유로, 마스터는 상관 없어, yao5라고한다

검증이 제대로 작동 후에는 브라우저에서 열립니다 에 http : // 마스터 : 7180은 CM 서버가 액세스를 위해 (나는 대부분의 20 분 기다리고) 잠시 동안 기다려야 할 수도 있습니다 여기에 몇 시간을 할애 할 필요가 시작 인해 CDH 관리 인터페이스를 입력 기본 사용자 이름과 암호는 모두 admin입니다.

5.1 호스트 클러스터 설치를 지정하려면 CDH

에서 호스트 CDH 클러스터 설정으로 이 단계를 직접 할 수 있도록, (||| == 스크린 샷 잊지) 현재 관리의 호스트를 세 기계, 즉 마스터, SLAVE1, Slave2를 볼 수 있습니다. 지침 경우, 올바르게 설치 검색하지, 당신은 게으른 설명은 직접 복사 할 수 cm-5.8.0시작할 때 발생하기 때문에, 다른 호스트에이 폴더 SSID,이 기계는 그래서 검색이 잘못 될 수있을 때, 유일하다.

5.2. 클러스터 설치

다음은 클러스터 설치 이 단계는 클릭 使用Parcel(建议), 몇 가지 이유가 모든 웹 주소, 출구가 보이지 않는 경우, 로컬 구성에 대해서만 설명을 선택할 수있는 로컬 패키지를 볼 수있는 제거를

  1. 아니 CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1, CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha의 이름을 변경
  2. cloudera, parcel-repo그리고 parcels권한 설정 세 개의 폴더가 설정되어 있지 않습니다.

스크린 샷 - 7_1.png

도로서 설치 완료 후.

5.3. 호스트 정확성을 확인

스크린 샷 - 8_1.png

그림 같은이 있다면, 그것은 가까운 거리에 성공에서 단계를 보여주고, 일관성없는 JAVA 버전과 다른 오류가, 자신의 안전에 대해 생각하는 경우는 JDK하지 않고, 스파크 설치가 예외없이 실패 뒤에이 장소가 이어질 것입니다, 여기에 우리가 적어도 다섯 번 다시로드하기 때문에, 단지 관계자는 JDK를 제공해야 함을 찾을 수 있습니다.

수정 방법 주어진 입력

echo 10 > /proc/sys/vm/swappiness

echo never > /sys/kernel/mm/transparent_hugepage/defrag

당신이 문제를 다시 시작하지하려면, 그 다른 문서는 위의 변경에 따라.

修改完后点击重新运行,得到以下样子

스크린 샷 - 9.png

是不是看起来很舒服。

5.4.选择在集群上安装的服务

스크린 샷-10.png

我们选择安装含Spark的内核

5.5.自定义角色分配

스크린 샷-11.png

注意将DataNode选成所有主机,还有下面的Zookeeper选成所有主机,其他默认就可以了。

5.6.数据库设置

스크린 샷-12.png

之前已经配置过数据库,直接像上面那样填即可,可能会在Hue测试连接的时候失败,那就是你没有安装完MySQL包里share,最好全部安装,防止报各种奇怪的错。

5.7.所需目录结构

스크린 샷-13.png

默认即可,不用改动什么。

5.8.等待初始化和启动服务

这个地方初始化可能会出各种问题

1.Spark报错,一般都是JDK未使用官方版本。

2.Hive,Hbase,Hue等报错,类似于下图

스크린 샷-14.png

解决办法也就是将mysql-connector-java-5.1.6-bin.jar拷贝到hive存放jar文件的目录重试即可。

cp mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/

3.Oozie报错,显示timeout,这里是因为网络环境太差,传输很慢,所以要把超时时间设置久一点,我们将超时时间调到了300s。

스크린 샷-20.png

如上图出现报错,浏览器打开另一个标签页,进入http://master:7180,点击oozie组件,搜索oozie_upload_sharelib_cmd_timeout parameter 和 change it to something bigger 然后将270改为600即可解决。

最后安装成功

Screenshot.png

6.调试CDH集群

安装完成后会因为电脑过卡,内存过小,硬盘空间不够等等问题导致会有很多运行状态不佳的主机

스크린 샷-2.png

cdh_11

스크린 샷 - 1_1.png

经过将内存阈值,分配空间阈值,报警阈值调小后即可解决,最后等待一会便可以达到全绿,满足强迫症的你。

스크린 샷 - 2_1.png

输入http://master:8888 可以进入Hue中,使用Hive,Pig和Oozie

색조

在终端输入spark-shell可以进入Spark-shell.

我们可以使用hdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \pi 10 100来测试mapreduce,运行结果如下

스크린 샷 - 6.png

END

추천

출처www.cnblogs.com/harrylyx/p/12236232.html