在Docker中啟動Cloudera
阿新 • • 發佈:2018-10-31
file ges net lin 修改配置 存儲 存在 mobile put
寫在前面
記錄一下,一個簡單的cloudera處理平臺的構建過程和一些基本組件的使用
前置說明
需要一臺安裝有Docker的機器
docker常用命令:
docker ps docker ps -a docker images docker rm 容器 docker rmi 鏡像 docker stop 容器 docker build -t 鏡像名 dockerfile的位置 docker run -d -p 5000:5000 鏡像名 docker exec -it 容器名 bash docker start 容器 docker restart 容器 從docker容器中向主機拷貝文件 docker cp containerID:container_path host_path 從主機復制到容器docker cp host_path containerID:container_path
啟動cloudera
docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name l-cloudera -p 8020:8020 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart 新增8888 HUE的端口: docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name l-cloudera -p 8020:8020 -p 8888:8888 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart 新增3306 mysql的端口: docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name lh -p 8020:8020 -p 3306:3306 -p 8888:8888 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart 補:出現WARNING: IPv4 forwarding is disabled. Networking will not work. 錯誤 解決辦法: # vim /usr/lib/sysctl.d/00-system.conf 添加如下代碼: net.ipv4.ip_forward=1
這個時候假如你想登錄HUE界面進行操作,可能你不知道賬戶密碼,可以使用下面操作完成:
=======mysql忘記密碼??================== 修改密碼 windows修改的文件是my.ini linux vim /etc/my.cnf [mysqld] skip-grant-tables 重啟服務 service mysqld restart mysql -u root 即可進入 update mysql.user set password=PASSWORD(‘新密碼‘)where User=‘root‘; flush privileges; 註意:修改完畢密碼之後,就可以把之前的skip-grant-tables註釋掉 而且需要重啟mysqld服務 ==========mysql中修改hue數據庫中的auth_user表====== 當你忘記hue的賬號的密碼的時候,你可以如下操作 登錄hue內置的mysql數據庫中,忘記mysql的root密碼,詳見上面操作即可 切換數據庫到hue use hue; select username,password from auth_user; 方法一:這裏你可以自己新建一個自己的用戶 insert into auth_user(username,password) values(‘liuge‘,md5(‘123456‘)); 方法二:更新已有用戶的密碼的時候,使用MD5方式即可 update auth_user set password = md5(‘123456‘) where username = ‘cloudera‘; ***假如這個時候,還是不能登錄,你可以在navicat中去修改新增liuge用戶的權限和狀態,直接操作表
接著:介紹一些簡單的組件操作方式:
sqoop常用操作:常用於關系型數據庫與HDFS/HIVE進行數據交換
輸入用戶密碼進行查詢
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
sqoop eval --connect jdbc:mysql://127.0.0.1:3306/qizi --username root -P --query "select nickname from member limit 10"
sqoop import --connect jdbc:mysql://127.0.0.1:3306/qizi --username root -P --table member --target-dir /sqoop-member --num-mappers 1
sqoop import --connect jdbc:mysql://127.0.0.1:3306/qizi --username root
--query "select nickname,mobile,salt from member where 1=1 AND \$CONDITIONS" --hbase-table hbase-member --hbase-create-table
--hbase-row-key nickname --split-by username --column-family cf
進入到hbase客戶端模式
hbase shell
list 查看所有的表
scan ‘某張表‘
hive常用操作:作為hadoop裏面的數據倉庫,寫簡單的HQL語句對數據進行分析
==創建表時候指定文件的位置==
drop table member;
create table member(id string,nickname string,mobile string ,sex int,
avataurl string,city string ,province string,salt string ,reg_ip string ,
status int , create_time string ,update_time string)
location ‘/sqoop-member‘;
==創建表指明分隔符===
create table member(id string,nickname string,mobile string ,sex string,
avataurl string,city string ,province string,salt string ,reg_ip string ,
status string , create_time string ,update_time string)
row format delimited fields terminated by ‘,‘ location ‘/sqoop-member‘;
create table member(id string,nickname string,mobile string ,sex string,avataurl string,city string ,province string,salt string ,reg_ip string , status string , create_time string ,update_time string)row format delimited fields terminated by ‘,‘ location ‘/sqoop-member‘;
hbase常用操作:基於列式存儲的數據庫
./hbase shell 用於啟動
status 查看集群的狀態
list 查看現有的表
創建表
create ‘FileTable‘,‘fileInfo‘,‘saveInfo‘
查看表的描述信息
desc ‘FileTable‘
在已有的表上新增一個列簇
alter ‘FileTable‘,‘cf‘
在已有的表上刪除一個列簇
alter ‘FileTable‘,{NAME=>‘cf‘,METHOD=>‘delete‘}
插入數據
Put +表名稱+每一行的唯一標識+列簇:列標識+數據
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:name‘,‘liuge‘
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:age‘,‘21‘
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:address‘,‘重慶文理學院‘
put ‘FileTable‘,‘rowkey1‘,‘saveInfo:name‘,‘我是保存‘
put ‘FileTable‘,‘rowkey2‘,‘fileInfo:name‘,‘lh‘
put ‘FileTable‘,‘rowkey2‘,‘saveInfo:name‘,‘保存在Hbase中‘
put ‘FileTable‘,‘rowkey2‘,‘saveInfo:type‘,‘保存類型‘
查看一共有多少行數據
count ‘FileTable‘
查詢某一行ID的數據
get ‘FileTable‘,‘rowke2‘
查詢整張表的數據
scan ‘FileTable‘
刪除某一列數據
delete ‘FileTable‘,‘rowkey1‘,‘fileInfo:address‘
刪除整行數據
deleteall ‘FileTable‘,‘rowkey1‘
刪除表
1.禁用表 disable ‘FileTable‘
2.刪除表 drop ‘FileTable‘
運行一個gitlab
docker 運行gitlab
docker search gitlab
拉取鏡像
docker pull gitlab/gitlab-ce
運行
docker run --name gitlab-server -d -p 20022:22 -p 20080:80 --restart always gitlab/gitlab-ce
--volume /opt/gitlab/config:/etc/gitlab
--volume /opt/gitlab/logs:/var/log/gitlab
--volume /opt/gitlab/data:/var/opt/gitlab/
註釋:
--name="nginx-lb":為容器指定一個名稱;
-d:後臺運行容器,並返回容器ID;
-p:指定映射端口號,本文是將ssh的22端口映射為10022端口,web訪問的80端口映射為80端口
-volume: 用來指定掛載目錄,將config配置目錄、data數據目錄、logs日誌目錄掛載到宿主機上,以後備份方便
配置gitlab服務器的訪問地址及郵箱
當運行gitlab服務器後,會在映射目錄/opt/gitlab/config/目錄下生成一個配置文件gitlab.rb
修改配置文件之後,需要重新啟動
gitlab-ctl reconfigure
訪問:http://192.168.1.113:20080
初始化root賬戶密碼:www.csy.com
登錄進去
找到導航欄的工具圖標
sudo EXTERNAL_URL =“http://gitlab.csylh.cn” yum install -y gitlab-e
運行一個jenkins
docker pull jenkins
啟動:
docker run -itd -p 28080:8080 -p 50000:50000 --name ljenkins --privileged=true jenkins
docker pull jenkins/jenkins
啟動
docker run -itd -p 28080:8080 -p 50000:50000 --name ljenkins --privileged=true jenkins/jenkins
-v /home/hzq/jenkins:/var/jenkins_home
-p 8080:8080 -p 50000:50000 進行端口映射
--privileged=true 在CentOS7中的安全模塊selinux把權限禁掉了,參數給容器加特權。
-v /home/hzq/jenkins:/var/jenkins_home 磁盤掛載
在Docker中啟動Cloudera