寫在前面
記錄一下,一個(gè)簡(jiǎn)單的cloudera處理平臺(tái)的構(gòu)建過(guò)程和一些基本組件的使用
前置說(shuō)明
需要一臺(tái)安裝有Docker的機(jī)器
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容器中向主機(jī)拷貝文件 docker cp containerID:container_path host_path
從主機(jī)復(fù)制到容器docker cp host_path containerID:container_path
啟動(dòng)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
補(bǔ):出現(xiàn)WARNING: IPv4 forwarding is disabled. Networking will not work. 錯(cuò)誤
解決辦法:
# vim /usr/lib/sysctl.d/00-system.conf
添加如下代碼:
net.ipv4.ip_forward=1
這個(gè)時(shí)候假如你想登錄HUE界面進(jìn)行操作,可能你不知道賬戶密碼,可以使用下面操作完成:
=======mysql忘記密碼??==================
修改密碼
windows修改的文件是my.ini
linux vim /etc/my.cnf
[mysqld]
skip-grant-tables
重啟服務(wù)
service mysqld restart
mysql -u root 即可進(jìn)入
update mysql.user set password=PASSWORD('新密碼')where User='root';
flush privileges;
注意:修改完畢密碼之后,就可以把之前的skip-grant-tables注釋掉
而且需要重啟mysqld服務(wù)
==========mysql中修改hue數(shù)據(jù)庫(kù)中的auth_user表======
當(dāng)你忘記hue的賬號(hào)的密碼的時(shí)候,你可以如下操作
登錄hue內(nèi)置的mysql數(shù)據(jù)庫(kù)中,忘記mysql的root密碼,詳見上面操作即可
切換數(shù)據(jù)庫(kù)到hue
use hue;
select username,password from auth_user;
方法一:這里你可以自己新建一個(gè)自己的用戶
insert into auth_user(username,password) values('liuge',md5('123456'));
方法二:更新已有用戶的密碼的時(shí)候,使用MD5方式即可
update auth_user set password = md5('123456') where username = 'cloudera';
***假如這個(gè)時(shí)候,還是不能登錄,你可以在navicat中去修改新增liuge用戶的權(quán)限和狀態(tài),直接操作表
接著:介紹一些簡(jiǎn)單的組件操作方式:
sqoop常用操作:常用于關(guān)系型數(shù)據(jù)庫(kù)與HDFS/HIVE進(jìn)行數(shù)據(jù)交換
輸入用戶密碼進(jìn)行查詢
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
進(jìn)入到hbase客戶端模式
hbase shell
list 查看所有的表
scan '某張表'
hive常用操作:作為hadoop里面的數(shù)據(jù)倉(cāng)庫(kù),寫簡(jiǎn)單的HQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行分析
==創(chuàng)建表時(shí)候指定文件的位置==
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';
==創(chuàng)建表指明分隔符===
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常用操作:基于列式存儲(chǔ)的數(shù)據(jù)庫(kù)
./hbase shell 用于啟動(dòng)
status 查看集群的狀態(tài)
list 查看現(xiàn)有的表
創(chuàng)建表
create 'FileTable','fileInfo','saveInfo'
查看表的描述信息
desc 'FileTable'
在已有的表上新增一個(gè)列簇
alter 'FileTable','cf'
在已有的表上刪除一個(gè)列簇
alter 'FileTable',{NAME=>'cf',METHOD=>'delete'}
插入數(shù)據(jù)
Put +表名稱+每一行的唯一標(biāo)識(shí)+列簇:列標(biāo)識(shí)+數(shù)據(jù)
put 'FileTable','rowkey1','fileInfo:name','liuge'
put 'FileTable','rowkey1','fileInfo:age','21'
put 'FileTable','rowkey1','fileInfo:address','重慶文理學(xué)院'
put 'FileTable','rowkey1','saveInfo:name','我是保存'
put 'FileTable','rowkey2','fileInfo:name','lh'
put 'FileTable','rowkey2','saveInfo:name','保存在Hbase中'
put 'FileTable','rowkey2','saveInfo:type','保存類型'
查看一共有多少行數(shù)據(jù)
count 'FileTable'
查詢某一行ID的數(shù)據(jù)
get 'FileTable','rowke2'
查詢整張表的數(shù)據(jù)
scan 'FileTable'
刪除某一列數(shù)據(jù)
delete 'FileTable','rowkey1','fileInfo:address'
刪除整行數(shù)據(jù)
deleteall 'FileTable','rowkey1'
刪除表
1.禁用表 disable 'FileTable'
2.刪除表 drop 'FileTable'
運(yùn)行一個(gè)gitlab
docker 運(yùn)行g(shù)itlab
docker search gitlab
拉取鏡像
docker pull gitlab/gitlab-ce
運(yùn)行
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":為容器指定一個(gè)名稱;
-d:后臺(tái)運(yùn)行容器,并返回容器ID;
-p:指定映射端口號(hào),本文是將ssh的22端口映射為10022端口,web訪問(wèn)的80端口映射為80端口
-volume: 用來(lái)指定掛載目錄,將config配置目錄、data數(shù)據(jù)目錄、logs日志目錄掛載到宿主機(jī)上,以后備份方便
配置gitlab服務(wù)器的訪問(wèn)地址及郵箱
當(dāng)運(yùn)行g(shù)itlab服務(wù)器后,會(huì)在映射目錄/opt/gitlab/config/目錄下生成一個(gè)配置文件gitlab.rb
修改配置文件之后,需要重新啟動(dòng)
gitlab-ctl reconfigure
訪問(wèn):http://192.168.1.113:20080
初始化root賬戶密碼:www.csy.com
登錄進(jìn)去
找到導(dǎo)航欄的工具圖標(biāo)
sudo EXTERNAL_URL =“http://gitlab.csylh.cn” yum install -y gitlab-e
運(yùn)行一個(gè)jenkins
docker pull jenkins
啟動(dòng):
docker run -itd -p 28080:8080 -p 50000:50000 --name ljenkins --privileged=true jenkins
docker pull jenkins/jenkins
啟動(dòng)
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 進(jìn)行端口映射
--privileged=true 在CentOS7中的安全模塊selinux把權(quán)限禁掉了,參數(shù)給容器加特權(quán)。
-v /home/hzq/jenkins:/var/jenkins_home 磁盤掛載